`) })
}
-function casdkAppOptions (apps) {
+
+function casdkAppOptions(apps) {
var casdkapps = `APPSIMPLEDASHBOARD=`
casdkapps += (apps.simpledashboard) ? `1\n` : `0\n`
casdkapps += `APPGPSSPEED=`
@@ -1175,7 +1192,8 @@ function casdkAppOptions (apps) {
fs.writeFileSync(`${varDir}/casdkapps.txt`, casdkapps)
tweaks2write.push(`${varDir}/casdkapps.txt`)
}
-function buildCASDK (user, apps) {
+
+function buildCASDK(user, apps) {
addRootFiles()
if (user.casdk.inst) {
casdkAppOptions(apps)
@@ -1198,13 +1216,14 @@ function buildCASDK (user, apps) {
}
writeTweaksFile()
}
-function fullSystemRestore (user) {
+
+function fullSystemRestore(user) {
addRootFiles()
tweaks2write.push(`${builddir}00___fullRestore.sh`)
- if(fs.existsSync(`${extradir}/color-schemes/Red/jci.zip`)) {
+ if (fs.existsSync(`${extradir}/color-schemes/Red/jci.zip`)) {
mkdirp.sync(`${tmpdir}/config/color-schemes/Red`)
aioLog(`Unzipping Red color theme folder`)
- extract(`${extradir}/color-schemes/Red/jci.zip`, {dir: `${tmpdir}/config/color-schemes/Red`}, function (err) {
+ extract(`${extradir}/color-schemes/Red/jci.zip`, { dir: `${tmpdir}/config/color-schemes/Red` }, function (err) {
if (err) { aioLog(err) }
aioLog(`Red Color Scheme Added Successfully`)
})
@@ -1218,7 +1237,8 @@ function fullSystemRestore (user) {
})
writeTweaksFile()
}
-function buildAutorunInstaller (user) {
+
+function buildAutorunInstaller(user) {
copydir(`${approot}/files/tweaks/cmu-autorun/installer`, `${tmpdir}`, function (err) {
if (err) {
errFlag = true
@@ -1244,7 +1264,8 @@ function buildAutorunInstaller (user) {
}
})
}
-function addWifiApp (user) {
+
+function addWifiApp(user) {
filesComplete = true
opsComplete = true
if (user.autorun.autoADB || user.autorun.autoWIFI) {
@@ -1282,7 +1303,7 @@ function addWifiApp (user) {
size: "small",
title: "Values Were Not Changed",
message: "WiFi AP Will not be installed",
- callback: function() {
+ callback: function () {
rimraf.sync(`${tmpdir}/00-start-wifiAP/`)
printAIOlog()
}
diff --git a/app/assets/js/events.js b/app/assets/js/events.js
index b4c9fd4..0f5fbee 100644
--- a/app/assets/js/events.js
+++ b/app/assets/js/events.js
@@ -90,15 +90,14 @@ ipc.on('selected-joined-bg', function (event, filepath) {
icon: 'favicon.ico',
silent: true
})
- bgNotification.onclick = () => {
- }
+ bgNotification.onclick = () => {}
ipc.emit('set-bg')
})
ipc.on('selected-bg', function (event, filepath) {
var outFile = `${varDir}/background.png`
document.getElementById('selected-file').innerHTML = `Your Selected Background Image: ${filepath}`
var warnMsg = '{{mainOps.retain.toolTip}}'
- fs.writeFileSync(`${outFile}`,nativeImage.createFromPath(`${filepath}`).resize({'width':800,'height':480}).toPNG())
+ fs.writeFileSync(`${outFile}`, nativeImage.createFromPath(`${filepath}`).resize({ 'width': 800, 'height': 480 }).toPNG())
let bgNotification = new Notification('Background', {
body: `Your Infotainment Background Will Be Changed To: ${filepath}`,
icon: 'favicon.ico',
@@ -111,15 +110,14 @@ ipc.on('selected-bg', function (event, filepath) {
})
ipc.on('selected-offscreen-bg', function (event, filepath) {
var outFile = `${varDir}/OffScreenBackground.png`
- fs.writeFileSync(`${outFile}`,nativeImage.createFromPath(`${filepath}`).resize({'width':800,'height':480}).toPNG())
- let bgNotification = new Notification('Background', {
- body: `Your Off Screen Background Will Be Changed To: ${filepath}`,
- icon: 'favicon.ico',
- silent: true
- })
- bgNotification.onclick = () => {
- }
+ fs.writeFileSync(`${outFile}`, nativeImage.createFromPath(`${filepath}`).resize({ 'width': 800, 'height': 480 }).toPNG())
+ let bgNotification = new Notification('Background', {
+ body: `Your Off Screen Background Will Be Changed To: ${filepath}`,
+ icon: 'favicon.ico',
+ silent: true
})
+ bgNotification.onclick = () => {}
+})
ipc.on('set-bg', (prev) => {
var bgNoCache = `${varDir}/background.png?` + new Date().getTime()
document.getElementById('imgframe').innerHTML = ``
@@ -133,7 +131,7 @@ ipc.on('selected-album-art', function (event, filepath) {
$('.blnk-albm-art').hide()
$('#blnk-albm-img').show()
settings.set('blank-album-art', `${filepath}`)
- fs.writeFileSync(`${outFile}`,nativeImage.createFromPath(`${filepath}`).resize({'width':146,'height':146}).toPNG())
+ fs.writeFileSync(`${outFile}`, nativeImage.createFromPath(`${filepath}`).resize({ 'width': 146, 'height': 146 }).toPNG())
setTimeout(function () {
var bgNoCache = `${varDir}/no_artwork_icon.png?` + new Date().getTime()
document.getElementById('blnk-albm-img').innerHTML = ``
diff --git a/app/assets/js/ex-links.js b/app/assets/js/ex-links.js
index a38dc48..18351aa 100644
--- a/app/assets/js/ex-links.js
+++ b/app/assets/js/ex-links.js
@@ -1,6 +1,6 @@
// Open all external links outside the app
// Credit: Electron API Demos app
-const links = document.querySelectorAll('a[href]')
+const links = document.querySelectorAll('a.link')
Array.prototype.forEach.call(links, function (link) {
const url = link.getAttribute('href')
diff --git a/app/assets/js/gritter-conf.js b/app/assets/js/gritter-conf.js
index 593ea8a..46690aa 100644
--- a/app/assets/js/gritter-conf.js
+++ b/app/assets/js/gritter-conf.js
@@ -1,114 +1,113 @@
var Gritter = function () {
- $('#add-sticky').click(function(){
-
- var unique_id = $.gritter.add({
- // (string | mandatory) the heading of the notification
- title: 'This is a Sticky Notice!',
- // (string | mandatory) the text inside the notification
- text: 'Hover me to enable the Close Button. This note also contains a link example. Thank you so much to try Dashgum. Developed by Alvarez.is.',
- // (string | optional) the image to display on the left
- image: 'assets/img/ui-sam.jpg',
- // (bool | optional) if you want it to fade out on its own or just sit there
- sticky: true,
- // (int | optional) the time you want it to be alive for before fading out
- time: '',
- // (string | optional) the class name you want to apply to that specific message
- class_name: 'my-sticky-class'
- });
-
- // You can have it return a unique id, this can be used to manually remove it later using
- /*
- setTimeout(function(){
-
- $.gritter.remove(unique_id, {
- fade: true,
- speed: 'slow'
- });
-
- }, 6000)
- */
-
- return false;
-
+ $('#add-sticky').click(function () {
+
+ var unique_id = $.gritter.add({
+ // (string | mandatory) the heading of the notification
+ title: 'This is a Sticky Notice!',
+ // (string | mandatory) the text inside the notification
+ text: 'Hover me to enable the Close Button. This note also contains a link example. Thank you so much to try Dashgum. Developed by Alvarez.is.',
+ // (string | optional) the image to display on the left
+ image: 'assets/img/ui-sam.jpg',
+ // (bool | optional) if you want it to fade out on its own or just sit there
+ sticky: true,
+ // (int | optional) the time you want it to be alive for before fading out
+ time: '',
+ // (string | optional) the class name you want to apply to that specific message
+ class_name: 'my-sticky-class'
});
- $('#add-regular').click(function(){
+ // You can have it return a unique id, this can be used to manually remove it later using
+ /*
+ setTimeout(function(){
- $.gritter.add({
- // (string | mandatory) the heading of the notification
- title: 'This is a Regular Notice!',
- // (string | mandatory) the text inside the notification
- text: 'This will fade out after a certain amount of time. This note also contains a link example. Thank you so much to try Dashgum. Developed by Alvarez.is.',
- // (string | optional) the image to display on the left
- image: 'assets/img/ui-sam.jpg',
- // (bool | optional) if you want it to fade out on its own or just sit there
- sticky: false,
- // (int | optional) the time you want it to be alive for before fading out
- time: ''
- });
+ $.gritter.remove(unique_id, {
+ fade: true,
+ speed: 'slow'
+ });
- return false;
+ }, 6000)
+ */
- });
+ return false;
+
+ });
+
+ $('#add-regular').click(function () {
- $('#add-max').click(function(){
-
- $.gritter.add({
- // (string | mandatory) the heading of the notification
- title: 'This is a notice with a max of 3 on screen at one time!',
- // (string | mandatory) the text inside the notification
- text: 'This will fade out after a certain amount of time. This note also contains a link example. Thank you so much to try Dashgum. Developed by Alvarez.is.',
- // (string | optional) the image to display on the left
- image: 'assets/img/ui-sam.jpg',
- // (bool | optional) if you want it to fade out on its own or just sit there
- sticky: false,
- // (function) before the gritter notice is opened
- before_open: function(){
- if($('.gritter-item-wrapper').length == 3)
- {
- // Returning false prevents a new gritter from opening
- return false;
- }
- }
- });
-
- return false;
+ $.gritter.add({
+ // (string | mandatory) the heading of the notification
+ title: 'This is a Regular Notice!',
+ // (string | mandatory) the text inside the notification
+ text: 'This will fade out after a certain amount of time. This note also contains a link example. Thank you so much to try Dashgum. Developed by Alvarez.is.',
+ // (string | optional) the image to display on the left
+ image: 'assets/img/ui-sam.jpg',
+ // (bool | optional) if you want it to fade out on its own or just sit there
+ sticky: false,
+ // (int | optional) the time you want it to be alive for before fading out
+ time: ''
+ });
+ return false;
+
+ });
+
+ $('#add-max').click(function () {
+
+ $.gritter.add({
+ // (string | mandatory) the heading of the notification
+ title: 'This is a notice with a max of 3 on screen at one time!',
+ // (string | mandatory) the text inside the notification
+ text: 'This will fade out after a certain amount of time. This note also contains a link example. Thank you so much to try Dashgum. Developed by Alvarez.is.',
+ // (string | optional) the image to display on the left
+ image: 'assets/img/ui-sam.jpg',
+ // (bool | optional) if you want it to fade out on its own or just sit there
+ sticky: false,
+ // (function) before the gritter notice is opened
+ before_open: function () {
+ if ($('.gritter-item-wrapper').length == 3) {
+ // Returning false prevents a new gritter from opening
+ return false;
+ }
+ }
});
- $('#add-without-image').click(function(){
+ return false;
+
+ });
- $.gritter.add({
- // (string | mandatory) the heading of the notification
- title: 'This is a Notice Without an Image!',
- // (string | mandatory) the text inside the notification
- text: 'This will fade out after a certain amount of time. This note also contains a link example. Thank you so much to try Dashgum. Developed by Alvarez.is.'
- });
+ $('#add-without-image').click(function () {
- return false;
+ $.gritter.add({
+ // (string | mandatory) the heading of the notification
+ title: 'This is a Notice Without an Image!',
+ // (string | mandatory) the text inside the notification
+ text: 'This will fade out after a certain amount of time. This note also contains a link example. Thank you so much to try Dashgum. Developed by Alvarez.is.'
});
- $('#add-gritter-light').click(function(){
+ return false;
+ });
- $.gritter.add({
- // (string | mandatory) the heading of the notification
- title: 'This is a Light Notification',
- // (string | mandatory) the text inside the notification
- text: 'Just add a "gritter-light" class_name to your $.gritter.add or globally to $.gritter.options.class_name',
- class_name: 'gritter-light'
- });
+ $('#add-gritter-light').click(function () {
- return false;
+ $.gritter.add({
+ // (string | mandatory) the heading of the notification
+ title: 'This is a Light Notification',
+ // (string | mandatory) the text inside the notification
+ text: 'Just add a "gritter-light" class_name to your $.gritter.add or globally to $.gritter.options.class_name',
+ class_name: 'gritter-light'
});
- $("#remove-all").click(function(){
+ return false;
+ });
- $.gritter.removeAll();
- return false;
+ $("#remove-all").click(function () {
- });
+ $.gritter.removeAll();
+ return false;
+
+ });
-}();
\ No newline at end of file
+}();
diff --git a/app/assets/js/index.js b/app/assets/js/index.js
index 158a6b0..5b78344 100644
--- a/app/assets/js/index.js
+++ b/app/assets/js/index.js
@@ -16,19 +16,22 @@ const { app, BrowserWindow } = remote
const fs = require('fs')
const ipc = require('electron').ipcRenderer
const Config = require('electron-store')
-const settings = new Config({'name': 'aio-data'})
-const persistantData = new Config({'name': 'aio-persist'})
-const lastView = new Config({'name': 'aio-last'})
-const userThemes = new Config({'name': 'user-themes'})
+const settings = new Config({ 'name': 'aio-data' })
+const persistantData = new Config({ 'name': 'aio-persist' })
+const dataObj = new Config({ 'name': 'aio-data-obj' })
+const lastView = new Config({ 'name': 'aio-last' })
+const userThemes = new Config({ 'name': 'user-themes' })
+const casdkApps = new Config({ 'name': 'casdk' })
const { writeFileSync } = require('fs')
const isDev = require('electron-is-dev')
const path = require('path')
var copyFolderLocation = persistantData.get('copyFolderLocation')
-var visits = persistantData.get('visits')
+var visits = persistantData.get('visits') || 0
var hasColorFiles = fs.existsSync(`${app.getPath('userData')}/color-schemes/`)
var hasSpeedCamFiles = fs.existsSync(`${app.getPath('userData')}/speedcam-patch/`)
var translateSchema, langPath, lang
var tempDir = `${app.getPath('userData')}/background`
+var date = function () { return new Date() }
// require('./lib/log')('MZD-AIO-LOG')
// var output = process.stdout
// var errorOutput = process.stderr
@@ -66,12 +69,12 @@ if (!fs.existsSync(tempDir)) {
fs.mkdirSync(tempDir)
}
-function helpMessageFreeze (item) {
+function helpMessageFreeze(item) {
$(item).children().toggleClass('w3-show')
}
/* Clock for Background preview */
-function startTime () {
+function startTime() {
var today = new Date()
var h = today.getHours()
var m = today.getMinutes()
@@ -82,8 +85,9 @@ function startTime () {
var t = setTimeout(startTime, 10000)
formatDateCustom(2)
}
-function checkTime (i) {
- if (i < 10) { i = '0' + i } // add zero in front of numbers < 10
+
+function checkTime(i) {
+ if (i < 10) { i = '0' + i } // add zero in front of numbers < 10
return i
}
/* function createImageWindow() {
@@ -92,21 +96,28 @@ var imageWindow = windowManager.open('imageWindow')// , 'Drag & Drop Background
ipc.on('open-copy-folder', () => {
openCopyFolder()
})
-function openCopyFolder () {
+
+function openCopyFolder() {
copyFolderLocation = path.normalize(path.join(persistantData.get('copyFolderLocation'), '/_copy_to_usb/config'))
if (!shell.showItemInFolder(copyFolderLocation)) {
- bootbox.alert({
- message: `"${copyFolderLocation.replace('config', '')}" Does Not Exist. Click "Start Compilation" to Run The Tweak Builder and Create the _copy_to_usb Folder.`
- })
+ copyFolderLocation = path.normalize(path.join(persistantData.get('copyFolderLocation'), '/_copy_to_usb/tweaks.sh'))
+ if (!shell.showItemInFolder(copyFolderLocation)) {
+ bootbox.alert({
+ message: `"${copyFolderLocation.replace('config', '')}" Does Not Exist. Click "Start Compilation" to Run The Tweak Builder and Create the _copy_to_usb Folder.`
+ })
+ }
}
}
-function openApkFolder () {
+
+function openApkFolder() {
shell.showItemInFolder(path.normalize(path.join('file://', __dirname, '../../castscreenApp/castscreen-1.0.apk')))
}
-function openDlFolder () {
+
+function openDlFolder() {
shell.showItemInFolder(path.normalize(path.join(app.getPath('userData'), 'color-schemes/Blue')))
}
-function openDefaultFolder () {
+
+function openDefaultFolder() {
shell.showItemInFolder(path.normalize(path.join('file://', __dirname, '../background-images/default/defaut.png')))
}
function autoHelp () {
@@ -140,35 +151,47 @@ function updateNotes () {
closeButton: true
})
setTimeout(function () {
- $('.modal-dialog').animate({'margin-top': '40px', 'margin-bottom': '60px'}, 3000)
+ $('.modal-dialog').animate({ 'margin-top': '40px', 'margin-bottom': '60px' }, 3000)
$('#newVerBtn').fadeIn(5000)
}, 2000)
}
-function firstTimeVisit () {
- if (!persistantData.has('updateVer') || persistantData.get('updateVer') < 271) {
+
+function firstTimeVisit() {
+ if (!persistantData.has('updateVer') || persistantData.get('updateVer') < 278) {
myStance()
- persistantData.set('updateVer', 272)
+ persistantData.set('updateVer', 278)
persistantData.set('updated', false)
persistantData.delete('ver270')
persistantData.delete('message-502')
persistantData.delete('message-503')
+ persistantData.delete('message-504')
persistantData.delete('new-update-first-run')
+ persistantData.delete('keepBackups')
+ persistantData.delete('testBackups')
+ persistantData.delete('skipConfirm')
+ persistantData.delete('transMsg')
+ persistantData.delete('delCopyFolder')
+ persistantData.delete('known-issues-58')
+ persistantData.delete('known-issues-59')
} else {
updateNotesCallback()
}
}
-function updateNotesCallback () {
+
+function updateNotesCallback() {
if (visits > 0) {
- if(!persistantData.get('updated')) {
+ if (!persistantData.get('updated')) {
updateNotes()
persistantData.set('updated', true)
}
} else {
+ persistantData.set('visits', 1)
$('body').prepend('')
var firstTimeMessage = bootbox.dialog({
title: `
Welcome To MZD-AIO-TI v${app.getVersion()} | MZD All In One Tweaks Installer
`,
- message: `
Welcome to the AIO!
All changes happen at your own risk! Please understand that you can damage or brick your infotainment system running these tweaks! If you are careful, follow all instructions carefully, and heed all warnings, the chances of damaging your system are greatly reduced. For more help, open the Help Panel or visit MazdaTweaks.com
I appreciate feedback use the feedback link below to let me know what you think.
All changes happen at your own risk! Please understand that you can damage or brick your infotainment system running these tweaks! If you are careful, follow all instructions carefully, and heed all warnings, the chances of damaging your system are greatly reduced. For more help, open the Help Panel or visit MazdaTweaks.com
I appreciate feedback use the feedback link below to let me know what you think.
***NOTE FOR FIRMWARE V59.00.502+*** CAN ONLY INSTALL TWEAKS AFTER GAINING ACCESS VIA SERIAL CONNECTION . THEN YOU WILL NEED TO INSTALL THE AUTORUN & RECOVERY SCRIPTS AFTER GAINING SERIAL ACCESS.
`,
+ closeButton: false,
+ className: "first-time-dialog"
})
setTimeout(function () { $('#super-overlay').remove() }, 3000)
setTimeout(function () {
@@ -176,9 +199,11 @@ function updateNotesCallback () {
$('#newVerBtn').fadeIn(10000)
}, 20000)
}
+ dataCheck()
}
var helpClick = false
-function helpDropdown () {
+
+function helpDropdown() {
var x = document.getElementById('helpDrop')
var y = document.getElementById('helpDropBtn')
if (x.className.indexOf('w3-show') === -1) {
@@ -202,14 +227,15 @@ function helpDropdown () {
closeHelpDrop()
}
}
-function closeHelpDrop () {
+
+function closeHelpDrop() {
var x = document.getElementById('helpDrop')
var y = document.getElementById('helpDropBtn')
x.className = x.className.replace(' w3-show', '')
y.innerHTML = ""
}
// Normal Drop Down Menus
-function dropDownMenu (id) {
+function dropDownMenu(id) {
var x = document.getElementById(id)
var y = $('#' + id)
if (x.className.indexOf('w3-show') === -1) {
@@ -224,16 +250,19 @@ function dropDownMenu (id) {
}
})
}
-function toggleFullScreen () {
+
+function toggleFullScreen() {
remote.BrowserWindow.getFocusedWindow().setFullScreen(!remote.BrowserWindow.getFocusedWindow().isFullScreen())
$('.icon-fullscreen').toggleClass('icon-fullscreen-exit')
}
// Extra Options Togglers
var togg = false
-function toggleOps (x) {
+
+function toggleOps(x) {
$(x).toggleClass('icon-plus-square').toggleClass('icon-minus-square')
}
-function toggleAllOps () {
+
+function toggleAllOps() {
var x = $('.toggleExtra')
if (togg) {
$('#alltoggle').addClass('icon-minus-alt').removeClass('icon-plus-alt')
@@ -244,10 +273,12 @@ function toggleAllOps () {
}
togg = !togg
}
-function externalLink (link) {
+
+function externalLink(link) {
shell.openExternal(`http://trevelopment.win/${link}`)
}
-function cleanArray (actual) {
+
+function cleanArray(actual) {
var newArray = []
for (var i = 0; i < actual.length; i++) {
if (actual[i]) {
@@ -256,9 +287,9 @@ function cleanArray (actual) {
}
return newArray
}
-function donate () {
+
+function donate() {
shell.openExternal('http://trevelopment.win/donate')
- /*
let donatewin = new remote.BrowserWindow({
width: 500,
height: 600,
@@ -272,61 +303,48 @@ function donate () {
donatewin.on('closed', () => {
remote.BrowserWindow.fromId(1).focus()
})
- */
}
// Returns list of USB Drives
-function getUSBDrives () {
+function getUSBDrives() {
var disks = []
drivelist.list(function (error, dsklst) {
if (error) {
- bootbox.alert({
+ console.error('Error finding USB drives')
+ /*bootbox.alert({
title: 'Error',
message: 'Error finding USB drives: ' + error,
callback: function () {
bootbox.hideAll()
}
- })
- throw error
+ })*/
+ //throw error
}
for (var i = 0; i < dsklst.length; i++) {
if (!dsklst[i].system) {
// console.log(disks[i]);console.log(disks[i].name);console.log(disks[i].description);
- disks.push({'name': dsklst[i].name, 'desc': dsklst[i].description, 'mp': dsklst[i].mountpoint})
+ disks.push({ 'name': dsklst[i].name, 'desc': dsklst[i].description, 'mp': dsklst[i].mountpoint })
}
}
return disks
})
}
-function getParameterByName (name, url) {
+
+function getParameterByName(name, url) {
if (!url) url = window.location.href
url = url.toLowerCase() // This is just to avoid case sensitiveness
- name = name.replace(/[[\]]/g, '\\$&').toLowerCase()// This is just to avoid case sensitiveness for query parameter name
+ name = name.replace(/[[\]]/g, '\\$&').toLowerCase() // This is just to avoid case sensitiveness for query parameter name
var regex = new RegExp('[?&]' + name + '(=([^]*)|&|#|$)'),
- results = regex.exec(url)
- if (!results) return ''// url.substr(url.lastIndexOf('/') + 1)
+ results = regex.exec(url)
+ if (!results) return '' // url.substr(url.lastIndexOf('/') + 1)
if (!results[2]) return ''
return decodeURIComponent(results[2].replace(/\+/g, ' '))
}
-/* function getLanguage () {
-var language = getParameterByName('lang')
-if (!language) {
-if (persistantData.has('lang')) {
-language = persistantData.get('lang')
-} else {
-language = 'english'
-}
-}
-persistantData.set('lang', language)
-if (`${language}` === 'index.html') { language = 'english' }
-var langURL = `lang/${language}.aio.json`
-lang = `${language}`
-langPath = `${app.getPath('home')}/lang/${lang}.aio.json`
-langObj = require(langPath)
-} */
-function alternateLayout () {
+
+function alternateLayout() {
$('#options, #sidePanel').toggleClass('alt-layout')
}
-function secretMenu () {
+
+function secretMenu() {
$(`
Analog, Modded and Bar Speedometers are now All In One!
+
All options are available and will be applied to the proper Speedometer
+
Choose which speedometer to start with by default (if starting with Bar Speedometer other options will still determine the starting state of the Classic Speedometer)
+
The speedometer-config.js file now has all the options, set a variable to determine if override values are used or installed options.
+
Invalid Values Show "---" Such As Gear Position/Lever for Manual Transmissions
+
Gear Lever Shows P - R - N - D
+
Toggles will Show The Action In A Statusbar Notification
+
Hold "Up" on multicontroller to switch between Classic and Bar Speedometer Mode
+
Hold "Down" in Classic mode to disable single click toggles (Basic Mode))
+
Modded Speedometer (in Classic mode):
+
+
Single click "Up" to increase size of values
+
Multicontroller "Select" toggles between Digital and Analog speed
+
Single click "Down" to show alternate values
+
+
+
Bar Speedometer:
+
+
Configure The Amount of Bottom Rows in "speedometer-config.js" (Default 4)
+
Hold "Down" to show/hide speed bar
+
+ TAP Any 2 Values To Swap Their Positions!
+
+
Any Values Can Be Swapped Even The Main
+
When The Main Value Is Swapped An SBN Will Show With The Value Name
+
Tap Below The Bottom Row To Swap Hidden Values In Other Rows
+
Exiting The App Will Reset Positions To Your Default
Included with the
+ 1 Second Diagnostic Menu tweak because it is part of the Diagnostic App
+
In v59 "JCI Test Mode" was disabled in the Diagnostic App
+
+
This tweak brings back Test Mode for v59
+
Makes it easier to get to in v55-v58 (Just press the T/M button)
+
+
+
Once Test Mode is started type 11 to open the well known Test Menu
+
+
+ BE CAREFUL IN TEST MODE, DON'T DO ANYTHING YOU ARE UNSURE ABOUT!
+
+
+
+
+
Tweak Installer Changes/Fixes
+
+
+
App install/uninstall now uses NodeJS to add/remove from app list
+
+
Allows for cleaner installations
+
Backward compatible
+
Solves the issue of all apps disappearing off the app list when only 1 is uninstalled due to improperly formatted JSON file
+
"
+ Legacy App Install" in install options to use the old method (using bash)
+
+
The only reason I can think of for this is if you already have an improperly formatted JSON file then you need to uninstall all apps with legacy installer because the NodeJS code will throw an error. Other than that the NodeJS code will never
+ cause an improperly formatted JSON file.
+
+
+
+
+
Cleaned up installer code
+
+
Removed some superfluous code
+
Fixed many inconsequential errors
+
+
+
2.7.6
-
MZD-AIO GUI Changes/Fixes:
+
MZD-AIO GUI Changes/Fixes:
Fixed "Bootbox is not defined" error preventing AIO from running for some.
Bluetooth Call Bug Fixed!!!Big thanks to @lmagder for fixing the headunit code after @Trezdog44 found the root of the issue with the 'Bluetooth call patch'
Video focus is lost at the beginning and end of a call due to the system expecting a context change. Press the FAV (<span class="icon-star"></span>) Button to get video focus back and AA will function normally.
Phone button opens AA phone screen, also call buttons work for answering and ending calls.
N\AV button opens the AA home screen
Tap the black box on the credit screen to display contents of the headunit.log file.
Added the Android Auto Icon to the statusbar
(The 'Bluetooth Call Patch' from AA 1.03 is no longer needed from this version on.)
(If it was applied will be reverted back to normal)
@@ -194,7 +286,7 @@
VideoPlayer v3.0
AIO Tweaks v0.3
Start Headunit Process
Will now successfully Start Android Auto Headunit Process
Also Active Headunit stdout will pop up
View Headunit Log
Shows the existing headunit.log file in a window
Screen off
Turns the screen off
wifiAP
Starts Wifi Access Point
(start_wifi.sh; jci-wifiap.sh start)
Stop Firewall
Stops the firewall
(jci-fw.sh stop)
System Restore WARNING: This will remove all tweaks and uninstall all AIO apps
Restore you system on the fly with a slimmed down restore script
Removes all tweaks and AIO apps including this one
Does not restore Color Scheme (all those image files take up a lot of space)
Very small and safe only targets and restores from internal backups.
Asks for verification twice to ensure it is not accidentally run.
Env - Environment variables
For informational/educational purposes
Also used by developers for fun times
Fixed saving issue with the tweak toggle buttons
General Improvements/Bug Fixes
On Startup looks for some AIO log files loads FW version if found.
If FW version is found An "i" Icon will appear in the top menu bar to the left of the "reload" icon.
Click the icon to show your FW version, future plans to display more pertinent information as well.
Added Save Button to Success Dialog
Added To Top Menu "Downloads > Check For Update"
Small logging fixes in autorun and recovery scripts
Fixed WiFiAP files not copying when it was the only autorun script chosen
Many other small improvements/fixes
-
v2.6.8
+
v2.6.8
New Install Option: Retrieve CMU Data
Changes the 'no's to 'yes' in dataRetrieval_config.txt
@@ -245,12 +337,12 @@
v2.6.8
-
v2.6.6
+
v2.6.6
ID7_Recovery Pack - A collection of autorun scripts that will lay dormant until needed for recovery. Upon detected configuration change automatically applies SSH_bringback with additional recovery features, it is the easyest way to maintain system access.
ID7_Recovery - Fixed Install not showing dialog to reboot
(**SSH_Bringback also opens additional ports 24000 & 36000**)
(Recomended Update if already installed)
Fixed these release notes popping up every time AIO is opened
Added some images and info in help messages
-
v2.6.5
+
v2.6.5
ID7_Recovery will persist through a Firmware update. On each boot checks, and if necessary repairs the following:
SSH access
@@ -270,7 +362,7 @@
v2.6.5
It is recommended to install this pack BEFORE updating firmware or anytime as a safety net. This script will ensure that SSH access will be automatically restored if it is lost for any reason.
-
v2.6.4
+
v2.6.4
CMU-Autorun - For Testing and Recovery
Autorun Installer - Install the autorun script BEFORE updating to v59.00.502 to recover your system and regain access after the update is complete.
There is no harm, performance impact, or danger installing the autorun script and not using it until it is needed.
If there is no run.sh script file available at the root of the SD card or USB drives the script silently does nothing.
Ultimately it is a good idea for everyone to install because it provides an additional layer of safety for system recovery in any situation.
More to come in the next AIO update, for SD card scripts to use with autorun check out the CMU-autorun repository
Make sure you check the forums before allowing an update to an unknown firmware version to ensure this and other known workarounds have not been closed.
AIO Tweaks App!
@@ -286,7 +378,7 @@
Speedometer Variant
Press Command Knob or Tap 'Total Time': Reset 'Total Time,' (to 0) 'Ave. Speed,' 'Top Speed,' (to 0 or current speed) and both idle time fields (reset to 0 view will reset when vehicle is idle again).
Tilt-Down or Tap 'Top Speed': Toggle hide/show for both idle times and increase the font-size of all other fields.
Tilt-Left: Digital Speedometer
Tilt-Right: Analog Speedometer
Tilt-Up: Toggle between mph and km/h
Bug Fixes
Fixed Bug with Apps randomly disappearing from App Menu effecting v59.00.400 - v59.00.450
Fixed bug where after running the 'Full Restore' Script, 'Android Auto' could not be reinstalled.
Applied fix to both the 'Full Restore' Script and 'Android Auto' Install Script
-
v2.6.1
+
v2.6.1
CMU-Autorun
Linked in the "download" menu & "Help Panel > Tips & Tricks" - Installer/Uninstaller is in one script.
@@ -300,7 +392,7 @@
Tweak Fixes
Fixed Smooth color themes changing background when "Use Color Scheme Background" option is not checked.
Applying color scheme will no longer overwrite custom blank album art or custom off-screen background.
-
v2.6.0
+
v2.6.0
NEW TWEAKS:
USB Audio Mod | By: Enlsen
@@ -391,7 +483,7 @@
v2.5.10
Adjusted CastScreen, may fix issues for some.
Added compatible firmware 59.00.445A-JP
-
v2.5.9
+
v2.5.9
SSH_Bringback:
A second root user/pass - jci/jci is now added.
@@ -423,7 +515,7 @@
SSH_Bringback:
-
v2.5.6
+
v2.5.6
PATCHES:
Fixed the Error Message Display in the VideoPlayer
@@ -441,7 +533,7 @@
v2.5.6
-
v2.5.5
+
v2.5.5
VIDEO PLAYER V2.9
Full multicontroller functionality
Scroll and Select Video List (cw/ccw - select)
List looping in selection and playback
Scroll and Select Options (tile-right/left - select)
Previous track
Play Previous Video
Repeat all option
Recently Played Videos are not repeated in shuffle mode until the entire list is played.
Toggling Repeat All will clear recently played videos list.
Save Configuration To Local Storage
Utilize the CMU's Local Storage to save options even after a reboot.
All option choices AND recently played video list are saved to local storage.
More Touch Controls During playback
Control next/prev/ff/rw and more by tapping sections of the touch screen.
Change all or part of the boot animation (Default 'Disabled' Animation Uses Default LoopLogo for all 3 parts of the sequence allowing for the shortest boot time the illusion of no boot animation)
ALL FILES ASSOCIATED WITH THE SPEEDCAM PATCH, NNG, IGO AND ANY NAVIGATION PATCHING TOOLS ARE NO LONGER AVAILABLE WITH MZD-AIO-TI.
This will allow for continued development of this project without infringing on the copyrights of NNG Kft. and potentially causing the company to target developers and/or users to sue for Copyright Infringement. Additionally, no information regarding speedcam or navigation patching will be available or provided through MZD-AIO-TI or any associated developer of MZD-AIO-TI.
Uninstall for speedcam patch will be available but is deprecated and will eventually be removed
-
2.4.3
+
2.4.3
Video Player 2.8
Did somebody say VIDEO PLAYER MUTICONTROLLER SUPPORT?? YES I DID!
ButtonPress = Play/Pause
@@ -475,7 +567,7 @@
2.4.3
Fixed a little bug where SSH_bringback wasn't being added to compilation when autoselected.
Reverted Compatibility for 'Media Order Patch & FLAC Support' tweak.
Compatibilities with issues are neatly commented out in the code for testing purposes.
@@ -486,7 +578,7 @@
v2.4.2
Choosing 'Media Order Patch & FLAC Support' will auto-choose SSH_Bringback (It can be unselected but that is not recommended).
Speedcam Patch Compatibility should be ok but should be considered a beta test for FW. ver. 59.00.411A-NA & 59.00.443C-EU.
-
v2.4.0
+
v2.4.0
Android Auto Bugfixes
re-enables the dialer interface if the phone is paired and connected to the headunit via BT (Not Completely fixed, Still an Issue)
@@ -533,23 +625,23 @@
v2.4.0
Bits of Resizing and shifting.
Font change.
-
v2.3.4
+
v2.3.4
Added Speedometer Variant By: pnedkov
Tap Screen To Switch Between Analog & Digital Style Speedometer
Re-enabled SSH Bringback
-
v2.3.3
+
v2.3.3
Moved Backup options to a Pop-out 'Install Options' panel on the top-left side
Added a 'Skip Confirmation' Option (Also in the Install Options Pop-out Panel)
Added a 'Compatibility Check' view to clarify Compatibilities (Under the 'Help' Menu)
-
v2.3.2:
+
v2.3.2:
Disabled SSH bringback untill issue is resolved
-
v2.3.1:
+
v2.3.1:
Fix Bug with Compass and Speedometer in v59+ (noNavSD = true;)
Added 'Remove List Loop Beep' Option
-
v2.3.0:
+
v2.3.0:
Video Player v2.7 Update - IS AWESOME THANK YOU VIC_BAM85!!!
New Controls in full screen mode:
@@ -617,7 +709,7 @@
Bug Fixes:
Some Tweaks not showing for certain languages
Compatible Firmware Version: 56.00.514A-ADR
-
v2.2.4:
+
v2.2.4:
Better Comments - If You Like To Look At The Code
Fallbacks Are Commented Out - So If You Really Need One You Can Get It
@@ -655,7 +747,7 @@
v2.2.4:
-
v2.2.0:
+
v2.2.0:
MAJOR CODE REFACTORING
Tweak Files - All around improvements in coding style, efficiency, logging, compatibility, commenting, and error handling
IF YOU HAVE PREVIOUSLY INSTALLED NO-MORE-DISCLAIMER, ORDER OF AUDIO SOURCE LIST, OR IMPROVED LIST LOOP MOD ON FW V59 PLEASE REINSTALL (OR UNINSTALL) BECAUSE THE FILES USED IN YOUR INSTALLATION WERE NOT UPDATED TO YOUR FIRMWARE.
@@ -701,12 +793,12 @@
Notable Changes:
Mini Speedometer automatically hides the notification border without date to statusbar mod
Fixed a typo causing the blue nav color scheme to fail to uninstall. Now it is removed when changing back to default (red).
-
I Will take suggestions for main menu layouts, Just mock up your Idea in Photoshop or paint or, for you software freedom lovers, GIMP2
+
I Will take suggestions for main menu layouts, Just mock up your Idea in Photoshop or paint or, for you software freedom lovers, GIMP2
'Star Points' Layout:
'Inverted' Layout:
(Main Menu Label On Top Of The Screen Under Statusbar)
-
v2.1.5:
+
v2.1.5:
UI Style Tweaks:
@@ -726,7 +818,7 @@
v2.1.5:
Blue Color Scheme Now Includes Blue Navigation Color Scheme
Android Auto Install Works!
-
v2.1.3:
+
v2.1.3:
Fixed The Issue causing installation to fail to start in the car.
Window state is now saved on exit and restored upon reopening. For real this time.
Background Rotator will now rotate up to 50 backgrounds (More backgrounds will take longer to load)
Also set the number of seconds each background will show: from 10 - 300 seconds (5 minutes)
@@ -752,7 +844,7 @@
v2.1.2:
Window state is now saved on exit and restored upon reopening.
Some more bug and formatting fixes.
-
v2.1.0:
+
v2.1.0:
NEW TWEAKS!!
Statusbar Tweaks
@@ -777,7 +869,7 @@
v2.1.0:
Retrieves FW version from previously used USB drive
French Translation By: Salegosse (Mazda3revolution.com)
-
v2.0.6:
+
v2.0.6:
Copy buttons for text fields on translator page.
Added a top bar and clock to the background preview.
@@ -785,7 +877,7 @@
v2.0.6:
Fixed Castscreen Receiver
Fixed Android Auto
-
v2.0.5:
+
v2.0.5:
Initial language chosen for Speedometer Tweak based on locale (Fallback to English if locale does not match any provided translations or is not found.)
Speedometer: Km/h selected by default except en-US (mph if locale = en-US).
@@ -795,7 +887,7 @@
v2.0.5:
Added some HINT messages during Compilation
Added Infotainment Frame to background preview
-
v2.0.4:
+
v2.0.4:
Fixed bug when choosing Swapfile tweak and not copying directly to USB Drive.
Fixed bug where Patched files were not copying for Speedcam Patch
@@ -820,7 +912,7 @@
Added Key bindings:
-
v2.0.3:
+
v2.0.3:
Updated Patching Tool v2.3 (Thanks Modfreakz!).
Added Compatible fw v.56.00.100A-EU.
@@ -833,12 +925,12 @@
v2.0.3:
EXPERIMENTAL FEATURE: GOOGLE TRANSLATE Can be found in Help & Settings Menu. (Some languages will break the formatting)
GOOGLE TRANSLATE pop-up on the translator page to assist with translations.
-
v2.0.2:
+
v2.0.2:
Clean up code/Improvements in logging
Updated Android Auto with the latest binaries. Should be stable now but needs additional testing to confirm
-
v2.0.1:
+
v2.0.1:
Automatic Updates
Delete copy to usb folder after copying to USB Drive option
diff --git a/app/config.json b/app/config.json
deleted file mode 100644
index 35cb40d..0000000
--- a/app/config.json
+++ /dev/null
@@ -1,3 +0,0 @@
-{
- "debug": false
-}
diff --git a/app/controllers/home.js b/app/controllers/home.js
index b63d8aa..2315e75 100644
--- a/app/controllers/home.js
+++ b/app/controllers/home.js
@@ -64,6 +64,7 @@
aaBetaVer: false,
vpUnicode: false,
gracenoteText: "Powered By Gracenote®",
+ noNodeInstall: settings.get('noNodeInstall') || false,
altLayout: settings.get('altLayout') || false,
darkMode: settings.get('darkMode') || false,
flipOption: settings.get('flipOption') || '',
@@ -125,9 +126,9 @@
temperature: {id: 42},
startbar: {id:45},
color: null,
- mod: false,
- modAlt: false,
- simpmod: false,
+ mod: true,
+ modAlt: true,
+ simpmod: true,
sbtemp: false,
digiclock: false,
opac: 0
@@ -720,6 +721,22 @@ function CasdkCtrl ($scope, $http) {
devtools: false,
sdcard: false
}
+ $scope.visibleApps = {
+ simpledashboard: casdkApps.get('simpledashboard') || true,
+ multidash: casdkApps.get('multidash') || false,
+ vdd: casdkApps.get('vdd') || false,
+ terminal: casdkApps.get('terminal') || false,
+ gpsspeed: casdkApps.get('gpsspeed') || false,
+ aio: casdkApps.get('aio') || false,
+ speedometer: casdkApps.get('speedometer') || false,
+ tetris: casdkApps.get('tetris') || false,
+ snake: casdkApps.get('snake') || false,
+ breakout: casdkApps.get('breakout') || false,
+ background: casdkApps.get('background') || false,
+ multicontroller: casdkApps.get('multicontroller') || false,
+ devtools: casdkApps.get('devtools') || false,
+ sdcard: casdkApps.get('sdcard') || false
+ }
$scope.compileCASDK = function(user) {
buildTweakFile(user, $scope.apps)
}
diff --git a/app/files/tweaks/00___fullRestore.sh b/app/files/tweaks/00___fullRestore.sh
index 1c01928..d38004a 100644
--- a/app/files/tweaks/00___fullRestore.sh
+++ b/app/files/tweaks/00___fullRestore.sh
@@ -19,7 +19,7 @@ then
log_message "=== Original data.zip is available as backup ==="
cp -a /jci/nng/data.zip.org /jci/nng/data.zip
log_message "=== Renamed data.zip.org back to data.zip ==="
- if [ "${DEL_BAKUPS}" = "1" ]
+ if [ $DEL_BAKUPS -eq 1 ]
then
rm -f /jci/nng/data.zip.org
log_message "=== Deleted backup: data.zip.org ==="
@@ -31,7 +31,7 @@ if [ -e /jci/nng/jci-linux_imx6_volans-release.org ]
then
mv /jci/nng/jci-linux_imx6_volans-release.org /jci/nng/jci-linux_imx6_volans-release
show_message "RESTORED JCI-LINUX_IMX6_VOLANS-RELEASE BACK TO ORIGINAL"
- if [ "${DEL_BAKUPS}" = "1" ]
+ if [ $DEL_BAKUPS -eq 1 ]
then
rm -f /jci/nng/jci-linux_imx6_volans-release.org
log_message "=== Deleted backup: jci-linux_imx6_volans-release.org ==="
@@ -61,7 +61,7 @@ fi
# rm -f /usr/lib/gstreamer-0.10/libgstflac.so
# rm -f /usr/lib/libFLAC.so.8.3.0
# rm -f /usr/lib/libFLAC.so.8
-# if [ "${DEL_BAKUPS}" = "1" ]
+# if [ $DEL_BAKUPS -eq 1 ]
# then
# rm -f /jci/lib/libmc_user.so.org
# log_message "=== Deleted backup: libmc_user.so.org ==="
@@ -80,7 +80,7 @@ then
rm -f /jci/gui/apps/system/js/systemApp.js.audio
rm -f /jci/gui/apps/system/js/systemApp.js.disclaimer
log_message "=== Removed systemApp.js.audio and systemApp.js.disclaimer flags ==="
- if [ "${DEL_BAKUPS}" = "1" ]
+ if [ $DEL_BAKUPS -eq 1 ]
then
rm -f /jci/gui/apps/system/js/systemApp.js.org
log_message "=== Deleted backup: systemApp.js.org ==="
@@ -98,7 +98,7 @@ then
log_message "============********** UNINSTALL MAIN-MENU-LOOP ... ********============="
cp -a /jci/gui/apps/system/controls/MainMenu/js/MainMenuCtrl.js.org /jci/gui/apps/system/controls/MainMenu/js/MainMenuCtrl.js
log_message "=== Restored Original MainMenuCtrl.js From Backup ==="
- if [ "${DEL_BAKUPS}" = "1" ]
+ if [ $DEL_BAKUPS -eq 1 ]
then
rm -f /jci/gui/apps/system/controls/MainMenu/js/MainMenuCtrl.js.org
log_message "=== Deleted backup: MainMenuCtrl.js.org ==="
@@ -114,7 +114,7 @@ then
log_message "=========******** UNINSTALL LIST_LOOP_MOD ... *********======="
cp -a /jci/gui/common/controls/List2/js/List2Ctrl.js.org /jci/gui/common/controls/List2/js/List2Ctrl.js
log_message "=== Restored List2Ctrl.js from backup ==="
- if [ "${DEL_BAKUPS}" = "1" ]
+ if [ $DEL_BAKUPS -eq 1 ]
then
rm -f /jci/gui/common/controls/List2/js/List2Ctrl.js.org
log_message "=== Deleted backup: List2Ctrl.js.org ==="
@@ -138,7 +138,7 @@ then
fi
if [ -e /jci/gui/apps/diag/js/diagApp.js.org ] || [ -e /jci/gui/apps/diag/js/diagApp.js.org2 ]
then
- if [ "${DEL_BAKUPS}" = "1" ]
+ if [ $DEL_BAKUPS -eq 1 ]
then
rm -f /jci/gui/apps/diag/js/diagApp.js.org
rm -f /jci/gui/apps/diag/js/diagApp.js.org2
@@ -161,6 +161,27 @@ then
fi
rm -f /jci/gui/common/js/Common.js.org2
fi
+if [ -e /jci/gui/apps/diag/controls/Test/js/TestCtrl.js.org ]
+then
+ cp -a /jci/gui/apps/diag/controls/Test/js/TestCtrl.js.org /jci/gui/apps/diag/controls/Test/js/TestCtrl.js
+ log_message "=== Restored TestCtrl.js From Backup ==="
+ if [ $DEL_BAKUPS -eq 1 ]
+ then
+ rm -f /jci/gui/apps/diag/controls/Test/js/TestCtrl.js.org
+ log_message "=== Deleted backup: TestCtrl.js.org ==="
+ fi
+fi
+if [ -e /jci/gui/apps/diag/controls/Test/css/TestCtrl.css.org ]
+then
+ cp -a /jci/gui/apps/diag/controls/Test/css/TestCtrl.css.org /jci/gui/apps/diag/controls/Test/css/TestCtrl.css
+ log_message "=== Restored TestCtrl.css From Backup ==="
+ if [ $DEL_BAKUPS -eq 1 ]
+ then
+ rm -f /jci/gui/apps/diag/controls/Test/css/TestCtrl.css.org
+ log_message "=== Deleted backup: TestCtrl.css.org ==="
+ fi
+fi
+log_message " "
# remove pause on mute
if [ -e /jci/gui/common/js/Common.js.org ]
then
@@ -174,7 +195,7 @@ then
fi
cp -a /jci/gui/common/js/Common.js.org /jci/gui/common/js/Common.js
log_message "=== Common.js Restored From Backup ==="
- if [ "${DEL_BAKUPS}" = "1" ]
+ if [ $DEL_BAKUPS -eq 1 ]
then
rm -f /jci/gui/common/js/Common.js.org
log_message "=== Deleted backup: Common.js.org ==="
@@ -193,7 +214,7 @@ then
log_message "========********** UNINSTALL BACKGROUND ROTATOR ... *******========"
cp -a /jci/gui/common/css/common.css.org /jci/gui/common/css/common.css
log_message "=== Restored /jci/gui/common/css/common.css from backup ==="
- if [ "${DEL_BAKUPS}" = "1" ]
+ if [ $DEL_BAKUPS -eq 1 ]
then
rm -f /jci/gui/common/css/common.css.org
log_message "=== Deleted backup: common.css.org ==="
@@ -212,7 +233,7 @@ then
log_message "=========********* UNINSTALL REMOVE MESSAGE REPLIES ... ********========="
cp -a /jci/settings/configurations/blm_msg-system.xml.org /jci/settings/configurations/blm_msg-system.xml
log_message "=== Message Replies Restored From Backup blm_msg-system.xml.org ==="
- if [ "${DEL_BAKUPS}" = "1" ]
+ if [ $DEL_BAKUPS -eq 1 ]
then
rm -f /jci/settings/configurations/blm_msg-system.xml.org
log_message "=== Deleted backup: blm_msg-system.xml.org ==="
@@ -228,7 +249,7 @@ then
log_message "========******** UNINSTALL DISABLE BOOT ANIMATION ... ********========"
cp -a /jci/resources/LoopLogo.ivf.org /jci/resources/LoopLogo.ivf
log_message "=== Restored original /jci/resources/LoopLogo.ivf ==="
- if [ "${DEL_BAKUPS}" = "1" ]
+ if [ $DEL_BAKUPS -eq 1 ]
then
rm -f /jci/resources/LoopLogo.ivf.org
log_message "=== Deleted backup: LoopLogo.ivf.org ==="
@@ -238,7 +259,7 @@ if [ -e /jci/resources/ExitLogo.ivf.org ]
then
cp -a /jci/resources/ExitLogo.ivf.org /jci/resources/ExitLogo.ivf
log_message "=== Restored original /jci/resources/ExitLogo.ivf ==="
- if [ "${DEL_BAKUPS}" = "1" ]
+ if [ $DEL_BAKUPS -eq 1 ]
then
rm -f /jci/resources/ExitLogo.ivf.org
log_message "=== Deleted backup: ExitLogo.ivf.org ==="
@@ -248,7 +269,7 @@ if [ -e /jci/resources/TranLogo.ivf.org ]
then
cp -a /jci/resources/TranLogo.ivf.org /jci/resources/TranLogo.ivf
log_message "=== Restored original /jci/resources/TranLogo.ivf ==="
- if [ "${DEL_BAKUPS}" = "1" ]
+ if [ $DEL_BAKUPS -eq 1 ]
then
rm -f /jci/resources/TranLogo.ivf.org
log_message "=== Deleted backup: TranLogo.ivf.org ==="
@@ -258,7 +279,7 @@ if [ -e /jci/resources/TranLogoEnd.ivf.org ]
then
cp -a /jci/resources/TranLogoEnd.ivf.org /jci/resources/TranLogoEnd.ivf
log_message "=== Restored original /jci/resources/TranLogoEnd.ivf ==="
- if [ "${DEL_BAKUPS}" = "1" ]
+ if [ $DEL_BAKUPS -eq 1 ]
then
rm -f /jci/resources/TranLogoEnd.ivf.org
log_message "=== Deleted backup: TranLogoEnd.ivf.org ==="
@@ -274,7 +295,7 @@ then
cp -a /jci/gui/common/controls/Sbn/css/SbnCtrl.css.org /jci/gui/common/controls/Sbn/css/SbnCtrl.css
log_message "=== Restored backup from SbnCtrl.css.org ==="
rm -f /jci/gui/common/controls/Sbn/css/SbnCtrl.all.css
- if [ "${DEL_BAKUPS}" = "1" ]
+ if [ $DEL_BAKUPS -eq 1 ]
then
rm -f /jci/gui/common/controls/Sbn/css/SbnCtrl.css.org
log_message "=== Deleted backup: SbnCtrl.css.org ==="
@@ -284,7 +305,7 @@ if [ -e /jci/gui/common/controls/StatusBar/css/StatusBarCtrl.css.org ]
then
cp -a /jci/gui/common/controls/StatusBar/css/StatusBarCtrl.css.org /jci/gui/common/controls/StatusBar/css/StatusBarCtrl.css
log_message "=== Restored backup from StatusBarCtrl.css.org ==="
- if [ "${DEL_BAKUPS}" = "1" ]
+ if [ $DEL_BAKUPS -eq 1 ]
then
rm -f /jci/gui/common/controls/StatusBar/css/StatusBarCtrl.css.org
log_message "=== Deleted backup: StatusBarCtrl.css.org ==="
@@ -300,7 +321,7 @@ then
fi
cp -a /jci/gui/common/controls/StatusBar/js/StatusBarCtrl.js.org /jci/gui/common/controls/StatusBar/js/StatusBarCtrl.js
log_message "=== Restored backup from StatusBarCtrl.js.org ==="
- if [ "${DEL_BAKUPS}" = "1" ]
+ if [ $DEL_BAKUPS -eq 1 ]
then
rm -f /jci/gui/common/controls/StatusBar/js/StatusBarCtrl.js.org
log_message "=== Deleted backup: StatusBarCtrl.js.org ==="
@@ -318,7 +339,7 @@ if [ -e /jci/gui/common/controls/StatusBar/images/StatusBarBg.png.org ]
then
cp -a /jci/gui/common/controls/StatusBar/images/StatusBarBg.png.org /jci/gui/common/controls/StatusBar/images/StatusBarBg.png
log_message "=== Restored backup from StatusBarBg.png.org ==="
- if [ "${DEL_BAKUPS}" = "1" ]
+ if [ $DEL_BAKUPS -eq 1 ]
then
rm -f /jci/gui/common/controls/StatusBar/images/StatusBarBg.png.org
log_message "=== Deleted backup: StatusBarBg.png.org ==="
@@ -328,7 +349,7 @@ if [ -e /jci/gui/framework/js/Utility.js.org ]
then
cp -a /jci/gui/framework/js/Utility.js.org /jci/gui/framework/js/Utility.js
log_message "=== Restored backup from Utility.js.org ==="
- if [ "${DEL_BAKUPS}" = "1" ]
+ if [ $DEL_BAKUPS -eq 1 ]
then
rm -f /jci/gui/framework/js/Utility.js.org
log_message "=== Deleted backup: Utility.js.org ==="
@@ -343,7 +364,7 @@ then
log_message "======********* UNINSTALL NO BUTTON BACKGROUND GRAPHICS ... ******======"
cp -a /jci/gui/common/controls/Ump3/css/Ump3Ctrl.css.org /jci/gui/common/controls/Ump3/css/Ump3Ctrl.css
log_message "=== Restored Ump3Ctrl.css from backup ==="
- if [ "${DEL_BAKUPS}" = "1" ]
+ if [ $DEL_BAKUPS -eq 1 ]
then
rm -f /jci/gui/common/controls/Ump3/css/Ump3Ctrl.css.org
log_message "=== Deleted backup: Ump3Ctrl.css.org ==="
@@ -377,7 +398,7 @@ then
log_message "========******** UNINSTALL UI TEXT STYLE TWEAKS ... ********========"
cp -a /jci/gui/common/controls/List2/css/List2Ctrl.css.org /jci/gui/common/controls/List2/css/List2Ctrl.css
log_message "=== Restored backup from List2Ctrl.css.org ==="
- if [ "${DEL_BAKUPS}" = "1" ]
+ if [ $DEL_BAKUPS -eq 1 ]
then
rm -f /jci/gui/common/controls/List2/css/List2Ctrl.css.org
log_message "=== Deleted backup: List2Ctrl.css.org ==="
@@ -387,7 +408,7 @@ if [ -e /jci/gui/common/controls/NowPlaying4/css/NowPlaying4Ctrl.css.org ]
then
cp -a /jci/gui/common/controls/NowPlaying4/css/NowPlaying4Ctrl.css.org /jci/gui/common/controls/NowPlaying4/css/NowPlaying4Ctrl.css
log_message "=== Restored backup from NowPlaying4Ctrl.css.org ==="
- if [ "${DEL_BAKUPS}" = "1" ]
+ if [ $DEL_BAKUPS -eq 1 ]
then
rm -f /jci/gui/common/controls/NowPlaying4/css/NowPlaying4Ctrl.css.org
log_message "=== Deleted backup: NowPlaying4Ctrl.css.org ==="
@@ -397,7 +418,7 @@ if [ -e /jci/gui/apps/system/controls/MainMenu/css/MainMenuCtrl.css.org ]
then
cp -a /jci/gui/apps/system/controls/MainMenu/css/MainMenuCtrl.css.org /jci/gui/apps/system/controls/MainMenu/css/MainMenuCtrl.css
log_message "=== Restored backup from MainMenuCtrl.css.org ==="
- if [ "${DEL_BAKUPS}" = "1" ]
+ if [ $DEL_BAKUPS -eq 1 ]
then
rm -f /jci/gui/apps/system/controls/MainMenu/css/MainMenuCtrl.css.org
log_message "=== Deleted backup: MainMenuCtrl.css.org ==="
@@ -412,7 +433,7 @@ then
log_message "========********* UNINSTALL FUEL CONSUMPTION TWEAK ... *********========"
cp -a /jci/gui/apps/ecoenergy/controls/FuelConsumption/css/FuelConsumptionCtrl.css.org /jci/gui/apps/ecoenergy/controls/FuelConsumption/css/FuelConsumptionCtrl.css
log_message "=== Restored original FuelConsumptionCtrl.css from backup ==="
- if [ "${DEL_BAKUPS}" = "1" ]
+ if [ $DEL_BAKUPS -eq 1 ]
then
rm -f /jci/gui/apps/ecoenergy/controls/FuelConsumption/css/FuelConsumptionCtrl.css.org
log_message "=== Deleted backup: FuelConsumptionCtrl.css.org ==="
@@ -422,7 +443,7 @@ if [ -e /jci/gui/apps/ecoenergy/controls/FuelConsumption/images/FuelConsBG.png.o
then
cp -a /jci/gui/apps/ecoenergy/controls/FuelConsumption/images/FuelConsBG.png.org /jci/gui/apps/ecoenergy/controls/FuelConsumption/images/FuelConsBG.png
log_message "=== Restored original FuelConsumptionCtrl.png from backup ==="
- if [ "${DEL_BAKUPS}" = "1" ]
+ if [ $DEL_BAKUPS -eq 1 ]
then
rm -f /jci/gui/apps/ecoenergy/controls/FuelConsumption/images/FuelConsBG.png.org
log_message "=== Deleted backup: FuelConsBG.png.org ==="
@@ -432,7 +453,7 @@ if [ -e /jci/gui/apps/ecoenergy/controls/FuelConsumption/js/FuelConsumptionCtrl.
then
cp -a /jci/gui/apps/ecoenergy/controls/FuelConsumption/js/FuelConsumptionCtrl.js.org /jci/gui/apps/ecoenergy/controls/FuelConsumption/js/FuelConsumptionCtrl.js
log_message "=== Restored original FuelConsBG.png from backup ==="
- if [ "${DEL_BAKUPS}" = "1" ]
+ if [ $DEL_BAKUPS -eq 1 ]
then
rm -f /jci/gui/apps/ecoenergy/controls/FuelConsumption/js/FuelConsumptionCtrl.js.org
log_message "=== Deleted backup: FuelConsumptionCtrl.js.org ==="
@@ -447,7 +468,7 @@ then
log_message "========******* UNINSTALL OFF SCREEN BACKGROUND IMAGE ... *******========"
cp -a /jci/gui/apps/system/controls/OffScreen/images/OffScreenBackground.png.org /jci/gui/apps/system/controls/OffScreen/images/OffScreenBackground.png
log_message "=== Reverting From Backup OffScreenBackground.png.org ==="
- if [ "${DEL_BAKUPS}" = "1" ]
+ if [ $DEL_BAKUPS -eq 1 ]
then
rm -f /jci/gui/apps/system/controls/OffScreen/images/OffScreenBackground.png.org
log_message "=== Deleted backup: OffScreenBackground.png.org ==="
@@ -461,7 +482,7 @@ then
log_message "==========************ UNINSTALL USB AUDIO MOD ... ************=========="
cp -a /jci/gui/apps/usbaudio/js/usbaudioApp.js.org /jci/gui/apps/usbaudio/js/usbaudioApp.js
log_message "=== /jci/gui/apps/usbaudio/js/usbaudioApp.js Restored from backup ==="
- if [ "${DEL_BAKUPS}" = "1" ]
+ if [ $DEL_BAKUPS -eq 1 ]
then
rm -f /jci/gui/apps/usbaudio/js/usbaudioApp.js.org
log_message "=== Deleted backup: usbaudioApp.js.org ==="
@@ -471,7 +492,7 @@ if [ -e /jci/gui/common/controls/NowPlaying4/js/NowPlaying4Ctrl.js.org ]
then
cp -a /jci/gui/common/controls/NowPlaying4/js/NowPlaying4Ctrl.js.org /jci/gui/common/controls/NowPlaying4/js/NowPlaying4Ctrl.js
log_message "=== Restored NowPlaying4Ctrl.js from backup ==="
- if [ "${DEL_BAKUPS}" = "1" ]
+ if [ $DEL_BAKUPS -eq 1 ]
then
rm -f /jci/gui/common/controls/NowPlaying4/js/NowPlaying4Ctrl.js.org
log_message "=== Deleted backup: NowPlaying4Ctrl.js.org ==="
@@ -573,7 +594,7 @@ if [ -e /jci/scripts/jci-fw.sh.org ]
then
log_message "=== Restoring /jci/scripts/jci-fw.sh ==="
cp -a /jci/scripts/jci-fw.sh.org /jci/scripts/jci-fw.sh
- if [ "${DEL_BAKUPS}" = "1" ]
+ if [ $DEL_BAKUPS -eq 1 ]
then
rm -f /jci/scripts/jci-fw.sh.org
log_message "=== Deleted backup: jci-fw.sh.org ==="
@@ -640,6 +661,101 @@ cp -a "${MYDIR}/config_org/background.png" /jci/gui/common/images
log_message "============******** RESTORED ORIGINAL BACKGROUND ***********============"
log_message " "
sleep 2
+# uninstall CASDK
+if [ -e /jci/casdk/casdk.aio ]
+then
+ show_message "===****** UNINSTALLING CASDK ******==="
+ log_message "==========************ BEGIN UNINSTALLING CASDK ************==========="
+ log_message " "
+
+ # mount resources
+ mount -o rw,remount /tmp/mnt/resources
+
+ # kill all watch processes
+ log_message "- Removing watch processes"
+ pkill -f watch
+ pkill -f 'watch -n 1'
+ pkill -f 'watch -n 60'
+ pkill -f 'watch -n 300'
+ pkill -f 'mzd-casdk.start'
+
+ # reset storage
+ if [ -e /tmp/mnt/data_persist/storage ]
+ then
+ log_message "- Removing storage folder"
+ rm -rf /tmp/mnt/data_persist/storage
+ fi
+ if [ -e /jci/opera/opera_home/pstorage/psindex.dat ]
+ then
+ if [ -f /jci/opera/opera_home/pstorage/psindex.dat.org ]
+ then
+ log_message "- Removing local storage settings"
+ cp -a /jci/opera/opera_home/pstorage/psindex.dat.org /jci/opera/opera_home/pstorage/psindex.dat
+ rm /jci/opera/opera_home/pstorage/psindex.dat.org
+ else
+ log_message "- Removing local storage settings and pstorage"
+ rm -rf /jci/opera/opera_home/pstorage
+ fi
+ fi
+
+ # remove data reader files
+ if [ -e /jci/casdk ]
+ then
+ log_message "- Removing data script folder /jci/casdk"
+ rm /jci/casdk/*
+ rmdir --ignore-fail-on-non-empty /jci/casdk
+ else
+ log_message "- CASDK Data script folder '/jci/casdk' not found"
+ fi
+
+ # remove initialization file
+ if grep -q "# CASDK" /jci/scripts/stage_wifi.sh
+ then
+ log_message "- Removing staging scripts"
+ # echo '#!/bin/sh' > /jci/scripts/stage_wifi.sh
+ sed -i '/# CASDK/d' /jci/scripts/stage_wifi.sh
+ sed -i '/casdk/d' /jci/scripts/stage_wifi.sh
+ sed -i '/################/d' /jci/scripts/stage_wifi.sh
+ sed -i '/# one time/d' /jci/scripts/stage_wifi.sh
+ sed -i '/# 1s update/d' /jci/scripts/stage_wifi.sh
+ sed -i '/# 60s update/d' /jci/scripts/stage_wifi.sh
+ sed -i '/# 300s update/d' /jci/scripts/stage_wifi.sh
+ sed -i '/mzd-casdk.start/d' /jci/scripts/stage_wifi.sh
+ else
+ log_message "- No staging scripts fouund in /jci/scripts/stage_wifi.sh"
+ fi
+
+ # remove proxy
+ if [ -f /jci/opera/opera_dir/userjs/CustomApplicationsProxy.js ]
+ then
+ log_message "- Removing proxys & startups"
+ rm -f /jci/opera/opera_dir/userjs/CustomApplicationsProxy.js
+ rm -f /jci/opera/opera_dir/userjs/nativeApps.js
+ fi
+
+ if [ -f /jci/opera/opera_dir/userjs/additionalApps.js.org ]
+ then
+ log_message "- Restoring additionalApps.js"
+ mv /jci/opera/opera_dir/userjs/additionalApps.js.org /jci/opera/opera_dir/userjs/additionalApps.js
+ fi
+
+ # delete custom
+ if [ -e /jci/gui/apps/custom ]
+ then
+ log_message "- Removing custom application folder"
+ rm -rf /jci/gui/apps/custom||true
+ else
+ log_message "- Custom application folder does not exist"
+ fi
+
+ if [ -e /tmp/mnt/resources/aio ]
+ then
+ log_message "- Removing custom runtime & apps"
+ rm -rf /resources/aio/mzd-casdk||true
+ else
+ log_message "- CASDK runtime & apps do not exist"
+ fi
+fi
log_message "************************* SYSTEM FULLY RESTORED *************************"
show_message "========== SYSTEM FULLY RESTORED =========="
diff --git a/app/files/tweaks/00__casdk-i.txt b/app/files/tweaks/00__casdk-i.txt
index cca8fa2..bbf22ff 100644
--- a/app/files/tweaks/00__casdk-i.txt
+++ b/app/files/tweaks/00__casdk-i.txt
@@ -6,16 +6,16 @@ show_message "===*** INSTALLING CASDK ***==="
log_message " "
log_message "==========************* BEGIN INSTALLING CASDK ***************==========="
-mount -o rw,remount /tmp/mnt/resources
-
pkill -f 'watch -n 1'
pkill -f 'watch -n 60'
pkill -f 'watch -n 300'
pkill -f 'mzd-casdk.start'
+pkill -f websocketd
+log_message "=== CASDK VER ${_CASDK_VER} ==="
# enable javascript logging
JSLOGGING=$(grep -c "casdk-error.log" /jci/opera/opera_home/opera.ini)
-if [ "$JSLOGGING" -eq "0" ]
+if [ $JSLOGGING -eq 0 ]
then
sed -i 's/Console Error Log Enabled=0/Console Error Log Enabled=1/g' /jci/opera/opera_home/opera.ini
sed -i 's/Console Error Log=$OPERA_HOME\/error.log/Console Error Log=\/tmp\/root\/casdk-error.log/g' /jci/opera/opera_home/opera.ini
@@ -52,7 +52,7 @@ else
fi
# install data reader files
-if [ ! -e /jci/casdk ]
+if [ ! -e /jci/casdk ] || [[ "${_CASDK_VER}" < "${CASDK_VER}" ]]
then
mkdir -p /jci/casdk
cp -a ${MYDIR}/casdk/scripts/* /jci/casdk
@@ -85,16 +85,19 @@ fi
chmod 755 /jci/scripts/stage_wifi.sh
-# copy CustomApplicationsProxy
+# copy CustomApplicationsProxy and aio.js
cp -a ${MYDIR}/casdk/proxy/CustomApplicationsProxy.js /jci/opera/opera_dir/userjs/
+cp -a ${MYDIR}/casdk/proxy/aio.js /jci/opera/opera_dir/userjs/
+chmod 755 /jci/opera/opera_dir/userjs/aio.js
chmod 755 /jci/opera/opera_dir/userjs/CustomApplicationsProxy.js
+chown 1018:3015 /jci/opera/opera_dir/userjs/aio.js
chown 1018:3015 /jci/opera/opera_dir/userjs/CustomApplicationsProxy.js
log_message "=== Copied CustomApplicationsProxy.js ==="
if [ -e /jci/opera/opera_dir/userjs/additionalApps.js ]
then
mv /jci/opera/opera_dir/userjs/additionalApps.js /jci/opera/opera_dir/userjs/additionalApps.js.org
- log_message "=== Disable AdditionalApps.js ==="
+ log_message "=== Disable AdditionalApps.js ==="
fi
if [ -e /jci/opera/opera_dir/userjs/additionalApps.json ]
@@ -108,10 +111,13 @@ else
fi
# install CASDK runtime
-if [ ! -e /tmp/mnt/resources/aio/mzd-casdk/runtime ]
+if [ ! -e /tmp/mnt/resources/aio/mzd-casdk/runtime ] || [[ "${_CASDK_VER}" < "${CASDK_VER}" ]]
then
cp -a ${MYDIR}/casdk/resources /tmp/mnt
chmod -R 755 /tmp/mnt/resources/aio
+ chmod -R 755 /tmp/mnt/resources/dev/bin
+ echo "_AIO_VER=${AIO_VER}" > /jci/casdk/casdk.aio
+ echo "_CASDK_VER=${CASDK_VER}" >> /jci/casdk/casdk.aio
log_message "=== Installed CASDK Runtime ==="
else
log_message "=== CASDK Runtime Already Installed ==="
diff --git a/app/files/tweaks/00__casdk-u.txt b/app/files/tweaks/00__casdk-u.txt
index 89a4785..9c05d6f 100644
--- a/app/files/tweaks/00__casdk-u.txt
+++ b/app/files/tweaks/00__casdk-u.txt
@@ -6,9 +6,6 @@ show_message "===****** UNINSTALLING CASDK ******==="
log_message "==========************ BEGIN UNINSTALLING CASDK ************==========="
log_message " "
-# mount resources
-mount -o rw,remount /tmp/mnt/resources
-
# kill all watch processes
log_message "- Removing watch processes"
pkill -f watch
@@ -16,6 +13,7 @@ pkill -f 'watch -n 1'
pkill -f 'watch -n 60'
pkill -f 'watch -n 300'
pkill -f 'mzd-casdk.start'
+pkill -f websocketd
# reset storage
if [ -e /tmp/mnt/data_persist/storage ]
@@ -69,12 +67,16 @@ then
log_message "- Removing proxys & startups"
rm -f /jci/opera/opera_dir/userjs/CustomApplicationsProxy.js
rm -f /jci/opera/opera_dir/userjs/nativeApps.js
+ rm -f /jci/opera/opera_dir/userjs/aio.js
fi
+sed -i '/Terminal/d' /jci/scripts/stage_wifi.sh
+sed -i '/terminal/d' /jci/scripts/stage_wifi.sh
if [ -f /jci/opera/opera_dir/userjs/additionalApps.js.org ]
then
log_message "- Restoring additionalApps.js"
mv /jci/opera/opera_dir/userjs/additionalApps.js.org /jci/opera/opera_dir/userjs/additionalApps.js
+ rm -f /jci/opera/opera_dir/userjs/nativeApps.js
fi
# delete custom
@@ -96,6 +98,6 @@ fi
log_message "- Done!"
sleep 5
killall jci-dialog
-/jci/tools/jci-dialog --title="CASDK UNINSTALLED" --text="THE CUSTOM APPLICATION RUNTIME WAS SUCCESSFULLY UNINSTALLED.\n\nTHE SYSTEM WILL REBOOT IN A FEW SECONDS." --no-cancel &
+/jci/tools/jci-dialog --title="CASDK UNINSTALLED" --text="THE CUSTOM APPLICATION RUNTIME\nWAS SUCCESSFULLY UNINSTALLED.\n\nTHE SYSTEM WILL REBOOT IN A FEW SECONDS." --no-cancel &
sleep 10
reboot
diff --git a/app/files/tweaks/00__casdkapps-i.txt b/app/files/tweaks/00__casdkapps-i.txt
index c524a6a..c165dc1 100644
--- a/app/files/tweaks/00__casdkapps-i.txt
+++ b/app/files/tweaks/00__casdkapps-i.txt
@@ -63,12 +63,13 @@ else
echo "var CustomApplications = [" > ${MZD_APPS_JS}
fi
-#if [ ${APPTERMINAL} -eq 1 ] && ! grep -Fq "app.terminal" ${MZD_APPS_JS}
-#then
-# echo ' "app.terminal",' >> ${MZD_APPS_JS}
-# cp -a ${MYDIR}/casdk/apps/app.terminal ${MZD_APP_DIR}
-# log_message "=== Installed CASDK App: Terminal ==="
-#fi
+# Set up terminal app to directly execute shell commands
+if [ ${APPTERMINAL} -eq 1 ] && ! grep -Fq "terminal" /jci/scripts/stage_wifi.sh
+then
+ echo '### Terminal' >> /jci/scripts/stage_wifi.sh
+ echo 'sh /jci/gui/apps/custom/apps/app.terminal/terminal.sh &' >> /jci/scripts/stage_wifi.sh
+ log_message "=== Added Terminal Startup ==="
+fi
add_casdk_app "${APPTERMINAL}" "terminal"
add_casdk_app "${APPSIMPLEDASHBOARD}" "simpledashboard"
@@ -82,10 +83,11 @@ add_casdk_app "${APPDEVTOOLS}" "devtools"
#add_casdk_app "${APPSNAKE}" "snake"
echo '];' >> ${MZD_APPS_JS}
+chmod -R 755 ${MZD_APP_DIR}
sleep 5
log_message "=========************* CASDK INSTALLATION FINISHED *************========="
killall jci-dialog
-/jci/tools/jci-dialog --title="MZD-AIO-TI+CASDK INSTALLED" --text="The Custom Application Runtime was successfully installed.\n\nThe System will reboot in a few seconds." --no-cancel &
+/jci/tools/jci-dialog --title="MZD-AIO-TI+CASDK INSTALLED" --text="THE CUSTOM APPLICATION RUNTIME\nWAS SUCCESSFULLY INSTALLED\n\nTHE SYSTEM WILL REBOOT IN A FEW SECONDS." --no-cancel &
sleep 10
reboot
diff --git a/app/files/tweaks/00__node-i.txt b/app/files/tweaks/00__node-i.txt
new file mode 100644
index 0000000..bdc96c8
--- /dev/null
+++ b/app/files/tweaks/00__node-i.txt
@@ -0,0 +1,6 @@
+mkdir -p /tmp/mnt/resources/dev/bin/
+
+# nodeJS for cleaner app installations!
+[ ! -e /tmp/mnt/resources/dev/bin/node ] && cp -a ${MYDIR}/config/bin/node /tmp/mnt/resources/dev/bin/ && echo "...NodeJS Installed..." >> ${MYDIR}/node.log 2>&1
+[ ! -e /tmp/mnt/resources/dev/bin/add_app_json.js ] && cp -a ${MYDIR}/config/bin/add_app_json.js /tmp/mnt/resources/dev/bin/ && echo "...add_app_json.js Installed..." >> ${MYDIR}/node.log 2>&1
+[ ! -e /tmp/mnt/resources/dev/bin/remove_app_json.js ] && cp -a ${MYDIR}/config/bin/remove_app_json.js /tmp/mnt/resources/dev/bin/ && echo "...remove_app_json.js Installed..." >> ${MYDIR}/node.log 2>&1
diff --git a/app/files/tweaks/00_background.txt b/app/files/tweaks/00_background.txt
index 455aeac..779bc22 100644
--- a/app/files/tweaks/00_background.txt
+++ b/app/files/tweaks/00_background.txt
@@ -2,7 +2,7 @@
show_message "CHANGING BACKGROUND IMAGE ..."
log_message "=======********* INSTALL CHANGE BACKGROUND IMAGE ... *********========"
-if [ "${KEEPBKUPS}" = 1 ]
+if [ $KEEPBKUPS -eq 1 ]
then
cp -a /jci/gui/common/images/background.png "${MYDIR}/bakups/background.png"
aio_info \"background.png\",
diff --git a/app/files/tweaks/00_backup.txt b/app/files/tweaks/00_backup.txt
index 84c7c8f..506bc2b 100644
--- a/app/files/tweaks/00_backup.txt
+++ b/app/files/tweaks/00_backup.txt
@@ -1,7 +1,7 @@
# make full backup to SD card
log_message "========*************** START FULL JCI BACKUP ****************======="
-if [ "${ZIPBACKUP}" = "1" ]
+if [ $ZIPBACKUP -eq 1 ]
then
BACKUPZIP=${MYDIR}/JCI-${CMU_SW_VER}.zip
show_message "ZIPPING /JCI TO \n${BACKUPZIP}. \nPlease wait... this will take a several minutes ..."
diff --git a/app/files/tweaks/00_bgrotator-i.txt b/app/files/tweaks/00_bgrotator-i.txt
index 37ec231..1345e6d 100644
--- a/app/files/tweaks/00_bgrotator-i.txt
+++ b/app/files/tweaks/00_bgrotator-i.txt
@@ -7,7 +7,7 @@ if [ ! -e /jci/gui/common/css/common.css.org ]
cp -a /jci/gui/common/css/common.css /jci/gui/common/css/common.css.org
log_message "=== Backup of /jci/gui/common/css/common.css to common.css.org ==="
fi
-if [ "${KEEPBKUPS}" = 1 ]
+if [ $KEEPBKUPS -eq 1 ]
then
aio_info \"common.css.org\",
cp /jci/gui/common/css/common.css.org "${MYDIR}/bakups/"
diff --git a/app/files/tweaks/00_bgrotator-u.txt b/app/files/tweaks/00_bgrotator-u.txt
index 1574327..9e66e41 100644
--- a/app/files/tweaks/00_bgrotator-u.txt
+++ b/app/files/tweaks/00_bgrotator-u.txt
@@ -12,7 +12,7 @@ then
log_message "=== Leftover code found Restoring common.css ==="
if [ -e /jci/gui/common/css/common.css.org ]
then
- if [ "${KEEPBKUPS}" = 1 ]
+ if [ $KEEPBKUPS -eq 1 ]
then
cp /jci/gui/common/css/common.css.org "${MYDIR}/bakups/"
aio_info \"common.css.org\",
diff --git a/app/files/tweaks/00_end.txt b/app/files/tweaks/00_end.txt
index 0aa6c7c..7bc3a0a 100644
--- a/app/files/tweaks/00_end.txt
+++ b/app/files/tweaks/00_end.txt
@@ -2,7 +2,7 @@ log_message " "
sleep 2
log_message "======================= END OF TWEAKS INSTALLATION ======================"
show_message "========== END OF TWEAKS INSTALLATION =========="
-if [ "${KEEPBKUPS}" = "1" ]
+if [ $KEEPBKUPS -eq 1 ]
then
json="$(cat ${MYDIR}/AIO_info.json)"
rownend=$(echo -n $json | tail -c 1)
diff --git a/app/files/tweaks/00_intro.txt b/app/files/tweaks/00_intro.txt
index 7380c35..e495480 100644
--- a/app/files/tweaks/00_intro.txt
+++ b/app/files/tweaks/00_intro.txt
@@ -1,5 +1,5 @@
#!/bin/sh
-# tweaks.sh - MZD-AIO-TI Version 2.7.6
+# tweaks.sh - MZD-AIO-TI Version 2.7.8
# Special thanks to Siutsch for collecting all the tweaks and for the original AIO
# Big Thanks to Modfreakz, khantaena, Xep, ID7, Doog, Diginix, oz_paulb & lmagder
# For more information visit https://mazdatweaks.com
@@ -9,5 +9,16 @@
hwclock --hctosys
# AIO Variables
-AIO_VER=2.7.6
-AIO_DATE=2018.01.15
+AIO_VER=2.7.8
+AIO_DATE=2018.02.28
+
+# Android Auto Version
+AA_VER=1.08
+# Video Player Version
+VP_VER=3.3
+# Speedometer Version
+SPD_VER=5.5
+# AIO Tweaks App Version
+AIO_TWKS_VER=0.6
+# CASDK Version
+CASDK_VER=0.0.4
diff --git a/app/files/tweaks/00_sshbringback.txt b/app/files/tweaks/00_sshbringback.txt
index cc7df61..75b8fce 100644
--- a/app/files/tweaks/00_sshbringback.txt
+++ b/app/files/tweaks/00_sshbringback.txt
@@ -5,31 +5,31 @@
# Added force SSH option to force update SSH settings
SSH_COPY=0
log_message "=======************* START INSTALL SSH BRINGBACK ************========"
-if [ ${CMU_SW_VER} = "56.00.511A-EU" ] \
-|| [ ${CMU_SW_VER} = "56.00.512A-EU" ] \
-|| [ ${CMU_SW_VER} = "56.00.513B-EU" ] \
-|| [ ${CMU_SW_VER} = "56.00.511A-ADR" ] \
-|| [ ${CMU_SW_VER} = "56.00.512A-ADR" ] \
-|| [ ${CMU_SW_VER} = "56.00.513C-ADR" ] \
-|| [ ${CMU_SW_VER} = "56.00.514A-ADR" ] \
-|| [ ${CMU_SW_VER} = "56.00.521A-EU" ] \
-|| [ ${CMU_SW_VER} = "56.00.513C-EU" ] \
-|| [ ${COMPAT_GROUP} -ne "1" ] \
-|| [ ${FORCESSH} -eq "1" ]
+if [ "${CMU_SW_VER}" == "56.00.511A-EU" ] \
+|| [ "${CMU_SW_VER}" == "56.00.512A-EU" ] \
+|| [ "${CMU_SW_VER}" == "56.00.513B-EU" ] \
+|| [ "${CMU_SW_VER}" == "56.00.511A-ADR" ] \
+|| [ "${CMU_SW_VER}" == "56.00.512A-ADR" ] \
+|| [ "${CMU_SW_VER}" == "56.00.513C-ADR" ] \
+|| [ "${CMU_SW_VER}" == "56.00.514A-ADR" ] \
+|| [ "${CMU_SW_VER}" == "56.00.521A-EU" ] \
+|| [ "${CMU_SW_VER}" == "56.00.513C-EU" ] \
+|| [ $COMPAT_GROUP -ne 1 ] \
+|| [ $FORCESSH -eq 1 ]
then
SSH_COPY=1
fi
-if [ ${SSH_COPY} -eq "1" ]
+if [ $SSH_COPY -eq 1 ]
then
show_message "${CMU_SW_VER} DETECTED: SSH_BRINGBACK WILL BE INSTALLED ..."
cp /jci/scripts/jci-fw.sh ${MYDIR}/config/jci-fw.sh.test
- if grep -Fq 'Disable ICMP services CI-2952' ${MYDIR}/config/jci-fw.sh.test || [ ${FORCESSH} -eq "1" ]
+ if grep -Fq 'Disable ICMP services CI-2952' ${MYDIR}/config/jci-fw.sh.test || [ $FORCESSH -eq 1 ]
then
cp -a ${MYDIR}/config/ssh_bringback/jci-fw.sh /jci/scripts
chmod 755 /jci/scripts/jci-fw.sh
log_message "=== Fixed firewall settings in jci-fw.sh ==="
fi
- if ! grep -q '^jci:' /config-mfg/passwd || [ ${FORCESSH} -eq "1" ]
+ if ! grep -q '^jci:' /config-mfg/passwd || [ $FORCESSH -eq 1 ]
then
cp -a ${MYDIR}/config/ssh_bringback/passwd /tmp
cp -a ${MYDIR}/config/ssh_bringback/authorized_keys /tmp
diff --git a/app/files/tweaks/00_start.txt b/app/files/tweaks/00_start.txt
index ce9ae09..d74d892 100644
--- a/app/files/tweaks/00_start.txt
+++ b/app/files/tweaks/00_start.txt
@@ -27,7 +27,7 @@ log_message()
}
aio_info()
{
- if [ ${KEEPBKUPS} -eq 1 ]
+ if [ $KEEPBKUPS -eq 1 ]
then
echo "$*" 1>&2
echo "$*" >> "${MYDIR}/AIO_info.json"
@@ -39,19 +39,23 @@ MZD_APP_SD=/tmp/mnt/sd_nav
MZD_APP_DIR=/tmp/mnt/resources/aio/mzd-casdk/apps
get_casdk_mode()
{
- if [ -e /jci/casdk/casdk.aio ]; then
- echo 1
+ if [ -e /jci/casdk/casdk.aio ]
+ then
+ source /jci/casdk/casdk.aio
+ CASDK_MODE=1
else
- echo 0
+ _CASDK_VER=0
+ CASDK_MODE=0
fi
}
add_casdk_app()
{
CASDK_APP=${2}
- if [ ${1} -eq 1 ] && ! grep -Fq "app.${CASDK_APP}" ${MZD_APPS_JS}
+ if [ ${1} -eq 1 ]
then
- echo " \"app.${CASDK_APP}\"," >> ${MZD_APPS_JS}
+ sed -i /${CASDK_APP}/d ${MZD_APPS_JS}
cp -a ${MYDIR}/casdk/apps/app.${CASDK_APP} ${MZD_APP_DIR}
+ echo " \"app.${CASDK_APP}\"," >> ${MZD_APPS_JS}
CASDK_APP="${CASDK_APP} "
log_message "=== Installed CASDK App: ${CASDK_APP:0:10} ==="
fi
@@ -87,7 +91,7 @@ compatibility_check()
echo 4 && return
elif [ $_VER_EXT -lt 599 ]
then
- echo 5 && return # 59.00.502 is another level because it is not compatible with USB Audio Mod
+ echo 5 && return # 59.00.502+ is another level because it is not compatible with USB Audio Mod
else
echo 0 && return
fi
@@ -132,110 +136,138 @@ show_message_OK()
exit 0
fi
}
-add_app_json()
+# Shotrhand for location of additionalApps.json
+ADDITIONAL_APPS_JSON="/jci/opera/opera_dir/userjs/additionalApps.json"
# script by vic_bam85
+add_app_json()
{
- # check if entry in additionalApps.json still exists, if so nothing is to do
- count=$(grep -c '{ "name": "'"${1}"'"' /jci/opera/opera_dir/userjs/additionalApps.json)
- if [ "$count" = "0" ]
+ if which node > /dev/null && which add_app_json.js > /dev/null
+ then
+ add_app_json.js ${ADDITIONAL_APPS_JSON} "${1}" "${2}" "${3}" >> ${MYDIR}/node.log 2>&1
+ log_message "=== node add_app_json.js ${2:0:10} ==="
+ elif [ -e ${MYDIR}/config/bin/node ] && [ -e ${MYDIR}/config/bin/add_app_json.js ]
then
- log_message "=== ${2:0:10} not found in additionalApps.json, first installation ==="
- mv /jci/opera/opera_dir/userjs/additionalApps.json /jci/opera/opera_dir/userjs/additionalApps.json.old
- sleep 2
- # delete last line with "]" from additionalApps.json
- grep -v "]" /jci/opera/opera_dir/userjs/additionalApps.json.old > /jci/opera/opera_dir/userjs/additionalApps.json
- sleep 2
- cp /jci/opera/opera_dir/userjs/additionalApps.json "${MYDIR}/bakups/test/additionalApps${1}-2._delete_last_line.json"
- # check, if other entrys exists
- count=$(grep -c '}' /jci/opera/opera_dir/userjs/additionalApps.json)
- if [ "$count" != "0" ]
+ ${MYDIR}/config/bin/node ${MYDIR}/config/bin/add_app_json.js ${ADDITIONAL_APPS_JSON} "${1}" "${2}" "${3}" >> ${MYDIR}/node.log 2>&1
+ log_message "=== Using NodeJS To Add App!!! ==="
+ log_message "=== ${MYDIR}/config/bin/node add_app_json.js ${2:0:10} ==="
+ else
+ # check if entry in additionalApps.json still exists, if so nothing is to do
+ count=$(grep -c '{ "name": "'"${1}"'"' /jci/opera/opera_dir/userjs/additionalApps.json)
+ if [ $count -eq 0 ]
then
- # if so, add "," to the end of last line to additionalApps.json
- echo "$(cat /jci/opera/opera_dir/userjs/additionalApps.json)", > /jci/opera/opera_dir/userjs/additionalApps.json
+ log_message "=== ${2:0:10} not found in additionalApps.json, first installation ==="
+ mv /jci/opera/opera_dir/userjs/additionalApps.json /jci/opera/opera_dir/userjs/additionalApps.json.old
sleep 2
- cp /jci/opera/opera_dir/userjs/additionalApps.json "${MYDIR}/bakups/test/additionalApps${1}-3._add_comma_to_last_line.json"
- log_message "=== Found existing entrys in additionalApps.json ==="
- fi
- # add app entry and "]" again to last line of additionalApps.json
- log_message "=== Add ${2:0:10} to last line of additionalApps.json ==="
- echo ' { "name": "'"${1}"'", "label": "'"${2}"'" }' >> /jci/opera/opera_dir/userjs/additionalApps.json
- sleep 2
- if [ ${3} != "" ]
- then
- sed -i 's/"label": "'"${2}"'" \}/"label": "'"${2}"'", "preload": "'"${3}"'" \}/g' /jci/opera/opera_dir/userjs/additionalApps.json
+ # delete last line with "]" from additionalApps.json
+ grep -v "]" /jci/opera/opera_dir/userjs/additionalApps.json.old > /jci/opera/opera_dir/userjs/additionalApps.json
+ sleep 2
+ cp /jci/opera/opera_dir/userjs/additionalApps.json "${MYDIR}/bakups/test/additionalApps${1}-2._delete_last_line.json"
+ # check, if other entrys exists
+ count=$(grep -c '}' /jci/opera/opera_dir/userjs/additionalApps.json)
+ if [ $count -ne 0 ]
+ then
+ # if so, add "," to the end of last line to additionalApps.json
+ echo "$(cat /jci/opera/opera_dir/userjs/additionalApps.json)", > /jci/opera/opera_dir/userjs/additionalApps.json
+ sleep 2
+ cp /jci/opera/opera_dir/userjs/additionalApps.json "${MYDIR}/bakups/test/additionalApps${1}-3._add_comma_to_last_line.json"
+ log_message "=== Found existing entrys in additionalApps.json ==="
+ fi
+ # add app entry and "]" again to last line of additionalApps.json
+ log_message "=== Add ${2:0:10} to last line of additionalApps.json ==="
+ echo ' { "name": "'"${1}"'", "label": "'"${2}"'" }' >> /jci/opera/opera_dir/userjs/additionalApps.json
+ sleep 2
+ if [ ${3} != "" ]
+ then
+ sed -i 's/"label": "'"${2}"'" \}/"label": "'"${2}"'", "preload": "'"${3}"'" \}/g' /jci/opera/opera_dir/userjs/additionalApps.json
+ fi
+ cp /jci/opera/opera_dir/userjs/additionalApps.json "${MYDIR}/bakups/test/additionalApps${1}-4._add_entry_to_last_line.json"
+ echo "]" >> /jci/opera/opera_dir/userjs/additionalApps.json
+ sleep 2
+ cp /jci/opera/opera_dir/userjs/additionalApps.json "${MYDIR}/bakups/test/additionalApps${1}-5._after.json"
+ rm -f /jci/opera/opera_dir/userjs/additionalApps.json.old
+ else
+ log_message "=== ${2:0:10} already exists in additionalApps.json ==="
fi
- cp /jci/opera/opera_dir/userjs/additionalApps.json "${MYDIR}/bakups/test/additionalApps${1}-4._add_entry_to_last_line.json"
- echo "]" >> /jci/opera/opera_dir/userjs/additionalApps.json
- sleep 2
- cp /jci/opera/opera_dir/userjs/additionalApps.json "${MYDIR}/bakups/test/additionalApps${1}-5._after.json"
- rm -f /jci/opera/opera_dir/userjs/additionalApps.json.old
- else
- log_message "=== ${2:0:10} already exists in additionalApps.json ==="
+ # remove double commas
+ sed -i 's/,,/,/g' ${ADDITIONAL_APPS_JSON}
fi
if [ -e /jci/opera/opera_dir/userjs/nativeApps.js ]
then
- echo "additionalApps = $(cat /jci/opera/opera_dir/userjs/additionalApps.json)" > /jci/opera/opera_dir/userjs/nativeApps.js
+ echo "additionalApps = $(cat ${ADDITIONAL_APPS_JSON})" > /jci/opera/opera_dir/userjs/nativeApps.js
log_message "=== Updated nativeApps.js ==="
fi
}
remove_app_json()
# script by vic_bam85
{
- unix2dos /jci/opera/opera_dir/userjs/additionalApps.json
- # check if app entry in additionalApps.json still exists, if so, then it will be deleted
- count=$(grep -c '{ "name": "'"${1}"'"' /jci/opera/opera_dir/userjs/additionalApps.json)
- if [ "$count" -gt "0" ]
+ if which node > /dev/null && which remove_app_json.js > /dev/null
+ then
+ remove_app_json.js ${ADDITIONAL_APPS_JSON} "${1}" >> ${MYDIR}/node.log 2>&1
+ log_message "=== node remove_app_json.js ${1:1:10} ==="
+ elif [ -e ${MYDIR}/config/bin/node ] && [ -e ${MYDIR}/config/bin/remove_app_json.js ]
then
- log_message "==== Remove ${count} entry(s) of ${1:0:10} found in additionalApps.json ==="
- mv /jci/opera/opera_dir/userjs/additionalApps.json /jci/opera/opera_dir/userjs/additionalApps.json.old
- # delete last line with "]" from additionalApps.json
- grep -v "]" /jci/opera/opera_dir/userjs/additionalApps.json.old > /jci/opera/opera_dir/userjs/additionalApps.json
- sleep 2
- cp /jci/opera/opera_dir/userjs/additionalApps.json "${MYDIR}/bakups/test/additionalApps${1}-2._delete_last_line.json"
- # delete all app entrys from additionalApps.json
- sed -i "/${1}/d" /jci/opera/opera_dir/userjs/additionalApps.json
- sleep 2
- json="$(cat /jci/opera/opera_dir/userjs/additionalApps.json)"
- # check if last sign is comma
- rownend=$(echo -n $json | tail -c 1)
- if [ "$rownend" = "," ]
+ ${MYDIR}/config/bin/node ${MYDIR}/config/bin/remove_app_json.js ${ADDITIONAL_APPS_JSON} "${1}" >> ${MYDIR}/node.log 2>&1
+ log_message "=== Using NodeJS To Remove App!!! ==="
+ log_message "=== ${MYDIR}/config/bin/node remove_app_json.js ${1:1:10} ==="
+ else
+ unix2dos ${ADDITIONAL_APPS_JSON}
+ # check if app entry in additionalApps.json still exists, if so, then it will be deleted
+ count=$(grep -c '{ "name": "'"${1}"'"' /jci/opera/opera_dir/userjs/additionalApps.json)
+ if [ "$count" -gt "0" ]
then
- # if so, remove "," from back end
- echo ${json%,*} > /jci/opera/opera_dir/userjs/additionalApps.json
+ log_message "==== Remove ${count} entry(s) of ${1:0:10} found in additionalApps.json ==="
+ mv /jci/opera/opera_dir/userjs/additionalApps.json /jci/opera/opera_dir/userjs/additionalApps.json.old
+ # delete last line with "]" from additionalApps.json
+ grep -v "]" /jci/opera/opera_dir/userjs/additionalApps.json.old > /jci/opera/opera_dir/userjs/additionalApps.json
sleep 2
- log_message "=== Found comma at last line of additionalApps.json and deleted it ==="
- fi
- cp /jci/opera/opera_dir/userjs/additionalApps.json "${MYDIR}/bakups/test/additionalApps${1}-3._delete_app_entry.json"
- # add "]" again to last line of additionalApps.json
- echo "]" >> /jci/opera/opera_dir/userjs/additionalApps.json
- sleep 2
- first=$(head -c 1 /jci/opera/opera_dir/userjs/additionalApps.json)
- if [ $first != "[" ]
- then
- sed -i "1s/^/[\n/" /jci/opera/opera_dir/userjs/additionalApps.json
- log_message "=== Fixed first line of additionalApps.json ==="
+ cp /jci/opera/opera_dir/userjs/additionalApps.json "${MYDIR}/bakups/test/additionalApps${1}-2._delete_last_line.json"
+ # delete all app entrys from additionalApps.json
+ sed -i "/${1}/d" /jci/opera/opera_dir/userjs/additionalApps.json
+ sleep 2
+ json="$(cat /jci/opera/opera_dir/userjs/additionalApps.json)"
+ # check if last sign is comma
+ rownend=$(echo -n $json | tail -c 1)
+ if [ "$rownend" == "," ]
+ then
+ # if so, remove "," from back end
+ echo ${json%,*} > /jci/opera/opera_dir/userjs/additionalApps.json
+ sleep 2
+ log_message "=== Found comma at last line of additionalApps.json and deleted it ==="
+ fi
+ cp /jci/opera/opera_dir/userjs/additionalApps.json "${MYDIR}/bakups/test/additionalApps${1}-3._delete_app_entry.json"
+ # add "]" again to last line of additionalApps.json
+ echo "]" >> /jci/opera/opera_dir/userjs/additionalApps.json
+ sleep 2
+ first=$(head -c 1 /jci/opera/opera_dir/userjs/additionalApps.json)
+ if [ "$first" != "[" ]
+ then
+ sed -i "1s/^/[\n/" /jci/opera/opera_dir/userjs/additionalApps.json
+ log_message "=== Fixed first line of additionalApps.json ==="
+ fi
+ rm -f /jci/opera/opera_dir/userjs/additionalApps.json.old
+ cp /jci/opera/opera_dir/userjs/additionalApps.json "${MYDIR}/bakups/test/additionalApps${1}-4._after.json"
+ else
+ log_message "=== ${1:1:10} not found in additionalApps.json ==="
fi
- rm -f /jci/opera/opera_dir/userjs/additionalApps.json.old
- cp /jci/opera/opera_dir/userjs/additionalApps.json "${MYDIR}/bakups/test/additionalApps${1}-4._after.json"
- else
- log_message "=== ${1:0:10} not found in additionalApps.json ==="
+ dos2unix ${ADDITIONAL_APPS_JSON}
fi
- dos2unix /jci/opera/opera_dir/userjs/additionalApps.json
if [ -e /jci/opera/opera_dir/userjs/nativeApps.js ]
then
- echo "additionalApps = $(cat /jci/opera/opera_dir/userjs/additionalApps.json)" > /jci/opera/opera_dir/userjs/nativeApps.js
+ echo "additionalApps = $(cat ${ADDITIONAL_APPS_JSON})" > /jci/opera/opera_dir/userjs/nativeApps.js
log_message "=== Updated nativeApps.js ==="
fi
}
# disable watchdog and allow write access
echo 1 > /sys/class/gpio/Watchdog\ Disable/value
mount -o rw,remount /
+# mount resources
+mount -o rw,remount /tmp/mnt/resources/
MYDIR=$(dirname "$(readlink -f "$0")")
CMU_VER=$(get_cmu_ver)
CMU_SW_VER=$(get_cmu_sw_version)
COMPAT_GROUP=$(compatibility_check)
-CASDK_MODE=$(get_casdk_mode)
+get_casdk_mode
# save logs
mkdir -p "${MYDIR}/bakups/test/"
@@ -256,7 +288,7 @@ log_message "======================= CMU_SW_VER = ${CMU_SW_VER} ================
log_message "======================= COMPATIBILITY_GROUP = ${COMPAT_GROUP} ======================="
#log_message "======================== CMU_VER = ${CMU_VER} ====================="
if [ $CASDK_MODE -eq 1 ]; then
- log_message "============================= CASDK MODE ==============================="
+ log_message "============================ CASDK MODE ==============================="
WELCOME_MSG="====== MZD-AIO-TI ${AIO_VER} ======\n\n===**** CASDK MODE ****===="
else
log_message ""
@@ -297,7 +329,7 @@ fi
# Compatibility Check
if [ $COMPAT_GROUP -ne 0 ]
then
- if [ ${SKIPCONFIRM} -eq 1 ]
+ if [ $SKIPCONFIRM -eq 1 ]
then
show_message "MZD-AIO-TI v.${AIO_VER}\nDetected compatible version ${CMU_SW_VER}\nContinuing Installation..."
sleep 5
@@ -305,12 +337,6 @@ then
show_message_OK "MZD-AIO-TI v.${AIO_VER}\nDetected compatible version ${CMU_SW_VER}\n\n To continue installation choose YES\n To abort choose NO"
fi
log_message "======= Detected compatible version ${CMU_SW_VER} ======="
- if [ ${COMPAT_GROUP} -eq 1 ]
- then
- APP_PATCH_59=1
- else
- APP_PATCH_59=0
- fi
else
# Removing the comment (#) from the following line will allow MZD-AIO-TI to run with unknown fw versions ** ONLY MODIFY IF YOU KNOW WHAT YOU ARE DOING **
# show_message_OK "Detected previously unknown version ${CMU_SW_VER}!\n\n To continue anyway choose YES\n To abort choose NO"
@@ -352,9 +378,9 @@ fi
sed -i 's/User JavaScript=0/User JavaScript=1/g' /jci/opera/opera_home/opera.ini
count=$(grep -c "Allow File XMLHttpRequest=" /jci/opera/opera_home/opera.ini)
skip_opera=$(grep -c "Allow File XMLHttpRequest=1" /jci/opera/opera_home/opera.ini)
-if [ "$skip_opera" -eq "0" ]
+if [ $skip_opera -eq 0 ]
then
- if [ "$count" -eq "0" ]
+ if [ $count -eq 0 ]
then
sed -i '/User JavaScript=.*/a Allow File XMLHttpRequest=1' /jci/opera/opera_home/opera.ini
else
@@ -365,8 +391,6 @@ then
else
log_message "============== Userjs & File Xmlhttprequest Already Enabled ============="
fi
-
-# Remove fps.js if still exists
if [ -e /jci/opera/opera_dir/userjs/fps.js ]
then
mv /jci/opera/opera_dir/userjs/fps.js /jci/opera/opera_dir/userjs/fps.js.org
@@ -380,11 +404,9 @@ then
fi
log_message "=========************ END PRE-INSTALL OPERATIONS ***************========="
log_message " "
-log_message "==========************* BEGIN INSTALLING TWEAKS **************==========="
-log_message " "
# start JSON array of backups
-if [ "${KEEPBKUPS}" -eq 1 ]
+if [ $KEEPBKUPS -eq 1 ]
then
aio_info '"Backups": ['
fi
diff --git a/app/files/tweaks/00_wifi.txt b/app/files/tweaks/00_wifi.txt
index 247ba9e..b96c94a 100644
--- a/app/files/tweaks/00_wifi.txt
+++ b/app/files/tweaks/00_wifi.txt
@@ -6,7 +6,7 @@ if [ ! -e /jci/gui/apps/syssettings/js/syssettingsApp.js.org ]
then
cp /jci/gui/apps/syssettings/js/syssettingsApp.js /jci/gui/apps/syssettings/js/syssettingsApp.js.org
fi
-if [ "${KEEPBKUPS}" = 1 ]
+if [ $KEEPBKUPS -eq 1 ]
then
cp /jci/gui/apps/syssettings/js/syssettingsApp.js.org "${MYDIR}/bakups/"
aio_info \"syssettingsApp.js.org\",
@@ -21,13 +21,12 @@ then
# This is a Better way to enable Wifi for all
sed -i "/(framework.localize.REGIONS\['NorthAmerica'\]/c\ if(true)" /jci/gui/apps/syssettings/js/syssettingsApp.js
log_message "=== Wifi for NA enabled ==="
- show_message "=== Wifi for NA enabled ==="
+ show_message "=== Wifi enabled ==="
else
log_message "=== ERROR: Line For Wifi Fix Not Found ==="
fi
cp /jci/gui/apps/syssettings/js/syssettingsApp.js "${MYDIR}/bakups/test/syssettingsApp_WIFI-after.js"
else
- echo "exist"
log_message "=== Wifi already active ==="
fi
diff --git a/app/files/tweaks/01_touchscreen-i.txt b/app/files/tweaks/01_touchscreen-i.txt
index def8c84..ef11b24 100644
--- a/app/files/tweaks/01_touchscreen-i.txt
+++ b/app/files/tweaks/01_touchscreen-i.txt
@@ -3,7 +3,7 @@ show_message "ENABLE TOUCHSCREEN ..."
log_message "=======******** INSTALL REMOVE TOUCHSCREEN RESTRICTION ... *******======="
# Some want to keep the speed restriction to ensure working console compass
-if [ ${KEEP_SPEED_RESTRICT} = "0" ]
+if [ $KEEP_SPEED_RESTRICT -eq 0 ]
then
/jci/scripts/set_speed_restriction_config.sh disable
else
diff --git a/app/files/tweaks/02_disclaimer-i.txt b/app/files/tweaks/02_disclaimer-i.txt
index 77504e2..a2b9336 100644
--- a/app/files/tweaks/02_disclaimer-i.txt
+++ b/app/files/tweaks/02_disclaimer-i.txt
@@ -4,20 +4,20 @@ log_message "========*********** INSTALL NO-MORE-DISCLAIMER ... ***********==
TRACKORDER_DISCLAIMER=2
# Compatibility Check
-if [ "${COMPAT_GROUP}" = "1" ]
+if [ $COMPAT_GROUP -eq 1 ]
then
TRACKORDER_DISCLAIMER=0
-elif [ "${COMPAT_GROUP}" = "2" ]
+elif [ $COMPAT_GROUP -eq 2 ]
then
TRACKORDER_DISCLAIMER=1
TRACKORDER_DISCLAIMER_FILE=58.00.250A-NA
log_message "=== FW ${CMU_SW_VER} detected, copy matching systemApp.js ==="
-elif [ "${COMPAT_GROUP}" = "3" ] || [ "${COMPAT_GROUP}" = "4" ]
+elif [ $COMPAT_GROUP -eq 3 ] || [ $COMPAT_GROUP -eq 4 ]
then
TRACKORDER_DISCLAIMER=1
TRACKORDER_DISCLAIMER_FILE=59.00.330
log_message "=== FW ${CMU_SW_VER} detected, copy matching systemApp.js ==="
-elif [ "${COMPAT_GROUP}" = "5" ]
+elif [ $COMPAT_GROUP -eq 5 ]
then
TRACKORDER_DISCLAIMER=1
TRACKORDER_DISCLAIMER_FILE=59
@@ -29,12 +29,12 @@ then
cp -a /jci/gui/apps/system/js/systemApp.js /jci/gui/apps/system/js/systemApp.js.org
log_message "=== Backup of /jci/gui/apps/system/js/systemApp.js to systemApp.js ==="
fi
-if [ "${KEEPBKUPS}" = 1 ]
+if [ $KEEPBKUPS -eq 1 ]
then
cp -a /jci/gui/apps/system/js/systemApp.js.org "${MYDIR}/bakups/"
aio_info \"systemApp.js.org\",
fi
-if [ "${TESTBKUPS}" = 1 ]
+if [ $TESTBKUPS -eq 1 ]
then
cp -a /jci/gui/apps/system/js/systemApp.js "${MYDIR}/bakups/test/systemApp_before-disclaimer.js"
fi
@@ -45,14 +45,14 @@ fi
# 58.00.XXX ($COMPAT_GROUP=2)
# 55.XX.XXX - 56.XX.XXX ($COMPAT_GROUP=1)
# If your firmware version falls out of those ranges email the address below
-if [ ! "${TRACKORDER_DISCLAIMER}" = "2" ]
+if [ ! $TRACKORDER_DISCLAIMER -eq 2 ]
then
cp -a "${MYDIR}/config/audio_order_AND_no_More_Disclaimer/systemApp.js.disclaimer" /jci/gui/apps/system/js/
log_message "=== Added marker 'systemApp.js.disclaimer' ==="
if [ -e /jci/gui/apps/system/js/systemApp.js.audio ]
then
- if [ "${TRACKORDER_DISCLAIMER}" = "1" ]
+ if [ $TRACKORDER_DISCLAIMER -eq 1 ]
then
cp -a "${MYDIR}/config/audio_order_AND_no_More_Disclaimer/both/jci/gui/apps/system/js/systemApp.${TRACKORDER_DISCLAIMER_FILE}.js" /jci/gui/apps/system/js/systemApp.js
log_message "=== Removed Disclaimer for ${CMU_SW_VER}, audio order still changed ==="
@@ -61,7 +61,7 @@ then
log_message "=== Removed Disclaimer, audio order still changed ==="
fi
else
- if [ "${TRACKORDER_DISCLAIMER}" = "1" ]
+ if [ $TRACKORDER_DISCLAIMER -eq 1 ]
then
cp -a "${MYDIR}/config/audio_order_AND_no_More_Disclaimer/only_no_More_Disclaimer/jci/gui/apps/system/js/systemApp.${TRACKORDER_DISCLAIMER_FILE}.js" /jci/gui/apps/system/js/systemApp.js
log_message "=== Removed Disclaimer ${CMU_SW_VER} (audio order change not installed) ==="
@@ -78,7 +78,7 @@ else
log_message "********** Please Email ${MYDIR}/systemApp.js FW:${CMU_SW_VER} to aio@mazdatweaks.com **********"
cp -a /jci/gui/apps/system/js/systemApp.js "${MYDIR}/"
fi
-if [ "${TESTBKUPS}" = 1 ]
+if [ $TESTBKUPS = 1 ]
then
cp -a /jci/gui/apps/system/js/systemApp.js "${MYDIR}/bakups/test/systemApp_after-disclaimer.js"
fi
diff --git a/app/files/tweaks/02_disclaimer-u.txt b/app/files/tweaks/02_disclaimer-u.txt
index fc5a6dd..b0b10ad 100644
--- a/app/files/tweaks/02_disclaimer-u.txt
+++ b/app/files/tweaks/02_disclaimer-u.txt
@@ -4,20 +4,20 @@ log_message "=====************ UNINSTALL NO-MORE-DISCLAIMER ... ***********
TRACKORDER_DISCLAIMER=2
# Compatibility Check
-if [ "${COMPAT_GROUP}" = "1" ]
+if [ $COMPAT_GROUP -eq 1 ]
then
TRACKORDER_DISCLAIMER=0
-elif [ "${COMPAT_GROUP}" = "2" ]
+elif [ $COMPAT_GROUP -eq 2 ]
then
TRACKORDER_DISCLAIMER=1
TRACKORDER_DISCLAIMER_FILE=58.00.250A-NA
log_message "=== FW ${CMU_SW_VER} detected, copy matching systemApp.js ==="
-elif [ "${COMPAT_GROUP}" = "3" ] || [ "${COMPAT_GROUP}" = "4" ]
+elif [ $COMPAT_GROUP -eq 3 ] || [ $COMPAT_GROUP -eq 4 ]
then
TRACKORDER_DISCLAIMER=1
TRACKORDER_DISCLAIMER_FILE=59.00.330
log_message "=== FW ${CMU_SW_VER} detected, copy matching systemApp.js ==="
-elif [ "${COMPAT_GROUP}" = "5" ]
+elif [ $COMPAT_GROUP -eq 5 ]
then
TRACKORDER_DISCLAIMER=1
TRACKORDER_DISCLAIMER_FILE=59
@@ -29,11 +29,11 @@ fi
# 59.00.3XX ($COMPAT_GROUP=3)
# 58.00.XXX ($COMPAT_GROUP=2)
# 55.XX.XXX - 56.XX.XXX ($COMPAT_GROUP=1)
-if [ ! "${TRACKORDER_DISCLAIMER}" = "2" ]
+if [ ! $TRACKORDER_DISCLAIMER -eq 2 ]
then
if [ -e /jci/gui/apps/system/js/systemApp.js.audio ]
then
- if [ "${TRACKORDER_DISCLAIMER}" = "1" ]
+ if [ $TRACKORDER_DISCLAIMER -eq 1 ]
then
cp -a "${MYDIR}/config_org/audio_order_AND_no_More_Disclaimer/only_change_audio_order/jci/gui/apps/system/js/systemApp.${TRACKORDER_DISCLAIMER_FILE}.js" /jci/gui/apps/system/js/systemApp.js
log_message "=== Restored Disclaimer for ${CMU_SW_VER}, audio order still changed ==="
@@ -47,7 +47,7 @@ then
cp -a /jci/gui/apps/system/js/systemApp.js.org /jci/gui/apps/system/js/systemApp.js
log_message "=== Restored systemApp.js from backup ==="
else
- if [ "${TRACKORDER_DISCLAIMER}" = "1" ]
+ if [ $TRACKORDER_DISCLAIMER -eq 1 ]
then
log_message "=== No more systemApp.js.org available ==="
cp -a "${MYDIR}/config_org/audio_order_AND_no_More_Disclaimer/nothing/jci/gui/apps/system/js/systemApp.${TRACKORDER_DISCLAIMER_FILE}.js" /jci/gui/apps/system/js/systemApp.js
diff --git a/app/files/tweaks/02_disclaimer5-i.txt b/app/files/tweaks/02_disclaimer5-i.txt
index 2712a01..f80ee2f 100644
--- a/app/files/tweaks/02_disclaimer5-i.txt
+++ b/app/files/tweaks/02_disclaimer5-i.txt
@@ -9,9 +9,9 @@ then
cp -a /jci/gui/apps/system/js/systemApp.js /jci/gui/apps/system/js/systemApp.js.org
log_message "=== Backup of /jci/gui/apps/system/js/systemApp.js ==="
fi
-if [ "${KEEPBKUPS}" = 1 ]
+if [ $KEEPBKUPS -eq 1 ]
then
- cp -a /jci/gui/apps/system/js/systemApp.js.org `${MYDIR}/bakups/`
+ cp -a /jci/gui/apps/system/js/systemApp.js.org "${MYDIR}/bakups/"
aio_info \"systemApp.js.org\",
fi
diff --git a/app/files/tweaks/05_mainloop-i.txt b/app/files/tweaks/05_mainloop-i.txt
index 56ff54e..448a919 100644
--- a/app/files/tweaks/05_mainloop-i.txt
+++ b/app/files/tweaks/05_mainloop-i.txt
@@ -8,7 +8,7 @@ then
cp -a /jci/gui/apps/system/controls/MainMenu/js/MainMenuCtrl.js /jci/gui/apps/system/controls/MainMenu/js/MainMenuCtrl.js.org
log_message "=== Backup /jci/gui/apps/system/controls/MainMenu/js/MainMenuCtrl.js ==="
fi
-if [ "${KEEPBKUPS}" = 1 ]
+if [ $KEEPBKUPS -eq 1 ]
then
cp -a /jci/gui/apps/system/controls/MainMenu/js/MainMenuCtrl.js.org "${MYDIR}/bakups/"
aio_info \"MainMenuCtrl.js.org\",
diff --git a/app/files/tweaks/06_listloop-i.txt b/app/files/tweaks/06_listloop-i.txt
index e9659d2..2f94ab9 100644
--- a/app/files/tweaks/06_listloop-i.txt
+++ b/app/files/tweaks/06_listloop-i.txt
@@ -5,15 +5,15 @@ log_message "=========************** INSTALL LIST_LOOP_MOD ... *************====
TRACKORDER_LIST=0
# Compatibility Check
log_message "=== FW ${CMU_SW_VER} detected, copy matching List2Ctrl.js ==="
-if [ "${COMPAT_GROUP}" = "4" ] || [ "${COMPAT_GROUP}" = "5" ]
+if [ $COMPAT_GROUP -eq 4 ] || [ $COMPAT_GROUP -eq 5 ]
then
TRACKORDER_LIST=1
TRACKORDER_LIST_FILE="59"
-elif [ "${COMPAT_GROUP}" = "3" ]
+elif [ $COMPAT_GROUP -eq 3 ]
then
TRACKORDER_LIST=1
TRACKORDER_LIST_FILE="59.330"
-elif [ "${COMPAT_GROUP}" = "2" ]
+elif [ $COMPAT_GROUP -eq 2 ]
then
TRACKORDER_LIST=1
TRACKORDER_LIST_FILE="58"
@@ -25,19 +25,23 @@ then
cp -a /jci/gui/common/controls/List2/js/List2Ctrl.js /jci/gui/common/controls/List2/js/List2Ctrl.js.org
log_message "=== Backup of /jci/gui/common/controls/List2/js/List2Ctrl.js ==="
fi
-if [ "${KEEPBKUPS}" = "1" ]
+if [ $KEEPBKUPS -eq 1 ]
then
cp -a /jci/gui/common/controls/List2/js/List2Ctrl.js.org "${MYDIR}/bakups/"
aio_info \"List2Ctrl.js.org\",
fi
# Check for Remove Beep and Shorter Delay Mods to reapply after copying List2Crl.js
-if grep "No More Beep" /jci/gui/common/controls/List2/js/List2Ctrl.js
+if grep -q "No More Beep" /jci/gui/common/controls/List2/js/List2Ctrl.js
then
REMOVE_BEEP=1
+else
+ REMOVE_BEEP=0
fi
-if grep "Shorter Delay Mod" /jci/gui/common/controls/List2/js/List2Ctrl.js
+if grep -q "Shorter Delay Mod" /jci/gui/common/controls/List2/js/List2Ctrl.js
then
SHORTER_DELAY_MOD=1
+else
+ SHORTER_DELAY_MOD=0
fi
# Compatibility check falls into 4 groups:
@@ -46,11 +50,11 @@ fi
# 58.00.XXX ($COMPAT_GROUP=2)
# 55.XX.XXX - 56.XX.XXX ($COMPAT_GROUP=1)
# If your firmware version falls out of those ranges email the address below
-if [ "${TRACKORDER_LIST}" = "1" ]
+if [ $TRACKORDER_LIST -eq 1 ]
then
cp -a "${MYDIR}/config/list-loop/jci/gui/common/controls/List2/js/List2Ctrl.${TRACKORDER_LIST_FILE}.js" /jci/gui/common/controls/List2/js/List2Ctrl.js
log_message "=== Copied /jci/gui/common/controls/List2/js/List2Ctrl.js from SD card for ${CMU_SW_VER} ==="
-elif [ "${COMPAT_GROUP}" = "1" ]
+elif [ $COMPAT_GROUP -eq 1 ]
then
cp -a "${MYDIR}/config/list-loop/jci/gui/common/controls/List2/js/List2Ctrl.js" /jci/gui/common/controls/List2/js/
log_message "=== Copied /jci/gui/common/controls/List2/js/List2Ctrl.js from USB ==="
@@ -59,12 +63,12 @@ else
log_message "=== E-mail aio@mazdatweaks.com for Compatibility Check ==="
fi
# Re-apply these if they were installed before
-if [ "${REMOVE_BEEP}" = "1" ]
+if [ $REMOVE_BEEP -eq 1 ]
then
sed -i 's/return framework.common.beep(pressType, eventCause);/\/\/ return framework.common.beep(pressType, eventCause); \/\/No More Beeps/g' /jci/gui/common/controls/List2/js/List2Ctrl.js
log_message "=== Reapplied Disable Beeps in List2Ctrl.js ==="
fi
-if [ "${SHORTER_DELAY_MOD}" = "1" ]
+if [ $SHORTER_DELAY_MOD -eq 1 ]
then
sed -i 's/autoscrollTier1Timeout : 1500,/autoscrollTier1Timeout : 150,/g' /jci/gui/common/controls/List2/js/List2Ctrl.js
sed -i 's/autoscrollTier2Timeout : 5000,/autoscrollTier2Timeout : 300,/g' /jci/gui/common/controls/List2/js/List2Ctrl.js
@@ -73,5 +77,6 @@ then
sed -i '/autoscrollTier2Interval : 300,/ a\ \/\/Shorter Delay Mod' /jci/gui/common/controls/List2/js/List2Ctrl.js
log_message "=== Modified Delay in List2Ctrl.js ==="
fi
+
log_message "=======************ END INSTALLATION OF LIST_LOOP_MOD ************======="
log_message " "
diff --git a/app/files/tweaks/06_listloop-u.txt b/app/files/tweaks/06_listloop-u.txt
index 5534ea9..d9a21d0 100644
--- a/app/files/tweaks/06_listloop-u.txt
+++ b/app/files/tweaks/06_listloop-u.txt
@@ -2,14 +2,9 @@
show_message "REMOVE LIST_LOOP_MOD ..."
log_message "========********* UNINSTALL LIST_LOOP_MOD ... ********========="
# Check for Remove Beep and Shorter Delay Mods to reapply after copying List2Crl.js
-if grep "No More Beep" /jci/gui/common/controls/List2/js/List2Ctrl.js
-then
- REMOVE_BEEP=1
-fi
-if grep "Shorter Delay Mod" /jci/gui/common/controls/List2/js/List2Ctrl.js
-then
- SHORTER_DELAY_MOD=1
-fi
+grep -q "No More Beep" /jci/gui/common/controls/List2/js/List2Ctrl.js && REMOVE_BEEP=1 || REMOVE_BEEP=0
+
+grep -q "Shorter Delay Mod" /jci/gui/common/controls/List2/js/List2Ctrl.js && SHORTER_DELAY_MOD=1 || SHORTER_DELAY_MOD=0
# If Backup is available, then we are done.
if [ -e /jci/gui/common/controls/List2/js/List2Ctrl.js.org ]
then
@@ -21,26 +16,26 @@ else
TRACKORDER_LIST=0
# Compatibility Check
log_message "=== FW ${CMU_SW_VER} detected, copy matching List2Ctrl.js ==="
- if [ "${COMPAT_GROUP}" = "4" ]
+ if [ $COMPAT_GROUP -eq 4 ]
then
TRACKORDER_LIST=1
TRACKORDER_LIST_FILE="59"
- elif [ "${COMPAT_GROUP}" = "3" ]
+ elif [ $COMPAT_GROUP -eq 3 ]
then
TRACKORDER_LIST=1
TRACKORDER_LIST_FILE="59.330"
- elif [ "${COMPAT_GROUP}" = "2" ]
+ elif [ $COMPAT_GROUP -eq 2 ]
then
TRACKORDER_LIST=1
TRACKORDER_LIST_FILE="58"
fi
- if [ "${COMPAT_GROUP}" = "1" ]
+ if [ $COMPAT_GROUP -eq 1 ]
then
# Uncomment the following line if you need the fallback file (v55-56)
# cp -a "${MYDIR}/config_org/list-loop/jci/gui/common/controls/List2/js/List2Ctrl.js" /jci/gui/common/controls/List2/js/
log_message "=== No backup of List2Ctrl.js available, No changes were made ==="
- elif [ "${TRACKORDER_LIST}" = "1" ]
+ elif [ $TRACKORDER_LIST -eq 1 ]
then
# Uncomment the following line if you need the fallback file (v58+)
# cp -a "${MYDIR}/config_org/list-loop/jci/gui/common/controls/List2/js/List2Ctrl.${TRACKORDER_LIST_FILE}.js" /jci/gui/common/controls/List2/js/List2Ctrl.js
@@ -52,12 +47,12 @@ else
fi
fi
# Reapply tweaks
-if [ "${REMOVE_BEEP}" = "1" ]
+if [ $REMOVE_BEEP -eq 1 ]
then
sed -i 's/return framework.common.beep(pressType, eventCause);/\/\/ return framework.common.beep(pressType, eventCause); \/\/No More Beeps/g' /jci/gui/common/controls/List2/js/List2Ctrl.js
log_message "=== Reapplied Disable Beeps in List2Ctrl.js ==="
fi
-if [ "${SHORTER_DELAY_MOD}" = "1" ]
+if [ $SHORTER_DELAY_MOD -eq 1 ]
then
sed -i 's/autoscrollTier1Timeout : 1500,/autoscrollTier1Timeout : 150,/g' /jci/gui/common/controls/List2/js/List2Ctrl.js
sed -i 's/autoscrollTier2Timeout : 5000,/autoscrollTier2Timeout : 300,/g' /jci/gui/common/controls/List2/js/List2Ctrl.js
diff --git a/app/files/tweaks/08_orderflac-i.txt b/app/files/tweaks/08_orderflac-i.txt
index 8dd877b..463b48e 100644
--- a/app/files/tweaks/08_orderflac-i.txt
+++ b/app/files/tweaks/08_orderflac-i.txt
@@ -3,32 +3,32 @@ show_message "INSTALL TRACK-ORDER AND FLAC SUPPORT ..."
log_message "=======******** INSTALL TRACK-ORDER AND FLAC SUPPORT ... *********======="
TRACKORDER_FLAC=0
-if [ ${CMU_SW_VER} = "56.00.100A-ADR" ] \
-|| [ ${CMU_SW_VER} = "56.00.240B-ADR" ] \
-|| [ ${CMU_SW_VER} = "56.00.230A-EU" ] \
-|| [ ${CMU_SW_VER} = "55.00.650A-NA" ] \
-|| [ ${CMU_SW_VER} = "55.00.753A-NA" ] \
-|| [ ${CMU_SW_VER} = "55.00.760A-NA" ]
+if [ "${CMU_SW_VER}" == "56.00.100A-ADR" ] \
+|| [ "${CMU_SW_VER}" == "56.00.240B-ADR" ] \
+|| [ "${CMU_SW_VER}" == "56.00.230A-EU" ] \
+|| [ "${CMU_SW_VER}" == "55.00.650A-NA" ] \
+|| [ "${CMU_SW_VER}" == "55.00.753A-NA" ] \
+|| [ "${CMU_SW_VER}" == "55.00.760A-NA" ]
then
TRACKORDER_FLAC=1
TRACKORDER_FLAC_FILE=230A-EU
fi
-if [ ${CMU_SW_VER} = "56.00.511A-EU" ] \
-|| [ ${CMU_SW_VER} = "56.00.512A-EU" ] \
-|| [ ${CMU_SW_VER} = "58.00.250A-NA" ] \
-|| [ ${CMU_SW_VER} = "56.00.513C-EU" ] \
-|| [ ${CMU_SW_VER} = "56.00.513B-EU" ] \
-|| [ ${CMU_SW_VER} = "56.00.513C-ADR" ] \
-|| [ ${CMU_SW_VER} = "56.00.521A-NA" ]
+if [ "${CMU_SW_VER}" == "56.00.511A-EU" ] \
+|| [ "${CMU_SW_VER}" == "56.00.512A-EU" ] \
+|| [ "${CMU_SW_VER}" == "58.00.250A-NA" ] \
+|| [ "${CMU_SW_VER}" == "56.00.513C-EU" ] \
+|| [ "${CMU_SW_VER}" == "56.00.513B-EU" ] \
+|| [ "${CMU_SW_VER}" == "56.00.513C-ADR" ] \
+|| [ "${CMU_SW_VER}" == "56.00.521A-NA" ]
then
TRACKORDER_FLAC=1
TRACKORDER_FLAC_FILE=511A-EU
-elif [ ${CMU_SW_VER} = "59.00.326A-ADR" ] \
-|| [ ${CMU_SW_VER} = "59.00.330A-ADR" ] \
-|| [ ${CMU_SW_VER} = "59.00.342A-ADR" ] \
-|| [ ${CMU_SW_VER} = "59.00.441A-NA" ] \
-|| [ ${CMU_SW_VER} = "59.00.443C-EU" ] \
-|| [ ${CMU_SW_VER} = "59.00.331A-EU" ]
+elif [ "${CMU_SW_VER}" == "59.00.326A-ADR" ] \
+|| [ "${CMU_SW_VER}" == "59.00.330A-ADR" ] \
+|| [ "${CMU_SW_VER}" == "59.00.342A-ADR" ] \
+|| [ "${CMU_SW_VER}" == "59.00.441A-NA" ] \
+|| [ "${CMU_SW_VER}" == "59.00.443C-EU" ] \
+|| [ "${CMU_SW_VER}" == "59.00.331A-EU" ]
then
TRACKORDER_FLAC=1
TRACKORDER_FLAC_FILE=326A-ADR
@@ -50,11 +50,11 @@ log_message "=== copy flac-usb-recovery if it is needed can be run via SSH
chmod +x /tmp/mnt/data_persist/dev/bin/*
-if [ "${TRACKORDER_FLAC}" = "0" ]
+if [ $TRACKORDER_FLAC -eq 0 ]
then
log_message "=== Your firmware ${CMU_SW_VER} is not compatible with this tweak ==="
else
- if [ "${TRACKORDER_FLAC}" = "1" ]
+ if [ $TRACKORDER_FLAC -eq 1 ]
then
cp -a ${MYDIR}/config/media-order-patching/jci/lib/libmc_user.${TRACKORDER_FLAC_FILE}.so /jci/lib/libmc_user.so
cp -a ${MYDIR}/config/media-order-patching/usr/lib/gstreamer-0.10/libgstflac.so /usr/lib/gstreamer-0.10
diff --git a/app/files/tweaks/08_orderflac-oldi.txt b/app/files/tweaks/08_orderflac-oldi.txt
index 5653d30..0ebc9f1 100644
--- a/app/files/tweaks/08_orderflac-oldi.txt
+++ b/app/files/tweaks/08_orderflac-oldi.txt
@@ -3,32 +3,32 @@ show_message "INSTALL TRACK-ORDER AND FLAC SUPPORT ..."
log_message "=====****** INSTALL TRACK-ORDER AND FLAC SUPPORT ... ******===="
TRACKORDER_FLAC=0
-if [ ${CMU_SW_VER} = "56.00.100A-ADR" ] \
-|| [ ${CMU_SW_VER} = "56.00.240B-ADR" ] \
-|| [ ${CMU_SW_VER} = "56.00.230A-EU" ] \
-|| [ ${CMU_SW_VER} = "55.00.650A-NA" ] \
-|| [ ${CMU_SW_VER} = "55.00.753A-NA" ] \
-|| [ ${CMU_SW_VER} = "55.00.760A-NA" ]
+if [ "${CMU_SW_VER}" == "56.00.100A-ADR" ] \
+|| [ "${CMU_SW_VER}" == "56.00.240B-ADR" ] \
+|| [ "${CMU_SW_VER}" == "56.00.230A-EU" ] \
+|| [ "${CMU_SW_VER}" == "55.00.650A-NA" ] \
+|| [ "${CMU_SW_VER}" == "55.00.753A-NA" ] \
+|| [ "${CMU_SW_VER}" == "55.00.760A-NA" ]
then
TRACKORDER_FLAC=1
TRACKORDER_FLAC_FILE=230A-EU
fi
-if [ ${CMU_SW_VER} = "56.00.511A-EU" ] \
-|| [ ${CMU_SW_VER} = "56.00.512A-EU" ] \
-|| [ ${CMU_SW_VER} = "58.00.250A-NA" ] \
-|| [ ${CMU_SW_VER} = "56.00.513C-EU" ] \
-|| [ ${CMU_SW_VER} = "56.00.513B-EU" ] \
-|| [ ${CMU_SW_VER} = "56.00.513C-ADR" ] \
-|| [ ${CMU_SW_VER} = "56.00.521A-NA" ]
+if [ "${CMU_SW_VER}" == "56.00.511A-EU" ] \
+|| [ "${CMU_SW_VER}" == "56.00.512A-EU" ] \
+|| [ "${CMU_SW_VER}" == "58.00.250A-NA" ] \
+|| [ "${CMU_SW_VER}" == "56.00.513C-EU" ] \
+|| [ "${CMU_SW_VER}" == "56.00.513B-EU" ] \
+|| [ "${CMU_SW_VER}" == "56.00.513C-ADR" ] \
+|| [ "${CMU_SW_VER}" == "56.00.521A-NA" ]
then
TRACKORDER_FLAC=1
TRACKORDER_FLAC_FILE=511A-EU
-elif [ ${CMU_SW_VER} = "59.00.326A-ADR" ] \
-|| [ ${CMU_SW_VER} = "59.00.330A-ADR" ] \
-|| [ ${CMU_SW_VER} = "59.00.342A-ADR" ] \
-|| [ ${CMU_SW_VER} = "59.00.441A-NA" ] \
-|| [ ${CMU_SW_VER} = "59.00.443C-EU" ] \
-|| [ ${CMU_SW_VER} = "59.00.331A-EU" ]
+elif [ "${CMU_SW_VER}" == "59.00.326A-ADR" ] \
+|| [ "${CMU_SW_VER}" == "59.00.330A-ADR" ] \
+|| [ "${CMU_SW_VER}" == "59.00.342A-ADR" ] \
+|| [ "${CMU_SW_VER}" == "59.00.441A-NA" ] \
+|| [ "${CMU_SW_VER}" == "59.00.443C-EU" ] \
+|| [ "${CMU_SW_VER}" == "59.00.331A-EU" ]
then
TRACKORDER_FLAC=1
TRACKORDER_FLAC_FILE=326A-ADR
@@ -41,11 +41,11 @@ then
log_message "=== Backup of /jci/lib/libmc_user.so to libmc_user.so.org ==="
fi
-if [ "${TRACKORDER_FLAC}" = "0" ]
+if [ $TRACKORDER_FLAC -eq 0 ]
then
log_message "=== Your firmware is not compatible with this tweak ==="
else
- if [ "${TRACKORDER_FLAC}" = "1" ]
+ if [ $TRACKORDER_FLAC -eq 1 ]
then
cp -a ${MYDIR}/config/media-order-patching/jci/lib/libmc_user.${TRACKORDER_FLAC_FILE}.so /jci/lib/libmc_user.so
cp -a ${MYDIR}/config/media-order-patching/usr/lib/gstreamer-0.10/libgstflac.so /usr/lib/gstreamer-0.10
@@ -54,7 +54,7 @@ else
/bin/fsync /jci/lib/libmc_user.so
fi
- if [ "${TRACKORDER_FLAC}" = "1" ]
+ if [ $TRACKORDER_FLAC -eq 1 ]
then
for I in 1 2 3
do
diff --git a/app/files/tweaks/08_orderflac-oldu.txt b/app/files/tweaks/08_orderflac-oldu.txt
index 381f3bc..2a2f42b 100644
--- a/app/files/tweaks/08_orderflac-oldu.txt
+++ b/app/files/tweaks/08_orderflac-oldu.txt
@@ -3,35 +3,35 @@ show_message "REMOVE TRACK-ORDER AND FLAC SUPPORT ..."
log_message "====**** UNINSTALL TRACK-ORDER AND FLAC SUPPORT ****====="
# Compatibility Check
TRACKORDER_FLAC=0
-if [ ${CMU_SW_VER} = "56.00.100A-ADR" ] \
-|| [ ${CMU_SW_VER} = "56.00.240B-ADR" ] \
-|| [ ${CMU_SW_VER} = "56.00.230A-EU" ] \
-|| [ ${CMU_SW_VER} = "55.00.650A-NA" ] \
-|| [ ${CMU_SW_VER} = "55.00.753A-NA" ] \
-|| [ ${CMU_SW_VER} = "55.00.760A-NA" ]
+if [ "${CMU_SW_VER}" == "56.00.100A-ADR" ] \
+|| [ "${CMU_SW_VER}" == "56.00.240B-ADR" ] \
+|| [ "${CMU_SW_VER}" == "56.00.230A-EU" ] \
+|| [ "${CMU_SW_VER}" == "55.00.650A-NA" ] \
+|| [ "${CMU_SW_VER}" == "55.00.753A-NA" ] \
+|| [ "${CMU_SW_VER}" == "55.00.760A-NA" ]
then
TRACKORDER_FLAC=1
TRACKORDER_FLAC_FILE=230A-EU
fi
-if [ ${CMU_SW_VER} = "56.00.511A-EU" ] \
-|| [ ${CMU_SW_VER} = "56.00.512A-EU" ] \
-|| [ ${CMU_SW_VER} = "56.00.513B-EU" ] \
-|| [ ${CMU_SW_VER} = "56.00.513C-EU" ] \
-|| [ ${CMU_SW_VER} = "56.00.513C-ADR" ] \
-|| [ ${CMU_SW_VER} = "58.00.250A-NA" ] \
-|| [ ${CMU_SW_VER} = "56.00.521A-NA" ]
+if [ "${CMU_SW_VER}" == "56.00.511A-EU" ] \
+|| [ "${CMU_SW_VER}" == "56.00.512A-EU" ] \
+|| [ "${CMU_SW_VER}" == "56.00.513B-EU" ] \
+|| [ "${CMU_SW_VER}" == "56.00.513C-EU" ] \
+|| [ "${CMU_SW_VER}" == "56.00.513C-ADR" ] \
+|| [ "${CMU_SW_VER}" == "58.00.250A-NA" ] \
+|| [ "${CMU_SW_VER}" == "56.00.521A-NA" ]
then
TRACKORDER_FLAC=1
TRACKORDER_FLAC_FILE=511A-EU
fi
-if [ ${CMU_SW_VER} = "59.00.326A-ADR" ] \
-|| [ ${CMU_SW_VER} = "59.00.331A-EU" ]
+if [ "${CMU_SW_VER}" == "59.00.326A-ADR" ] \
+|| [ "${CMU_SW_VER}" == "59.00.331A-EU" ]
then
TRACKORDER_FLAC=1
TRACKORDER_FLAC_FILE=326A-ADR
fi
-if [ "${TRACKORDER_FLAC}" = "0" ]
+if [ $TRACKORDER_FLAC -eq 0 ]
then
log_message "=== This tweak is not compatible with your FW version ==="
else
@@ -41,7 +41,7 @@ else
log_message "=== Restored original /jci/lib/libmc_user.so from backup libmc_user.so.org ==="
else
log_message "=== No backup of /jci/lib/libmc_user.so available, no changes were made ==="
- if [ "${TRACKORDER_FLAC}" = "1" ]
+ if [ $TRACKORDER_FLAC -eq 1 ]
then
cp -a "${MYDIR}/config_org/media-order-patching/jci/lib/libmc_user.${TRACKORDER_FLAC_FILE}.so" /jci/lib/libmc_user.so
log_message "=== Detected ${CMU_SW_VER}: Copied fitting original /jci/lib/libmc_user.so ==="
@@ -49,7 +49,7 @@ else
fi
fi
- if [ "${TRACKORDER_FLAC}" = "1" ]
+ if [ $TRACKORDER_FLAC -eq 1 ]
then
for I in 1 2 3
do
diff --git a/app/files/tweaks/09_audioorder-i.txt b/app/files/tweaks/09_audioorder-i.txt
index 86360a7..24be3ba 100644
--- a/app/files/tweaks/09_audioorder-i.txt
+++ b/app/files/tweaks/09_audioorder-i.txt
@@ -3,20 +3,20 @@ show_message "CHANGE ORDER OF AUDIO SOURCE LIST ..."
log_message "======****** INSTALL CHANGE ORDER OF AUDIO SOURCE LIST ... *******======="
TRACKORDER_AUDIO=2
# Compatibility Check
-if [ "${COMPAT_GROUP}" = "1" ]
+if [ $COMPAT_GROUP -eq 1 ]
then
TRACKORDER_AUDIO=0
-elif [ "${COMPAT_GROUP}" = "2" ]
+elif [ $COMPAT_GROUP -eq 2 ]
then
TRACKORDER_AUDIO=1
TRACKORDER_AUDIO_FILE=58.00.250A-NA
log_message "=== FW ${CMU_SW_VER} detected, copy matching systemApp.js ==="
-elif [ "${COMPAT_GROUP}" = "3" ] || [ "${COMPAT_GROUP}" = "4" ]
+elif [ $COMPAT_GROUP -eq 3 ] || [ $COMPAT_GROUP -eq 4 ]
then
TRACKORDER_AUDIO=1
TRACKORDER_AUDIO_FILE=59.00.330
log_message "=== FW ${CMU_SW_VER} detected, copy matching systemApp.js ==="
-elif [ "${COMPAT_GROUP}" = "5" ]
+elif [ $COMPAT_GROUP -eq 5 ]
then
TRACKORDER_AUDIO=1
TRACKORDER_AUDIO_FILE=59
@@ -34,24 +34,24 @@ then
cp -a /jci/gui/apps/system/js/systemApp.js /jci/gui/apps/system/js/systemApp.js.org
log_message "=== Backup of /jci/gui/apps/system/js/systemApp.js ==="
fi
-if [ "${KEEPBKUPS}" = "1" ]
+if [ $KEEPBKUPS -eq 1 ]
then
cp -a /jci/gui/apps/system/js/systemApp.js.org "${MYDIR}/bakups/"
aio_info \"systemApp.js.org\",
fi
-if [ "${TESTBKUPS}" = 1 ]
+if [ $TESTBKUPS -eq 1 ]
then
cp -a /jci/gui/apps/system/js/systemApp.js "${MYDIR}/bakups/test/systemApp_before-audiosources.js"
fi
-if [ ! "${TRACKORDER_AUDIO}" = "2" ]
+if [ ! $TRACKORDER_AUDIO -eq 2 ]
then
cp -a "${MYDIR}/config/audio_order_AND_no_More_Disclaimer/systemApp.js.audio" /jci/gui/apps/system/js/
log_message "=== Added marker 'systemApp.js.audio' ==="
if [ -e /jci/gui/apps/system/js/systemApp.js.disclaimer ]
then
- if [ "${TRACKORDER_AUDIO}" = "1" ]
+ if [ $TRACKORDER_AUDIO -eq 1 ]
then
cp -a "${MYDIR}/config/audio_order_AND_no_More_Disclaimer/both/jci/gui/apps/system/js/systemApp.${TRACKORDER_AUDIO_FILE}.js" /jci/gui/apps/system/js/systemApp.js
log_message "=== Changed order of audio source list, disclaimer still gone ==="
@@ -60,7 +60,7 @@ then
log_message "=== Changed order of audio source list, disclaimer still gone ==="
fi
else
- if [ "${TRACKORDER_AUDIO}" = "1" ]
+ if [ $TRACKORDER_AUDIO -eq 1 ]
then
cp -a "${MYDIR}/config/audio_order_AND_no_More_Disclaimer/only_change_audio_order/jci/gui/apps/system/js/systemApp.${TRACKORDER_AUDIO_FILE}.js" /jci/gui/apps/system/js/systemApp.js
log_message "=== Changed order of audio source list (no no-more-disclaimer) ==="
@@ -76,7 +76,7 @@ else
log_message "******** Please Email ${MYDIR}/systemApp.js FW:${CMU_SW_VER} to aio@mazdatweaks.com ********"
cp -a /jci/gui/apps/system/js/systemApp.js "${MYDIR}/"
fi
-if [ "${TESTBKUPS}" = 1 ]
+if [ $TESTBKUPS -eq 1 ]
then
cp -a /jci/gui/apps/system/js/systemApp.js "${MYDIR}/bakups/test/systemApp_after-audiosources.js"
fi
diff --git a/app/files/tweaks/09_audioorder-u.txt b/app/files/tweaks/09_audioorder-u.txt
index becb243..70193a2 100644
--- a/app/files/tweaks/09_audioorder-u.txt
+++ b/app/files/tweaks/09_audioorder-u.txt
@@ -3,20 +3,20 @@ show_message "RESTORE ORDER OF AUDIO SOURCE LIST TO ORIGINAL ..."
log_message "========******* UNINSTALL ORDER OF AUDIO SOURCE LIST ... *******========"
TRACKORDER_AUDIO=2
# Compatibility Check
-if [ "${COMPAT_GROUP}" = "1" ]
+if [ $COMPAT_GROUP -eq 1 ]
then
TRACKORDER_AUDIO=0
-elif [ "${COMPAT_GROUP}" = "2" ]
+elif [ $COMPAT_GROUP -eq 2 ]
then
TRACKORDER_AUDIO=1
TRACKORDER_AUDIO_FILE=58.00.250A-NA
log_message "=== FW ${CMU_SW_VER} detected, copy matching systemApp.js ==="
-elif [ "${COMPAT_GROUP}" = "3" ] || [ "${COMPAT_GROUP}" = "4" ]
+elif [ $COMPAT_GROUP -eq 3 ] || [ $COMPAT_GROUP -eq 4 ]
then
TRACKORDER_AUDIO=1
TRACKORDER_AUDIO_FILE=59.00.330
log_message "=== FW ${CMU_SW_VER} detected, copy matching systemApp.js ==="
-elif [ "${COMPAT_GROUP}" = "5" ]
+elif [ $COMPAT_GROUP -eq 5 ]
then
TRACKORDER_AUDIO=1
TRACKORDER_AUDIO_FILE=59
@@ -29,7 +29,7 @@ fi
# 58.00.XXX ($COMPAT_GROUP=2)
# 55.XX.XXX - 56.XX.XXX ($COMPAT_GROUP=1)
-if [ ! "${TRACKORDER_AUDIO}" = "2" ]
+if [ ! $TRACKORDER_AUDIO -eq 2 ]
then
if [ -e /jci/gui/apps/system/js/systemApp.js.org ]
then
@@ -40,7 +40,7 @@ then
fi
if [ -e /jci/gui/apps/system/js/systemApp.js.disclaimer ]
then
- if [ "${TRACKORDER_AUDIO}" = "1" ]
+ if [ $TRACKORDER_AUDIO -eq 1 ]
then
cp -a ${MYDIR}/config_org/audio_order_AND_no_More_Disclaimer/only_no_More_Disclaimer/jci/gui/apps/system/js/systemApp.${TRACKORDER_AUDIO_FILE}.js /jci/gui/apps/system/js/systemApp.js
log_message "=== Restored order of audio source list, disclaimer still gone ==="
@@ -49,7 +49,7 @@ then
log_message "=== Restored order of audio source list, disclaimer still gone ==="
fi
else
- if [ "${TRACKORDER_AUDIO}" = "1" ]
+ if [ $TRACKORDER_AUDIO -eq 1 ]
then
cp -a ${MYDIR}/config_org/audio_order_AND_no_More_Disclaimer/nothing/jci/gui/apps/system/js/systemApp.${TRACKORDER_AUDIO_FILE}.js /jci/gui/apps/system/js/systemApp.js
log_message "=== Restored order of audio source list for ${CMU_SW_VER} ==="
diff --git a/app/files/tweaks/10_pausemute-i.txt b/app/files/tweaks/10_pausemute-i.txt
index 6814d98..f3b864a 100644
--- a/app/files/tweaks/10_pausemute-i.txt
+++ b/app/files/tweaks/10_pausemute-i.txt
@@ -8,7 +8,7 @@ then
cp -a /jci/gui/common/js/Common.js /jci/gui/common/js/Common.js.org
log_message "=== Backup of /jci/gui/common/js/Common.js to Common.js.org ==="
fi
-if [ "${KEEPBKUPS}" = 1 ]
+if [ $KEEPBKUPS -eq 1 ]
then
cp -a /jci/gui/common/js/Common.js.org "${MYDIR}/bakups/"
aio_info \"Common.js.org\",
diff --git a/app/files/tweaks/10_pausemute-u.txt b/app/files/tweaks/10_pausemute-u.txt
index 73e04e7..30cfe7d 100644
--- a/app/files/tweaks/10_pausemute-u.txt
+++ b/app/files/tweaks/10_pausemute-u.txt
@@ -10,35 +10,35 @@ then
# Looks for this line of code that doesnt exist in the original file for installations prior to AIO v2.1
elif grep -Fq 'isMuted ? "Global.Pause" : "Global.Resume"' /jci/gui/common/js/Common.js
then
- if [ ${CMU_SW_VER} = "56.00.100A-ADR" ] \
- || [ ${CMU_SW_VER} = "56.00.230A-ADR" ] \
- || [ ${CMU_SW_VER} = "56.00.240B-ADR" ] \
- || [ ${CMU_SW_VER} = "56.00.230A-EU" ] \
- || [ ${CMU_SW_VER} = "55.00.650A-NA" ] \
- || [ ${CMU_SW_VER} = "55.00.753A-NA" ] \
- || [ ${CMU_SW_VER} = "55.00.760A-NA" ] \
- || [ ${CMU_SW_VER} = "56.00.401A-JP" ]
+ if [ "${CMU_SW_VER}" == "56.00.100A-ADR" ] \
+ || [ "${CMU_SW_VER}" == "56.00.230A-ADR" ] \
+ || [ "${CMU_SW_VER}" == "56.00.240B-ADR" ] \
+ || [ "${CMU_SW_VER}" == "56.00.230A-EU" ] \
+ || [ "${CMU_SW_VER}" == "55.00.650A-NA" ] \
+ || [ "${CMU_SW_VER}" == "55.00.753A-NA" ] \
+ || [ "${CMU_SW_VER}" == "55.00.760A-NA" ] \
+ || [ "${CMU_SW_VER}" == "56.00.401A-JP" ]
then
pause_copy=1
pause_copy_file=56.00.230A-EU
fi
- if [ ${CMU_SW_VER} = "58.00.250A-NA" ] \
- || [ ${CMU_SW_VER} = "59.00.326A-ADR" ] \
- || [ ${CMU_SW_VER} = "59.00.331A-EU" ]
+ if [ "${CMU_SW_VER}" == "58.00.250A-NA" ] \
+ || [ "${CMU_SW_VER}" == "59.00.326A-ADR" ] \
+ || [ "${CMU_SW_VER}" == "59.00.331A-EU" ]
then
pause_copy=1
pause_copy_file=58.00.250A-NA
fi
- if [ ${CMU_SW_VER} = "56.00.511A-EU" ] \
- || [ ${CMU_SW_VER} = "56.00.512A-EU" ] \
- || [ ${CMU_SW_VER} = "56.00.513B-EU" ] \
- || [ ${CMU_SW_VER} = "56.00.513C-EU" ] \
- || [ ${CMU_SW_VER} = "56.00.511A-ADR" ] \
- || [ ${CMU_SW_VER} = "56.00.512A-ADR" ] \
- || [ ${CMU_SW_VER} = "56.00.513C-ADR" ] \
- || [ ${CMU_SW_VER} = "56.00.521A-NA" ]
+ if [ "${CMU_SW_VER}" == "56.00.511A-EU" ] \
+ || [ "${CMU_SW_VER}" == "56.00.512A-EU" ] \
+ || [ "${CMU_SW_VER}" == "56.00.513B-EU" ] \
+ || [ "${CMU_SW_VER}" == "56.00.513C-EU" ] \
+ || [ "${CMU_SW_VER}" == "56.00.511A-ADR" ] \
+ || [ "${CMU_SW_VER}" == "56.00.512A-ADR" ] \
+ || [ "${CMU_SW_VER}" == "56.00.513C-ADR" ] \
+ || [ "${CMU_SW_VER}" == "56.00.521A-NA" ]
then
pause_copy=1
pause_copy_file=56.00.511A-EU
@@ -49,7 +49,7 @@ then
cp -a /jci/gui/common/js/Common.js.org /jci/gui/common/js/Common.js
log_message "=== Common.js Restored From Original Backup ==="
# Fallback only if supported FW version
- elif [ ${pause_copy} = "1" ]
+ elif [ $pause_copy -eq 1 ]
then
log_message "=== No backup of Common.js available, no changes were made ==="
# cp -a ${MYDIR}/config_org/pause-on-mute/jci/gui/common/js/Common.js.${pause_copy_file} /jci/gui/common/js/Common.js
diff --git a/app/files/tweaks/12_diag-i.txt b/app/files/tweaks/12_diag-i.txt
index 99d289a..b902750 100644
--- a/app/files/tweaks/12_diag-i.txt
+++ b/app/files/tweaks/12_diag-i.txt
@@ -4,7 +4,7 @@ log_message "===*** INSTALL DIAGMENU 1 SEC. CLOCK PRESS IN DISPLAY SETTINGS ...
# Backups
if [ ! -e /jci/gui/apps/diag/js/diagApp.js.org ]
then
- cp -a /jci/gui/apps/diag/diagApp.js /jci/gui/apps/diag/js/diagApp.js.org
+ cp -a /jci/gui/apps/diag/js/diagApp.js /jci/gui/apps/diag/js/diagApp.js.org
log_message "=== Backup /jci/gui/apps/diag/js/diagApp.js ==="
fi
if [ ! -e /jci/gui/common/controls/StatusBar/js/StatusBarCtrl.js.org ]
@@ -17,13 +17,26 @@ then
cp -a /jci/gui/common/js/Common.js /jci/gui/common/js/Common.js.org
log_message "=== Backup /jci/gui/common/js/Common.js ==="
fi
-if [ "${KEEPBKUPS}" = "1" ]
+if [ ! -e /jci/gui/apps/diag/controls/Test/js/TestCtrl.js.org ]
+then
+ cp -a /jci/gui/apps/diag/controls/Test/js/TestCtrl.js /jci/gui/apps/diag/controls/Test/js/TestCtrl.js.org
+ log_message "=== Backup /jci/gui/apps/diag/controls/Test/js/TestCtrl.js ==="
+fi
+if [ ! -e /jci/gui/apps/diag/controls/Test/css/TestCtrl.css.org ]
+then
+ cp -a /jci/gui/apps/diag/controls/Test/css/TestCtrl.css /jci/gui/apps/diag/controls/Test/css/TestCtrl.css.org
+ log_message "=== Backup /jci/gui/apps/diag/controls/Test/css/TestCtrl.css ==="
+fi
+
+if [ $KEEPBKUPS -eq 1 ]
then
cp /jci/gui/apps/diag/js/diagApp.js.org "${MYDIR}/bakups/"
cp /jci/gui/common/controls/StatusBar/js/StatusBarCtrl.js.org "${MYDIR}/bakups/"
cp /jci/gui/common/js/Common.js.org "${MYDIR}/bakups/"
+ cp /jci/gui/apps/diag/controls/Test/css/TestCtrl.css.org "${MYDIR}/bakups/"
+ cp /jci/gui/apps/diag/controls/Test/js/TestCtrl.js.org "${MYDIR}/bakups/"
fi
-if [ "${TESTBKUPS}" = "1" ]
+if [ $TESTBKUPS -eq 1 ]
then
cp /jci/gui/apps/diag/js/diagApp.js "${MYDIR}/bakups/test/diagApp_diagmenu-before.js"
cp /jci/gui/common/controls/StatusBar/js/StatusBarCtrl.js "${MYDIR}/bakups/test/StatusBarCtrl_diagmenu-before.js"
@@ -34,7 +47,6 @@ then
fi
if grep -Fq '"settleTime" : 1000,' /jci/gui/apps/diag/js/diagApp.js
then
- echo "exist"
log_message "=== Modifications already done to /jci/gui/apps/diag/js/diagApp.js ==="
else
sed -i 's/"settleTime" : 20000,/"settleTime" : 1000,/g' /jci/gui/apps/diag/js/diagApp.js
@@ -42,7 +54,6 @@ else
fi
if grep -Fq '"holdTimeout" : 1000,' /jci/gui/common/controls/StatusBar/js/StatusBarCtrl.js
then
- echo "exist"
log_message "=== Modifications already done to StatusBarCtrl.js ==="
else
sed -i 's/"holdTimeout" : 5000,/"holdTimeout" : 1000,/g' /jci/gui/common/controls/StatusBar/js/StatusBarCtrl.js
@@ -50,13 +61,15 @@ else
fi
if grep -Fq 'framework.sendEventToMmui("syssettings", "SelectDiagnostics"); // Sumire Racing' /jci/gui/common/js/Common.js
then
- echo "exist"
log_message "=== Modifications already done to /jci/gui/common/js/Common.js ==="
else
sed -i '/this._diagEntrySequence = 1;/ a\framework.sendEventToMmui("syssettings", "SelectDiagnostics"); // Sumire Racing' /jci/gui/common/js/Common.js
log_message "=== Modified /jci/gui/common/js/Common.js ==="
fi
-if [ "${TESTBKUPS}" = "1" ]
+cp -a ${MYDIR}/config/test_mode/controls /jci/gui/apps/diag
+log_message "=== Added Test Mode (T/M) Button To Diag App ==="
+
+if [ $TESTBKUPS -eq 1 ]
then
cp /jci/gui/apps/diag/js/diagApp.js "${MYDIR}/bakups/test/diagApp_diagmenu-after.js"
cp /jci/gui/common/controls/StatusBar/js/StatusBarCtrl.js "${MYDIR}/bakups/test/StatusBarCtrl_diagmenu-after.js"
diff --git a/app/files/tweaks/12_diag-u.txt b/app/files/tweaks/12_diag-u.txt
index e8f1848..ef5eb8f 100644
--- a/app/files/tweaks/12_diag-u.txt
+++ b/app/files/tweaks/12_diag-u.txt
@@ -1,7 +1,7 @@
#remove diagmenu with 1 sec. press at clock in display settings menu, script made by Sumire_Racing_JPN
show_message "REMOVE DIAGMENU W. 1 SEC. PRESS AT CLOCK \nIN DISPLAY SETTINGS MENU"
log_message "===*** UNINSTALL DIAGMENU W. AT CLOCK IN DISPLAY SETTINGS MENU ... ***==="
-if [ "${TESTBKUPS}" = "1" ]
+if [ $TESTBKUPS -eq 1 ]
then
cp /jci/gui/apps/diag/js/diagApp.js "${MYDIR}/bakups/test/diagApp_diagmenu-before.js"
cp /jci/gui/common/controls/StatusBar/js/StatusBarCtrl.js "${MYDIR}/bakups/test/StatusBarCtrl_diagmenu-before.js"
@@ -30,7 +30,17 @@ then
else
log_message "=== /jci/gui/common/js/Common.js was not modified ==="
fi
-if [ "${TESTBKUPS}" = "1" ]
+if [ -e /jci/gui/apps/diag/controls/Test/js/TestCtrl.js.org ]
+then
+ cp -a /jci/gui/apps/diag/controls/Test/js/TestCtrl.js.org /jci/gui/apps/diag/controls/Test/js/TestCtrl.js
+ log_message "=== Restored TestCtrl.js From Backup ==="
+fi
+if [ -e /jci/gui/apps/diag/controls/Test/css/TestCtrl.css.org ]
+then
+ cp -a /jci/gui/apps/diag/controls/Test/css/TestCtrl.css.org /jci/gui/apps/diag/controls/Test/css/TestCtrl.css
+ log_message "=== Restored TestCtrl.css From Backup ==="
+fi
+if [ $TESTBKUPS -eq 1 ]
then
cp /jci/gui/apps/diag/js/diagApp.js "${MYDIR}/bakups/test/diagApp_diagmenu-after.js"
cp /jci/gui/common/controls/StatusBar/js/StatusBarCtrl.js "${MYDIR}/bakups/test/StatusBarCtrl_diagmenu-after.js"
diff --git a/app/files/tweaks/13_boot-i.txt b/app/files/tweaks/13_boot-i.txt
index 32f939f..8d0d38f 100644
--- a/app/files/tweaks/13_boot-i.txt
+++ b/app/files/tweaks/13_boot-i.txt
@@ -24,35 +24,35 @@ then
fi
-if [ ${BOOTLOGO1} = 0 ]
+if [ $BOOTLOGO1 -eq 0 ]
then
cp -a "${MYDIR}/config/bootanimation/jci/resources/LoopLogo.ivf" /jci/resources/
log_message "=== LoopLogo.ivf set to Mazda Logo ==="
-elif [ ${BOOTLOGO1} = 1 ]
+elif [ $BOOTLOGO1 -eq 1 ]
then
cp -a "${MYDIR}/config/bootanimation/jci/resources/LoopLogoMatrix.ivf" /jci/resources/LoopLogo.ivf
log_message "=== LoopLogo.ivf set to Matrix ==="
-elif [ ${BOOTLOGO1} = 2 ]
+elif [ $BOOTLOGO1 -eq 2 ]
then
cp -a "${MYDIR}/config/bootanimation/jci/resources/TranLogoRace.ivf" /jci/resources/LoopLogo.ivf
log_message "=== LoopLogo.ivf set to Large Mazda Logo ==="
-elif [ ${BOOTLOGO1} = 3 ]
+elif [ $BOOTLOGO1 -eq 3 ]
then
cp -a "${MYDIR}/config/bootanimation/jci/resources/LoopLogoFiat.ivf" /jci/resources/LoopLogo.ivf
log_message "=== LoopLogo.ivf set to Fiat Logo ==="
-elif [ ${BOOTLOGO1} = 4 ]
+elif [ $BOOTLOGO1 -eq 4 ]
then
cp -a "${MYDIR}/config/bootanimation/jci/resources/LoopLogoZ.ivf" /jci/resources/LoopLogo.ivf
log_message "=== LoopLogo.ivf set to MaZda Logo ==="
-elif [ ${BOOTLOGO1} = 5 ]
+elif [ $BOOTLOGO1 -eq 5 ]
then
cp -a "${MYDIR}/config/bootanimation/jci/resources/LoopLogoCinema.ivf" /jci/resources/LoopLogo.ivf
log_message "=== LoopLogo.ivf set to MZD Cinema Loop ==="
-elif [ ${BOOTLOGO1} = 6 ]
+elif [ $BOOTLOGO1 -eq 6 ]
then
cp -a "${MYDIR}/config/bootanimation/jci/resources/TranLogoCrissCross.ivf" /jci/resources/LoopLogo.ivf
log_message "=== LoopLogo.ivf set to MZD Criss Cross ==="
-elif [ ${BOOTLOGO1} = 7 ]
+elif [ $BOOTLOGO1 -eq 7 ]
then
cp -a "${MYDIR}/config/bootanimation/jci/resources/LoopLogoRace.ivf" /jci/resources/LoopLogo.ivf
log_message "=== LoopLogo.ivf set to MZD Race Loop ==="
@@ -60,39 +60,39 @@ else
log_message "=== LoopLogo.ivf was not changed ==="
fi
-if [ ${BOOTLOGO2} = 0 ]
+if [ $BOOTLOGO2 -eq 0 ]
then
cp -a "${MYDIR}/config/bootanimation/jci/resources/LoopLogo.ivf" /jci/resources/TranLogo.ivf
log_message "=== TranLogo.ivf set to Mazda Logo ==="
-elif [ ${BOOTLOGO2} = 1 ]
+elif [ $BOOTLOGO2 -eq 1 ]
then
cp -a "${MYDIR}/config/bootanimation/jci/resources/LoopLogoMatrix.ivf" /jci/resources/TranLogo.ivf
log_message "=== TranLogo.ivf set to Matrix ==="
-elif [ ${BOOTLOGO2} = 2 ]
+elif [ $BOOTLOGO2 -eq 2 ]
then
cp -a "${MYDIR}/config/bootanimation/jci/resources/TranLogoRace.ivf" /jci/resources/TranLogo.ivf
log_message "=== TranLogo.ivf set to Large Mazda Logo ==="
-elif [ ${BOOTLOGO2} = 3 ]
+elif [ $BOOTLOGO2 -eq 3 ]
then
cp -a "${MYDIR}/config/bootanimation/jci/resources/TranLogo124Spider.ivf" /jci/resources/TranLogo.ivf
log_message "=== TranLogo.ivf set to Spider 124 Trans ==="
-elif [ ${BOOTLOGO2} = 4 ]
+elif [ $BOOTLOGO2 -eq 4 ]
then
cp -a "${MYDIR}/config/bootanimation/jci/resources/LoopLogoZ.ivf" /jci/resources/TranLogo.ivf
log_message "=== TranLogo.ivf set to MaZda Logo ==="
-elif [ ${BOOTLOGO2} = 5 ]
+elif [ $BOOTLOGO2 -eq 5 ]
then
cp -a "${MYDIR}/config/bootanimation/jci/resources/LoopLogoCinema.ivf" /jci/resources/TranLogo.ivf
log_message "=== TranLogo.ivf set to MZD Cinema Loop ==="
-elif [ ${BOOTLOGO2} = 6 ]
+elif [ $BOOTLOGO2 -eq 6 ]
then
cp -a "${MYDIR}/config/bootanimation/jci/resources/TranLogoCrissCross.ivf" /jci/resources/TranLogo.ivf
log_message "=== TranLogo.ivf set to MZD Criss Cross ==="
-elif [ ${BOOTLOGO2} = 7 ]
+elif [ $BOOTLOGO2 -eq 7 ]
then
cp -a "${MYDIR}/config/bootanimation/jci/resources/LoopLogoRace.ivf" /jci/resources/TranLogo.ivf
log_message "=== TranLogo.ivf set to MZD Race Loop ==="
-elif [ ${BOOTLOGO2} = 8 ]
+elif [ $BOOTLOGO2 -eq 8 ]
then
cp -a "${MYDIR}/config/bootanimation/jci/resources/TranLogo.ivf" /jci/resources/
log_message "=== TranLogo.ivf set to Default Mazda Intro ==="
@@ -100,51 +100,51 @@ else
log_message "=== TranLogo.ivf was not changed ==="
fi
-if [ ${BOOTLOGO3} = 0 ]
+if [ $BOOTLOGO3 -eq 0 ]
then
cp -a "${MYDIR}/config/bootanimation/jci/resources/LoopLogo.ivf" /jci/resources/TranLogoEnd.ivf
log_message "=== TranLogoEnd.ivf set to Mazda Logo ==="
-elif [ ${BOOTLOGO3} = 1 ]
+elif [ $BOOTLOGO3 -eq 1 ]
then
cp -a "${MYDIR}/config/bootanimation/jci/resources/LoopLogoMatrix.ivf" /jci/resources/TranLogoEnd.ivf
log_message "=== TranLogoEnd.ivf set to Matrix ==="
-elif [ ${BOOTLOGO3} = 2 ]
+elif [ $BOOTLOGO3 -eq 2 ]
then
cp -a "${MYDIR}/config/bootanimation/jci/resources/TranLogoEndRace.ivf" /jci/resources/TranLogoEnd.ivf
log_message "=== TranLogoEnd.ivf set to Mazda Race Logo ==="
-elif [ ${BOOTLOGO3} = 3 ]
+elif [ $BOOTLOGO3 -eq 3 ]
then
cp -a "${MYDIR}/config/bootanimation/jci/resources/TranLogoCarFlash.ivf" /jci/resources/TranLogoEnd.ivf
log_message "=== TranLogoEnd.ivf set to Car Flash ==="
-elif [ ${BOOTLOGO3} = 4 ]
+elif [ $BOOTLOGO3 -eq 4 ]
then
cp -a "${MYDIR}/config/bootanimation/jci/resources/LoopLogoZ.ivf" /jci/resources/TranLogoEnd.ivf
log_message "=== TranLogoEnd.ivf set to MaZda Logo ==="
-elif [ ${BOOTLOGO3} = 5 ]
+elif [ $BOOTLOGO3 -eq 5 ]
then
cp -a "${MYDIR}/config/bootanimation/jci/resources/TranLogoEndCinema.ivf" /jci/resources/TranLogoEnd.ivf
log_message "=== TranLogoEnd.ivf set to MZD Cinema ==="
-elif [ ${BOOTLOGO3} = 6 ]
+elif [ $BOOTLOGO3 -eq 6 ]
then
cp -a "${MYDIR}/config/bootanimation/jci/resources/TranLogoEndCrissCross.ivf" /jci/resources/TranLogoEnd.ivf
log_message "=== TranLogoEnd.ivf set to MZD Criss Cross ==="
-elif [ ${BOOTLOGO3} = 7 ]
+elif [ $BOOTLOGO3 -eq 7 ]
then
cp -a "${MYDIR}/config/bootanimation/jci/resources/TranLogoEndRace.ivf" /jci/resources/TranLogoEnd.ivf
log_message "=== TranLogoEnd.ivf set to MZD Race ==="
-elif [ ${BOOTLOGO3} = 8 ]
+elif [ $BOOTLOGO3 -eq 8 ]
then
cp -a "${MYDIR}/config/bootanimation/jci/resources/TranLogoEndSpace.ivf" /jci/resources/TranLogoEnd.ivf
log_message "=== TranLogoEnd.ivf set to MZD Space ==="
-elif [ ${BOOTLOGO3} = 9 ]
+elif [ $BOOTLOGO3 -eq 9 ]
then
cp -a "${MYDIR}/config/bootanimation/jci/resources/TranRace.ivf" /jci/resources/TranLogoEnd.ivf
log_message "=== TranLogoEnd.ivf set to MZD Race ==="
-elif [ ${BOOTLOGO3} = 10 ]
+elif [ $BOOTLOGO3 -eq 10 ]
then
cp -a "${MYDIR}/config/bootanimation/jci/resources/TranIntroM.ivf" /jci/resources/TranLogoEnd.ivf
log_message "=== TranLogoEnd.ivf set to MZD Title Slam ==="
-elif [ ${BOOTLOGO3} = 11 ]
+elif [ $BOOTLOGO3 -eq 11 ]
then
cp -a "${MYDIR}/config/bootanimation/jci/resources/TranLogoEnd.ivf" /jci/resources/
log_message "=== TranLogoEnd.ivf set to Default ==="
diff --git a/app/files/tweaks/14_bgart-i.txt b/app/files/tweaks/14_bgart-i.txt
index efcc9a4..2b80f6a 100644
--- a/app/files/tweaks/14_bgart-i.txt
+++ b/app/files/tweaks/14_bgart-i.txt
@@ -8,7 +8,7 @@ then
cp -a /jci/gui/common/controls/NowPlaying4/css/NowPlaying4Ctrl.css /jci/gui/common/controls/NowPlaying4/css/NowPlaying4Ctrl.css.org
log_message "=== Backup of NowPlaying4Ctrl.css ==="
fi
-if [ ${KEEPBKUPS} = "1" ]
+if [ $KEEPBKUPS -eq 1 ]
then
cp -a /jci/gui/common/controls/NowPlaying4/css/NowPlaying4Ctrl.css.org "${MYDIR}/bakups/"
aio_info \"NowPlaying4Ctrl.css.org\",
@@ -26,13 +26,13 @@ echo "/* MZD-AIO-TI BIGGERALBM CSS */" >> /jci/gui/common/controls/NowPlaying4/c
cat ${MYDIR}/config/bigger-album-art/big-albm.css >> /jci/gui/common/controls/NowPlaying4/css/NowPlaying4Ctrl.css
-if [ ${FULLTITLES} = "1" ]
+if [ $FULLTITLES -eq 1 ]
then
cat ${MYDIR}/config/bigger-album-art/full-titles.css >> /jci/gui/common/controls/NowPlaying4/css/NowPlaying4Ctrl.css
log_message "=== Added for Full Width Titles ==="
fi
-if [ ${NOALBM} = "1" ]
+if [ $NOALBM -eq 1 ]
then
cat ${MYDIR}/config/bigger-album-art/no-albm.css >> /jci/gui/common/controls/NowPlaying4/css/NowPlaying4Ctrl.css
log_message "=== Added CSS For Hide Album Art Option ==="
diff --git a/app/files/tweaks/15_btnbackground-i.txt b/app/files/tweaks/15_btnbackground-i.txt
index bf8c6be..4876925 100644
--- a/app/files/tweaks/15_btnbackground-i.txt
+++ b/app/files/tweaks/15_btnbackground-i.txt
@@ -8,7 +8,7 @@ then
cp -a /jci/gui/common/controls/Ump3/css/Ump3Ctrl.css /jci/gui/common/controls/Ump3/css/Ump3Ctrl.css.org
log_message "=== Backup of /jci/gui/common/controls/Ump3/css/Ump3Ctrl.css ==="
fi
-if [ "${KEEPBKUPS}" = 1 ]
+if [ $KEEPBKUPS -eq 1 ]
then
cp -a /jci/gui/common/controls/Ump3/css/Ump3Ctrl.css.org "${MYDIR}/bakups/"
aio_info \"Ump3Ctrl.js.org\",
@@ -18,7 +18,7 @@ sed -i "/.. MZD-AIO-TI NO-BTN-BG ../,/.. END AIO CSS ../d" /jci/gui/common/contr
# Append css
echo "/* MZD-AIO-TI NO-BTN-BG */" >> /jci/gui/common/controls/Ump3/css/Ump3Ctrl.css
-if [ ${NO_BTN_BG} = 1 ]
+if [ $NO_BTN_BG -eq 1 ]
then
cat <> /jci/gui/common/controls/Ump3/css/Ump3Ctrl.css
/* Remove Button Backgrounds */
@@ -30,7 +30,7 @@ then
EOT
log_message "=== Removed Behind Buttons Background ==="
fi
-if [ ${NO_NP_BG} = 1 ]
+if [ $NO_NP_BG -eq 1 ]
then
cat <> /jci/gui/common/controls/Ump3/css/Ump3Ctrl.css
/* Remove Now Playing Background*/
@@ -40,7 +40,7 @@ then
EOT
log_message "=== Removed Now Playing Overlay ==="
fi
-if [ ${NO_LIST_BG} = 1 ]
+if [ $NO_LIST_BG -eq 1 ]
then
cat <> /jci/gui/common/controls/Ump3/css/Ump3Ctrl.css
/* Remove List Background*/
@@ -50,7 +50,7 @@ then
EOT
log_message "=== Removed List View Overlay ==="
fi
-if [ ${NO_CALL_BG} = 1 ]
+if [ $NO_CALL_BG -eq 1 ]
then
cat <> /jci/gui/common/controls/Ump3/css/Ump3Ctrl.css
/* Remove In Call Background*/
@@ -61,7 +61,7 @@ then
EOT
log_message "=== Removed In-Call Overlay ==="
fi
-if [ ${NO_TEXT_BG} = 1 ]
+if [ $NO_TEXT_BG -eq 1 ]
then
cat <> /jci/gui/common/controls/Ump3/css/Ump3Ctrl.css
/* Remove In Call Background*/
diff --git a/app/files/tweaks/17_videoplayer-i.txt b/app/files/tweaks/17_videoplayer-i.txt
index 0766c4d..42307f2 100644
--- a/app/files/tweaks/17_videoplayer-i.txt
+++ b/app/files/tweaks/17_videoplayer-i.txt
@@ -1,13 +1,13 @@
#######################################################################
# Video_Player by many many people
-# V3.1 - Mods by vic_bam85 & Trezdog44
+# Mods by vic_bam85 & Trezdog44
#######################################################################
-show_message "VIDEOPLAYER v3.3\nMODS BY VIC_BAM85 & TREZDOG44"
+show_message "VIDEOPLAYER v${VP_VER}\nMODS BY VIC_BAM85 & TREZDOG44"
log_message "============*********** INSTALL VIDEOPLAYER ************============="
-log_message "=== Begin Installation of VideoPlayer V3.3 ==="
+log_message "=== Begin Installation of VideoPlayer V${VP_VER} ==="
-if [ "${TESTBKUPS}" = "1" ]
+if [ $TESTBKUPS -eq 1 ]
then
cp /jci/scripts/stage_wifi.sh "${MYDIR}/bakups/test/stage_wifi_videoplayer-before.sh"
cp /jci/opera/opera_dir/userjs/additionalApps.json "${MYDIR}/bakups/test/additionalApps_videoplayer-1._before.json"
@@ -24,8 +24,9 @@ sed -i '/--port=9998/d' /jci/scripts/stage_wifi.sh
# Copies the additionalApps.js
if [ $CASDK_MODE -eq 0 ]
then
- cp -a ${MYDIR}/config/jci/opera/opera_dir/userjs/additionalApps.js /jci/opera/opera_dir/userjs/ && CASDK_MODE=1
- chmod 755 /jci/opera/opera_dir/userjs/additionalApps.js
+ cp -a ${MYDIR}/config/jci/opera/opera_dir/userjs/additionalApps.js /jci/opera/opera_dir/userjs/ && CASDK_MODE=1
+ chmod 755 /jci/opera/opera_dir/userjs/additionalApps.js
+ chown 1018:3015 /jci/opera/opera_dir/userjs/additionalApps.js
log_message "=== Copied additionalApps.js ==="
fi
@@ -50,24 +51,24 @@ fi
# Remove old port configuration
count=$(grep -c '/jci/gui/addon-common/websocketd --port=55555 sh' /jci/scripts/stage_wifi.sh)
-if [ "$count" != "0" ]
+if [ $count -ne 0 ]
then
- sed -i '/### Video player/d' /jci/scripts/stage_wifi.sh
- sed -i '/55555/d' /jci/scripts/stage_wifi.sh
+ sed -i '/### Video player/d' /jci/scripts/stage_wifi.sh
+ sed -i '/55555/d' /jci/scripts/stage_wifi.sh
log_message "=== Removed Old Configuration ==="
fi
count=$(grep -c '/jci/gui/addon-common/websocketd --port=9998 sh' /jci/scripts/stage_wifi.sh)
-if [ "$count" = "0" ]
- then
- #echo -e '\n\n\n### Video player' >> /jci/scripts/stage_wifi.sh
- #echo -e '\n/jci/gui/addon-common/websocketd --port=9998 sh &' >> /jci/scripts/stage_wifi.sh
- sed -i '/#!/ a\### Video player' /jci/scripts/stage_wifi.sh
- sleep 1
- sed -i '/Video player/ i\ ' /jci/scripts/stage_wifi.sh
- sed -i '/Video player/ a\/jci/gui/addon-common/websocketd --port=9998 sh &' /jci/scripts/stage_wifi.sh
- chmod 755 /jci/scripts/stage_wifi.sh
- log_message "=== Modified Stage_wifi.sh ==="
+if [ $count -eq 0 ]
+then
+ #echo -e '\n\n\n### Video player' >> /jci/scripts/stage_wifi.sh
+ #echo -e '\n/jci/gui/addon-common/websocketd --port=9998 sh &' >> /jci/scripts/stage_wifi.sh
+ sed -i '/#!/ a\### Video player' /jci/scripts/stage_wifi.sh
+ sleep 1
+ sed -i '/Video player/ i\ ' /jci/scripts/stage_wifi.sh
+ sed -i '/Video player/ a\/jci/gui/addon-common/websocketd --port=9998 sh &' /jci/scripts/stage_wifi.sh
+ chmod 755 /jci/scripts/stage_wifi.sh
+ log_message "=== Modified Stage_wifi.sh ==="
fi
cp -a ${MYDIR}/config/videoplayer/jci/gui/apps/* /jci/gui/apps/
@@ -82,10 +83,10 @@ log_message "=== Copy libs to usr/lib/gstreamer-0.10
count=$(grep -c '/imx-mm/video-codec' /etc/profile)
-if [ "$count" = "0" ]
- then
- sed -i 's/\/imx-mm\/parser/\/imx-mm\/parser:\/usr\/lib\/imx-mm\/video-codec/g' /etc/profile
- log_message "=== Fix exports / codecs ==="
+if [ $count -eq 0 ]
+then
+ sed -i 's/\/imx-mm\/parser/\/imx-mm\/parser:\/usr\/lib\/imx-mm\/video-codec/g' /etc/profile
+ log_message "=== Fix exports / codecs ==="
fi
export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/usr/lib/imx-mm/video-codec
diff --git a/app/files/tweaks/17_videoplayer-u.txt b/app/files/tweaks/17_videoplayer-u.txt
index ae8516e..fb64afd 100644
--- a/app/files/tweaks/17_videoplayer-u.txt
+++ b/app/files/tweaks/17_videoplayer-u.txt
@@ -5,7 +5,7 @@ log_message "===========************ UNINSTALL VIDEOPLAYER ... ************====
### kills all WebSocket daemons
pkill websocketd
-if [ "${TESTBKUPS}" = "1" ]
+if [ $TESTBKUPS -eq 1 ]
then
cp /jci/scripts/stage_wifi.sh "${MYDIR}/bakups/test/stage_wifi_videoplayer-before.sh"
cp /jci/opera/opera_dir/userjs/additionalApps.json "${MYDIR}/bakups/test/additionalApps_videoplayer-1._before.json"
@@ -56,7 +56,7 @@ then
log_message "=== Found mzd meter entry in additionalApps.json ==="
ADDIT_APPS=1
fi
-if [ ${ADDIT_APPS} = "0" ]
+if [ $ADDIT_APPS -eq 0 ]
then
log_message "=== No more entrys in additionalApps.json, files will be deleted ==="
rm -f /jci/opera/opera_dir/userjs/additionalApps.*
@@ -82,7 +82,7 @@ rm -f /jci/scripts/get-vehicle-gear*
rm -f /jci/scripts/get-vehicle-speed*
rm -f /jci/scripts/stage_wifi.sh.bak?
-if [ "${TESTBKUPS}" = "1" ]
+if [ $TESTBKUPS -eq 1 ]
then
cp /jci/scripts/stage_wifi.sh "${MYDIR}/bakups/test/stage_wifi_videoplayer-after.sh"
fi
diff --git a/app/files/tweaks/18_swapfile-u.txt b/app/files/tweaks/18_swapfile-u.txt
index 8e61cd9..60759e4 100644
--- a/app/files/tweaks/18_swapfile-u.txt
+++ b/app/files/tweaks/18_swapfile-u.txt
@@ -1,7 +1,7 @@
# Remove swap file
show_message "REMOVE SWAP FILE ..."
log_message "==========*********** UNINSTALL SWAP FILE ... ***********=========="
-if [ "${TESTBKUPS}" = "1" ]
+if [ $TESTBKUPS -eq 1 ]
then
cp /jci/scripts/stage_wifi.sh "${MYDIR}/bakups/test/stage_wifi_swap-before.sh"
fi
@@ -19,7 +19,7 @@ sed -i '/ fi/d' /jci/scripts/stage_wifi.sh
sed -i '/ done/d' /jci/scripts/stage_wifi.sh
sleep 2
log_message "=== Deleted modifications from /jci/scripts/stage_wifi.sh ==="
-if [ "${TESTBKUPS}" = "1" ]
+if [ $TESTBKUPS -eq 1 ]
then
cp /jci/scripts/stage_wifi.sh "${MYDIR}/bakups/test/stage_wifi_swap-after.sh"
fi
diff --git a/app/files/tweaks/19_speedo-i1.txt b/app/files/tweaks/19_speedo-i1.txt
index 470d5c6..2cf3936 100644
--- a/app/files/tweaks/19_speedo-i1.txt
+++ b/app/files/tweaks/19_speedo-i1.txt
@@ -1,9 +1,9 @@
# Speedometer v4.8
-show_message "INSTALL SPEEDOMETER v5.1 ..."
+show_message "INSTALL SPEEDOMETER v${SPD_VER} ..."
log_message "==========**************** INSTALL SPEEDOMETER *****************========="
log_message "=== Begin Installation of Speedometer ==="
-if [ "${TESTBKUPS}" = "1" ]
+if [ $TESTBKUPS -eq 1 ]
then
cp /jci/scripts/stage_wifi.sh "${MYDIR}/bakups/test/stage_wifi_speedometer-before.sh"
cp /jci/opera/opera_dir/userjs/additionalApps.json "${MYDIR}/bakups/test/additionalApps_speedometer-1._before.json"
@@ -16,7 +16,7 @@ pkill websocketd
if [ -e /jci/gui/apps/_speedometer/js/speedometer-config.js ]
then
cp -a /jci/gui/apps/_speedometer/js/speedometer-config.js /tmp/root
- log_message "=== Save Temporary Copy of speedometer-config.js ==="
+ log_message "=== Save Temporary Copy of speedometer-config.js ==="
fi
### cleanup old versions
@@ -77,6 +77,18 @@ log_message "=== Copied folder /jci/gui/apps/_speedometer
find /jci/gui/apps/_*/ -type f -name '*.js' -exec chmod 755 {} \;
find /jci/gui/apps/_*/ -type f -name '*.sh' -exec chmod 755 {} \;
+if [ -e ${MYDIR}/config/speedometer/speedometer-config.js ]
+then
+ cp -a ${MYDIR}/config/speedometer/speedometer-config.js /jci/gui/apps/_speedometer/js
+ log_message "=== Copied Speedometer Config File ==="
+elif [ -e /tmp/root/speedometer-config.js ]
+then
+ cp -a /tmp/root/speedometer-config.js /jci/gui/apps/_speedometer/js
+ log_message "=== Reuse Previous Speedometer Config File ==="
+else
+ log_message "=== NO 'speedometer-config.js' FILE FOUND... USING DEFAULT ==="
+fi
+
if [ ! -e /jci/gui/addon-common/websocketd ] || [ ! -e /jci/gui/addon-common/cufon-yui.js ]; then
cp -a "${MYDIR}/config/jci/gui/addon-common/" /jci/gui/
chmod 755 /jci/gui/addon-common/websocketd
@@ -138,12 +150,12 @@ then
fi
# change compass rotating depending on NAV SD card inside or not
-if [ ! -d /mnt/sd_nav/content/speedcam ] || [ ${COMPAT_GROUP} -ne 1 ]
+if [ ! -d /mnt/sd_nav/content/speedcam ] || [ $COMPAT_GROUP -ne 1 ]
then
sed -i 's/var noNavSD = false;/var noNavSD = true;/g' /jci/gui/apps/_speedometer/js/speedometer-startup.js
log_message "=== Changed compass rotating, because no NAV SD card is inside ==="
fi
-if [ ${SPEEDCOLOR} != 0 ]
+if [ "${SPEEDCOLOR}" != "0" ]
then
rm -f /jci/gui/common/images/*.aio
touch /jci/gui/common/images/${SPEEDCOLOR}.aio
diff --git a/app/files/tweaks/19_speedo-i2.txt b/app/files/tweaks/19_speedo-i2.txt
index d298efa..a07fa6f 100644
--- a/app/files/tweaks/19_speedo-i2.txt
+++ b/app/files/tweaks/19_speedo-i2.txt
@@ -1,4 +1,4 @@
-if [ ${TESTBKUPS} = "1" ]
+if [ $TESTBKUPS -eq 1 ]
then
cp -a /jci/gui/apps/_speedometer/js/speedometer-startup.js ${MYDIR}/bakups/test/
cp -a /jci/scripts/stage_wifi.sh ${MYDIR}/bakups/test/stage_wifi-after_speedo.sh
diff --git a/app/files/tweaks/19_speedo-own_background.txt b/app/files/tweaks/19_speedo-own_background.txt
index 0efcc92..cd853ac 100644
--- a/app/files/tweaks/19_speedo-own_background.txt
+++ b/app/files/tweaks/19_speedo-own_background.txt
@@ -1,7 +1,7 @@
# own background
# show_message "SET BACKGROUND OPACITY TO ${OPACITY}"
log_message "=== Set background opacity to ${OPACITY} ==="
-if [ ! ${OPACITY} = 0 ]
+if [ "${OPACITY}" != "0" ]
then
sed -i "s/var black_background_opacity = 0.0;/var black_background_opacity = ${OPACITY};/g" /jci/gui/apps/_speedometer/js/speedometer-startup.js
fi
diff --git a/app/files/tweaks/19_speedo-u.txt b/app/files/tweaks/19_speedo-u.txt
index 3958685..f11215d 100644
--- a/app/files/tweaks/19_speedo-u.txt
+++ b/app/files/tweaks/19_speedo-u.txt
@@ -4,7 +4,7 @@ log_message "=======*************** UNINSTALL SPEEDOMETER ... ****************=
log_message "=== kill all WebSocket daemons ==="
pkill websocketd
-if [ "${TESTBKUPS}" = "1" ]
+if [ $TESTBKUPS -eq 1 ]
then
cp /jci/scripts/stage_wifi.sh "${MYDIR}/bakups/test/stage_wifi_speedometer-before.sh"
cp /jci/opera/opera_dir/userjs/additionalApps.json "${MYDIR}/bakups/test/additionalApps_speedometer-1._before.json"
@@ -43,15 +43,15 @@ sed -i '/addon-speedometer.sh &/d' /jci/scripts/stage_wifi.sh
sed -i '/speedometer.sh &/d' /jci/scripts/stage_wifi.sh
sed -i '/addon-player.sh &/d' /jci/scripts/stage_wifi.sh
sed -i '/mount of SD card/d' /jci/scripts/stage_wifi.sh
+sed -i '/umount -l/d' /jci/scripts/stage_wifi.sh
sed -i '/sleep 40/d' /jci/scripts/stage_wifi.sh
sed -i '/sleep 55/d' /jci/scripts/stage_wifi.sh
sed -i '/sleep 50/d' /jci/scripts/stage_wifi.sh
-sed -i '/umount -l/d' /jci/scripts/stage_wifi.sh
sed -i '/sleep 25/d' /jci/scripts/stage_wifi.sh
-sed -i '#mount /dev/sda1#d' /jci/scripts/stage_wifi.sh
-
sed -i '/sleep 4/d' /jci/scripts/stage_wifi.sh
sed -i '/sleep 6/d' /jci/scripts/stage_wifi.sh
+sed -i '/9969/d' /jci/scripts/stage_wifi.sh
+sed -i '/55554/d' /jci/scripts/stage_wifi.sh
ADDIT_APPS=0
if grep -Fq "_aiotweaks" /jci/opera/opera_dir/userjs/additionalApps.json
@@ -71,7 +71,7 @@ then
log_message "=== Found mzd meter entry in additionalApps.json ==="
ADDIT_APPS=1
fi
-if [ ${ADDIT_APPS} = "0" ]
+if [ $ADDIT_APPS -eq 0 ]
then
log_message "=== No more entrys in additionalApps.json, files will be deleted ==="
rm -f /jci/opera/opera_dir/userjs/additionalApps.*
@@ -109,7 +109,7 @@ rm -f /jci/scripts/get-engine-speed.sh
rm -f /jci/scripts/get-gear-position.sh
rm -f /jci/scripts/get-temp.sh
-if [ "${TESTBKUPS}" = "1" ]
+if [ $TESTBKUPS -eq 1 ]
then
cp /jci/scripts/stage_wifi.sh "${MYDIR}/bakups/test/stage_wifi_speedometer-after.sh"
fi
diff --git a/app/files/tweaks/19_speedo_bar.txt b/app/files/tweaks/19_speedo_bar.txt
index a2c97d3..2324d28 100644
--- a/app/files/tweaks/19_speedo_bar.txt
+++ b/app/files/tweaks/19_speedo_bar.txt
@@ -1,24 +1,5 @@
-# Speedometer v5.0
-show_message "INSTALL DIGITAL BAR SPEEDOMETER VARIANT ..."
-log_message "=========********** INSTALL DIGITAL BAR SPEEDOMETER ************========="
-
-cp -a ${MYDIR}/config/speedometer_bar/jci /
-log_message "=== Speedometer Bar Variant Installed ==="
-
-sed -i 's/var barSpeedometerMod = false;/var barSpeedometerMod = true;/g' /jci/gui/apps/_speedometer/js/speedometer-startup.js
+# Set the Bar Speedometer flag
+sed -i 's/var barSpeedometerMod = false;/var barSpeedometerMod = true;/g' /jci/gui/apps/_speedometer/js/speedometer-startup.js
log_message "=== Set flag for bar speedometer in speedometer-startup.js ==="
-if [ -e ${MYDIR}/config/speedometer_bar/speedometer-config.js ]
-then
- cp -a ${MYDIR}/config/speedometer_bar/speedometer-config.js /jci/gui/apps/_speedometer/js
- log_message "=== Copied Speedometer Config File ==="
-elif [ -e /tmp/root/speedometer-config.js ]
-then
- cp -a /tmp/root/speedometer-config.js /jci/gui/apps/_speedometer/js
- log_message "=== Reuse Previous Speedometer Config File ==="
-else
- log_message "=== NO 'speedometer-config.js' FILE FOUND... USING DEFAULT ==="
-fi
-
-log_message "=========************ END DIGITAL BAR SPEEDOMETER **************========="
-log_message " "
+chmod -R 755 /jci/gui/apps/_speedometer/
diff --git a/app/files/tweaks/19_speedo_variant-i.txt b/app/files/tweaks/19_speedo_variant-i.txt
index c59ab7b..a4a6d5c 100644
--- a/app/files/tweaks/19_speedo_variant-i.txt
+++ b/app/files/tweaks/19_speedo_variant-i.txt
@@ -1,13 +1,3 @@
-show_message "INSTALL SPEEDOMETER VARIANT"
-log_message "========************* INSTALL SPEEDOMETER VARIANT ... ***********========"
-
-# Copy modded speedo files
-cp -a ${MYDIR}/config/speedometer_mod/jci /
-log_message "=== Speedometer Variant Installed ==="
-
-chmod 755 /jci/fonts/Crysta.ttf
-chmod 755 /jci/fonts/CHN/Crysta.ttf
-chmod 755 /jci/fonts/JP/Crysta.ttf
-
-log_message "=======******** END INSTALLATION OF SPEEDOMETER VARIANT *********========"
-log_message " "
+sed -i 's/var speedMod = false;/var speedMod = true;/g' /jci/gui/apps/_speedometer/js/speedometer-startup.js
+log_message "=== Set flag for speedometer mod in speedometer-startup.js ==="
+chmod -R 755 /jci/fonts
diff --git a/app/files/tweaks/20_date-iv1.txt b/app/files/tweaks/20_date-iv1.txt
index d6e4505..a80bb27 100644
--- a/app/files/tweaks/20_date-iv1.txt
+++ b/app/files/tweaks/20_date-iv1.txt
@@ -71,7 +71,7 @@ then
cp -a /jci/gui/framework/js/Utility.js /jci/gui/framework/js/Utility.js.org
log_message "=== Backup of /jci/gui/framework/js/Utility.js to Utility.js.org ==="
fi
-if [ ${KEEPBKUPS} = "1" ]
+if [ $KEEPBKUPS -eq 1 ]
then
cp -a /jci/gui/common/controls/Sbn/css/SbnCtrl.css.org "${MYDIR}/bakups/"
cp -a /jci/gui/common/controls/StatusBar/css/StatusBarCtrl.css.org "${MYDIR}/bakups/"
@@ -87,7 +87,7 @@ then
aio_info \"Utility.js.org\",
fi
-if [ ${statusbar_copy} = "1" ]
+if [ $statusbar_copy -eq 1 ]
then
cp -a ${MYDIR}/config/date-to-statusbar_mod/jci/gui/common/controls/StatusBar/css/StatusBarCtrl.v1.css /jci/gui/common/controls/StatusBar/css/StatusBarCtrl.css
log_message "=== Copied /jci/gui/common/controls/StatusBar/css/StatusBarCtrl.css ==="
@@ -99,7 +99,7 @@ then
log_message "=== Copied /jci/gui/framework/js/Utility.js ==="
fi
-if [ ${statusbar_copy} = "0" ]
+if [ $statusbar_copy -eq 0 ]
then
log_message "=== date_to_statusbar_mod v1 not compatible to your FW, no installation made! ==="
fi
diff --git a/app/files/tweaks/20_date-iv2.1.txt b/app/files/tweaks/20_date-iv2.1.txt
index 28f2c30..46e4a8e 100644
--- a/app/files/tweaks/20_date-iv2.1.txt
+++ b/app/files/tweaks/20_date-iv2.1.txt
@@ -67,7 +67,7 @@ if [ ! -e /jci/gui/framework/js/Utility.js.org ]
cp -a /jci/gui/framework/js/Utility.js /jci/gui/framework/js/Utility.js.org
log_message "=== Backup of /jci/gui/framework/js/Utility.js to Utility.js.org ==="
fi
-if [ ${KEEPBKUPS} = "1" ]
+if [ $KEEPBKUPS -eq 1 ]
then
cp -a /jci/gui/common/controls/Sbn/css/SbnCtrl.css.org "${MYDIR}/bakups/"
cp -a /jci/gui/common/controls/StatusBar/css/StatusBarCtrl.css.org "${MYDIR}/bakups/"
@@ -82,7 +82,7 @@ then
aio_info \"IcnSbRoaming.png.org\",
aio_info \"Utility.js.org\",
fi
-if [ ${statusbar_copy} = "1" ]
+if [ $statusbar_copy -eq 1 ]
then
cp -a ${MYDIR}/config/date-to-statusbar_mod/jci/gui/common/controls/StatusBar/css/StatusBarCtrl.v2.1.css /jci/gui/common/controls/StatusBar/css/StatusBarCtrl.css
log_message "=== Copied /jci/gui/common/controls/StatusBar/css/StatusBarCtrl.css ==="
@@ -94,7 +94,7 @@ if [ ${statusbar_copy} = "1" ]
log_message "=== Copied /jci/gui/framework/js/Utility.js ==="
fi
-if [ ${statusbar_copy} = "0" ]
+if [ $statusbar_copy -eq 0 ]
then
log_message "=== date_to_statusbar_mod v2.1 not compatible to your FW, no installation made! ==="
fi
diff --git a/app/files/tweaks/20_date-iv2.2.txt b/app/files/tweaks/20_date-iv2.2.txt
index 0a32dd1..2a68c5a 100644
--- a/app/files/tweaks/20_date-iv2.2.txt
+++ b/app/files/tweaks/20_date-iv2.2.txt
@@ -79,7 +79,7 @@ if [ ! -e /jci/gui/framework/js/Utility.js.org ]
cp -a /jci/gui/framework/js/Utility.js /jci/gui/framework/js/Utility.js.org
log_message "=== Backup of /jci/gui/framework/js/Utility.js to Utility.js.org ==="
fi
-if [ ${KEEPBKUPS} = "1" ]
+if [ $KEEPBKUPS -eq 1 ]
then
cp -a /jci/gui/common/controls/Sbn/css/SbnCtrl.css.org "${MYDIR}/bakups/"
cp -a /jci/gui/common/controls/StatusBar/css/StatusBarCtrl.css.org "${MYDIR}/bakups/"
@@ -94,7 +94,7 @@ then
aio_info "IcnSbRoaming.png.org,"
aio_info "Utility.js.org,"
fi
-if [ ${statusbar_copy} = "1" ]
+if [ $statusbar_copy -eq 1 ]
then
cp -a ${MYDIR}/config/date-to-statusbar_mod/jci/gui/common/controls/Sbn/css/SbnCtrl.v2.2.css /jci/gui/common/controls/Sbn/css/SbnCtrl.css
log_message "=== Copied /jci/gui/common/controls/Sbn/css/SbnCtrl.css ==="
@@ -110,7 +110,7 @@ if [ ${statusbar_copy} = "1" ]
log_message "=== Copied /jci/gui/framework/js/Utility.js ==="
fi
-if [ ${statusbar_copy} = "2" ]
+if [ $statusbar_copy -eq 2 ]
then
cp -a ${MYDIR}/config/date-to-statusbar_mod/jci/gui/common/controls/Sbn/css/SbnCtrl.v2.2.${statusbar_copy_file}.css /jci/gui/common/controls/Sbn/css/SbnCtrl.css
log_message "=== Copied /jci/gui/common/controls/Sbn/css/SbnCtrl.css for FW ${CMU_SW_VER} ==="
@@ -126,7 +126,7 @@ if [ ${statusbar_copy} = "2" ]
log_message "=== Copied /jci/gui/framework/js/Utility.js ==="
fi
-if [ ${statusbar_copy} = "0" ]
+if [ $statusbar_copy -eq 0 ]
then
log_message "=== date_to_statusbar_mod v2.2 not compatible to your FW, no installation made! ==="
fi
diff --git a/app/files/tweaks/20_date-iv2.3.txt b/app/files/tweaks/20_date-iv2.3.txt
index e580118..b1306f8 100644
--- a/app/files/tweaks/20_date-iv2.3.txt
+++ b/app/files/tweaks/20_date-iv2.3.txt
@@ -81,7 +81,7 @@ if [ ! -e /jci/gui/framework/js/Utility.js.org ]
cp -a /jci/gui/framework/js/Utility.js /jci/gui/framework/js/Utility.js.org
log_message "=== Backup of /jci/gui/framework/js/Utility.js to Utility.js.org ==="
fi
-if [ ${KEEPBKUPS} = "1" ]
+if [ $KEEPBKUPS -eq 1 ]
then
cp -a /jci/gui/common/controls/Sbn/css/SbnCtrl.css.org "${MYDIR}/bakups/"
cp -a /jci/gui/common/controls/StatusBar/css/StatusBarCtrl.css.org "${MYDIR}/bakups/"
diff --git a/app/files/tweaks/20_date-iv3.3.txt b/app/files/tweaks/20_date-iv3.3.txt
index 6391c66..3ab17be 100644
--- a/app/files/tweaks/20_date-iv3.3.txt
+++ b/app/files/tweaks/20_date-iv3.3.txt
@@ -10,12 +10,12 @@ log_message "=====********* INSTALL DATE_TO_STATUSBAR MOD V3.3 ... ********
STATUSBAR_COPY=0
# Strict Compatability Check
-if [ "${COMPAT_GROUP}" = "1" ]
+if [ $COMPAT_GROUP -eq 1 ]
then
STATUSBAR_COPY=1
log_message "=== FW ${CMU_SW_VER} detected, copy matching files ==="
# This Compatability Check is VERY important for v58+ Copying the wrong file will cause a bootloop
-elif [ "${COMPAT_GROUP}" -gt "1" ]
+elif [ $COMPAT_GROUP -gt 1 ]
then
STATUSBAR_COPY=2
log_message "=== FW ${CMU_SW_VER} detected, copy matching files ==="
@@ -53,7 +53,7 @@ then
cp -a /jci/gui/framework/js/Utility.js /jci/gui/framework/js/Utility.js.org
log_message "=== Backup of /jci/gui/framework/js/Utility.js to Utility.js.org ==="
fi
-if [ "${KEEPBKUPS}" = "1" ]
+if [ $KEEPBKUPS -eq 1 ]
then
cp -a /jci/gui/common/controls/Sbn/css/SbnCtrl.css.org "${MYDIR}/bakups/"
cp -a /jci/gui/common/controls/StatusBar/css/StatusBarCtrl.css.org "${MYDIR}/bakups/"
@@ -142,33 +142,33 @@ cp -a "${MYDIR}/config/date-to-statusbar_mod/jci/gui/common/images/icons/IcnSbRo
log_message "=== Copied /jci/gui/common/images/icons/IcnSbRoaming.png ==="
# Utility.js determines the date format
-if [ "${DATE_FORMAT}" = "2" ]
+if [ $DATE_FORMAT -eq 2 ]
then
# For mm/dd
cp -a "${MYDIR}/config/date-to-statusbar_mod/jci/gui/framework/js/Utility.v2.3.js" /jci/gui/framework/js/Utility.js
log_message "=== Copied /jci/gui/framework/js/Utility.js (Date Format mm/dd) ==="
-elif [ "${DATE_FORMAT}" = "1" ]
+elif [ $DATE_FORMAT -eq 1 ]
then
# For dd.mm.
cp -a "${MYDIR}/config/date-to-statusbar_mod/jci/gui/framework/js/Utility.v2.2.js" /jci/gui/framework/js/Utility.js
log_message "=== Copied /jci/gui/framework/js/Utility.js (Date Format dd.mm.) ==="
-else # if [ "${DATE_FORMAT}" = "0" ]
+else # if [ $DATE_FORMAT -eq 0 ]
# For Localized Date (Fallback)
cp -a "${MYDIR}/config/date-to-statusbar_mod/jci/gui/framework/js/Utility.v2.1.js" /jci/gui/framework/js/Utility.js
log_message "=== Copied /jci/gui/framework/js/Utility.js (Date Format Localized) ==="
fi
# StatusBarCtrl.js is the file that needs to be compatability checked because of minor changes in FW v59+
-if [ ${STATUSBAR_COPY} = "1" ]
+if [ $STATUSBAR_COPY -eq 1 ]
then
cp -a "${MYDIR}/config/date-to-statusbar_mod/jci/gui/common/controls/StatusBar/js/StatusBarCtrl.v2.2.js" /jci/gui/common/controls/StatusBar/js/StatusBarCtrl.js
log_message "=== Copied /jci/gui/common/controls/StatusBar/js/StatusBarCtrl.js ==="
-elif [ ${STATUSBAR_COPY} = "2" ]
+elif [ $STATUSBAR_COPY -eq 2 ]
then
cp -a "${MYDIR}/config/date-to-statusbar_mod/jci/gui/common/controls/StatusBar/js/StatusBarCtrl.v2.2.v59.js" /jci/gui/common/controls/StatusBar/js/StatusBarCtrl.js
log_message "=== Copied StatusBarCtrl.js for FW ${CMU_SW_VER} ==="
# All known FW versions should pass the compatability check
-else # if [ ${STATUSBAR_COPY} = "0" ]
+else # if [ $STATUSBAR_COPY -eq 0 ]
log_message "***** date_to_statusbar_mod v3.3 not compatible to your FW, no installation made! ******"
log_message "*********** Please email your FW version:${CMU_SW_VER} to aio@mazdatweaks.com **********"
fi
diff --git a/app/files/tweaks/20_mainmenu-i.txt b/app/files/tweaks/20_mainmenu-i.txt
index 624d3b4..91e3e54 100644
--- a/app/files/tweaks/20_mainmenu-i.txt
+++ b/app/files/tweaks/20_mainmenu-i.txt
@@ -9,12 +9,12 @@ then
cp -a /jci/gui/apps/system/controls/MainMenu/css/MainMenuCtrl.css /jci/gui/apps/system/controls/MainMenu/css/MainMenuCtrl.css.org
log_message "=== Bakup /jci/gui/apps/system/controls/MainMenu/css/MainMenuCtrl.css ==="
fi
-if [ ${KEEPBKUPS} = "1" ]
+if [ $KEEPBKUPS -eq 1 ]
then
cp -a /jci/gui/apps/system/controls/MainMenu/css/MainMenuCtrl.css.org "${MYDIR}/bakups/"
aio_info \"MainMenuCtrl.css.org\",
fi
-if [ ${TESTBKUPS} = "1" ]
+if [ $TESTBKUPS -eq 1 ]
then
cp -a /jci/gui/apps/system/controls/MainMenu/css/MainMenuCtrl.css "${MYDIR}/bakups/test/MainMenuCtrl_before.css"
fi
@@ -23,7 +23,7 @@ remove_aio_css /jci/gui/apps/system/controls/MainMenu/css/MainMenuCtrl.css MAINM
echo "/* MZD-AIO-TI MAINMENU CSS */" >> /jci/gui/apps/system/controls/MainMenu/css/MainMenuCtrl.css
-if [ ${UI_STYLE_ELLIPSE} = "1" ]
+if [ $UI_STYLE_ELLIPSE -eq 1 ]
then
cat <> /jci/gui/apps/system/controls/MainMenu/css/MainMenuCtrl.css
/* Main Menu Ellipse */
@@ -33,24 +33,24 @@ then
EOT
log_message "=== Removed Main Menu Ellipse ==="
fi
-if [ "${UI_STYLE_ALTLAYOUT}" = "1" ]
+if [ $UI_STYLE_ALTLAYOUT -eq 1 ]
then
cat "${MYDIR}/config/MainMenuTweaks/StarA.css" >> /jci/gui/apps/system/controls/MainMenu/css/MainMenuCtrl.css
log_message "=== Added CSS for Alternative Main Menu (Star Points) ==="
-elif [ "${UI_STYLE_ALTLAYOUT}" = "2" ]
+elif [ $UI_STYLE_ALTLAYOUT -eq 2 ]
then
cat "${MYDIR}/config/MainMenuTweaks/StarB.css" >> /jci/gui/apps/system/controls/MainMenu/css/MainMenuCtrl.css
log_message "=== Added CSS for Alternative Main Menu (Star Points) ==="
-elif [ "${UI_STYLE_ALTLAYOUT}" = "3" ]
+elif [ $UI_STYLE_ALTLAYOUT -eq 3 ]
then
cat "${MYDIR}/config/MainMenuTweaks/Inverted.css" >> /jci/gui/apps/system/controls/MainMenu/css/MainMenuCtrl.css
log_message "=== Added CSS for Alternative Main Menu (Inverted) ==="
-elif [ "${UI_STYLE_ALTLAYOUT}" = "4" ]
+elif [ $UI_STYLE_ALTLAYOUT -eq 4 ]
then
cat "${MYDIR}/config/MainMenuTweaks/FlatLine.css" >> /jci/gui/apps/system/controls/MainMenu/css/MainMenuCtrl.css
log_message "=== Added CSS for Alternative Main Menu (Flatline) ==="
fi
-if [ ${UI_STYLE_MINICOINS} = "1" ]
+if [ $UI_STYLE_MINICOINS -eq 1 ]
then
cat <> /jci/gui/apps/system/controls/MainMenu/css/MainMenuCtrl.css
/* Small Main Menu Coins */
@@ -65,7 +65,7 @@ then
EOT
log_message "=== Added CSS for Small Coins ==="
fi
-if [ ${UI_STYLE_MINIFOCUS} = "1" ]
+if [ $UI_STYLE_MINIFOCUS -eq 1 ]
then
cat <> /jci/gui/apps/system/controls/MainMenu/css/MainMenuCtrl.css
/* Small Main Menu Coins */
@@ -82,16 +82,16 @@ then
background-position: center 75%;
}
EOT
- if [ "${UI_STYLE_ALTLAYOUT}" = "1" ]
+ if [ $UI_STYLE_ALTLAYOUT -eq 1 ]
then
cat "${MYDIR}/config/MainMenuTweaks/StarASmallFocused.css" >> /jci/gui/apps/system/controls/MainMenu/css/MainMenuCtrl.css
- elif [ "${UI_STYLE_ALTLAYOUT}" = "2" ]
+ elif [ $UI_STYLE_ALTLAYOUT -eq 2 ]
then
cat "${MYDIR}/config/MainMenuTweaks/StarBSmallFocused.css" >> /jci/gui/apps/system/controls/MainMenu/css/MainMenuCtrl.css
- elif [ "${UI_STYLE_ALTLAYOUT}" = "3" ]
+ elif [ $UI_STYLE_ALTLAYOUT -eq 3 ]
then
cat "${MYDIR}/config/MainMenuTweaks/InvertedSmallFocused.css" >> /jci/gui/apps/system/controls/MainMenu/css/MainMenuCtrl.css
- elif [ "${UI_STYLE_ALTLAYOUT}" = "4" ]
+ elif [ $UI_STYLE_ALTLAYOUT -eq 4 ]
then
cat "${MYDIR}/config/MainMenuTweaks/FlatLineSmallFocused.css" >> /jci/gui/apps/system/controls/MainMenu/css/MainMenuCtrl.css
else
@@ -99,7 +99,7 @@ EOT
fi
log_message "=== Added CSS for Small Focused Coin ==="
fi
-if [ ${UI_STYLE_MAIN3D} = "1" ]
+if [ $UI_STYLE_MAIN3D -eq 1 ]
then
cat <> /jci/gui/apps/system/controls/MainMenu/css/MainMenuCtrl.css
/* 3D MAIN MENU TEXT! */
@@ -119,7 +119,7 @@ then
}
EOT
log_message "=== Added CSS for 3D Main Menu Label ==="
-elif [ ${UI_STYLE_MAIN3D} = "2" ]
+elif [ $UI_STYLE_MAIN3D -eq 2 ]
then
cat <> /jci/gui/apps/system/controls/MainMenu/css/MainMenuCtrl.css
/* HIDE MAIN MENU TEXT! */
@@ -128,7 +128,7 @@ then
}
EOT
log_message "=== Added CSS for Hide Main Menu Label ==="
-elif [ ${UI_STYLE_MAIN3D} = "3" ]
+elif [ $UI_STYLE_MAIN3D -eq 3 ]
then
cat <> /jci/gui/apps/system/controls/MainMenu/css/MainMenuCtrl.css
/* COLORED MAIN MENU TEXT! */
@@ -136,9 +136,9 @@ then
color: ${UI_STYLE_LABELCOLOR};
}
EOT
- log_message "=== Added CSS for Hide Main Menu Label ==="
+ log_message "=== Added CSS for color Main Menu Label ==="
fi
-if [ ${UI_STYLE_NOGLOW} = "1" ]
+if [ $UI_STYLE_NOGLOW -eq 1 ]
then
cat <> /jci/gui/apps/system/controls/MainMenu/css/MainMenuCtrl.css
/* Remove Coin Glow */
@@ -151,7 +151,7 @@ fi
echo "/* END AIO MAINMENU CSS */" >> /jci/gui/apps/system/controls/MainMenu/css/MainMenuCtrl.css
log_message "=== Modified MainMenuCtrl.css ==="
-if [ ${TESTBKUPS} = "1" ]
+if [ $TESTBKUPS -eq 1 ]
then
cp -a /jci/gui/apps/system/controls/MainMenu/css/MainMenuCtrl.css "${MYDIR}/bakups/test/MainMenuCtrl_after.css"
fi
diff --git a/app/files/tweaks/20_statusbar_tweaks-i.txt b/app/files/tweaks/20_statusbar_tweaks-i.txt
index 416bcda..b87cc16 100644
--- a/app/files/tweaks/20_statusbar_tweaks-i.txt
+++ b/app/files/tweaks/20_statusbar_tweaks-i.txt
@@ -17,7 +17,7 @@ then
cp -a /jci/gui/common/controls/Sbn/css/SbnCtrl.css /jci/gui/common/controls/Sbn/css/SbnCtrl.css.org
log_message "=== Backup of /jci/gui/common/controls/Sbn/css/SbnCtrl.css ==="
fi
-if [ ${KEEPBKUPS} = "1" ]
+if [ $KEEPBKUPS -eq 1 ]
then
if [ ! -e "${MYDIR}/bakups/StatusBarCtrl.css.org" ]
then
diff --git a/app/files/tweaks/20_uistyle-i.txt b/app/files/tweaks/20_uistyle-i.txt
index 16b94df..a8695cf 100644
--- a/app/files/tweaks/20_uistyle-i.txt
+++ b/app/files/tweaks/20_uistyle-i.txt
@@ -14,7 +14,7 @@ then
cp -a /jci/gui/common/controls/NowPlaying4/css/NowPlaying4Ctrl.css /jci/gui/common/controls/NowPlaying4/css/NowPlaying4Ctrl.css.org
log_message "=== Backup NowPlaying4Ctrl.css ==="
fi
-if [ ${KEEPBKUPS} = "1" ]
+if [ $KEEPBKUPS -eq 1 ]
then
cp -a /jci/gui/common/controls/List2/css/List2Ctrl.css.org "${MYDIR}/bakups/"
cp -a /jci/gui/common/controls/NowPlaying4/css/NowPlaying4Ctrl.css.org "${MYDIR}/bakups/"
@@ -22,7 +22,7 @@ then
aio_info \"List2Ctrl.css.org\",
aio_info \"MainMenuCtrl.css.org\",
fi
-if [ ${TESTBKUPS} = "1" ]
+if [ $TESTBKUPS -eq 1 ]
then
cp -a /jci/gui/common/controls/List2/css/List2Ctrl.css "${MYDIR}/bakups/test/List2Ctrl_before.css"
cp -a /jci/gui/common/controls/NowPlaying4/css/NowPlaying4Ctrl.css "${MYDIR}/bakups/test/NowPlaying4Ctrl_before.css"
@@ -76,7 +76,14 @@ body {
}
/* END AIO UISTYLE CSS */
EOT
-if [ ${TESTBKUPS} = "1" ]
+# Remove ivalid CSS
+if grep -Fq "o-animation" /jci/gui/common/controls/List2/css/List2Ctrl.css && grep -Fq "webkit-animation" /jci/gui/common/controls/List2/css/List2Ctrl.css
+then
+ sed -i '/-o-animation/d' /jci/gui/common/controls/List2/css/List2Ctrl.css
+ sed -i '/-webkit-animation/d' /jci/gui/common/controls/List2/css/List2Ctrl.css
+ log_message "=== Removed Obsolete CSS ==="
+fi
+if [ $TESTBKUPS -eq 1 ]
then
cp -a /jci/gui/common/controls/List2/css/List2Ctrl.css "${MYDIR}/bakups/test/List2Ctrl_after.css"
cp -a /jci/gui/common/controls/NowPlaying4/css/NowPlaying4Ctrl.css "${MYDIR}/bakups/test/NowPlaying4Ctrl_after.css"
diff --git a/app/files/tweaks/22_fuel-i.txt b/app/files/tweaks/22_fuel-i.txt
index 41e0162..6e57372 100644
--- a/app/files/tweaks/22_fuel-i.txt
+++ b/app/files/tweaks/22_fuel-i.txt
@@ -2,7 +2,7 @@
show_message "INSTALL FUEL CONSUMPTION TWEAK ..."
log_message "=======************ INSTALL FUEL CONSUMPTION TWEAK ... **********======="
-if [ "${TESTBKUPS}" = "1" ]
+if [ $TESTBKUPS -eq 1 ]
then
cp /jci/gui/apps/ecoenergy/controls/FuelConsumption/css/FuelConsumptionCtrl.css "${MYDIR}/bakups/test/FuelConsumptionCtrl-before.css"
cp /jci/gui/apps/ecoenergy/controls/FuelConsumption/js/FuelConsumptionCtrl.js "${MYDIR}/bakups/test/FuelConsumptionCtrl-before.js"
@@ -30,9 +30,9 @@ cp -a "${MYDIR}/config/FuelConsumptionTweak/jci/gui/apps/ecoenergy/controls/Fuel
log_message "=== Copied images/FuelConsBG.png ==="
cp -a "${MYDIR}/config/FuelConsumptionTweak/jci/gui/apps/ecoenergy/controls/FuelConsumption/js/FuelConsumptionCtrl.js" /jci/gui/apps/ecoenergy/controls/FuelConsumption/js/
log_message "=== Copied js/FuelConsumptionCtrl.js ==="
-if [ "${TESTBKUPS}" = "1" ]
+if [ $TESTBKUPS -eq 1 ]
then
- cp /jci/gui/apps/ecoenergy/controls/FuelConsumption/css/FuelConsumptionCtrl.css" ${MYDIR}/bakups/test/FuelConsumptionCtrl-after.css"
+ cp /jci/gui/apps/ecoenergy/controls/FuelConsumption/css/FuelConsumptionCtrl.css "${MYDIR}/bakups/test/FuelConsumptionCtrl-after.css"
cp /jci/gui/apps/ecoenergy/controls/FuelConsumption/js/FuelConsumptionCtrl.js "${MYDIR}/bakups/test/FuelConsumptionCtrl-after.js"
fi
diff --git a/app/files/tweaks/22_fuel-u.txt b/app/files/tweaks/22_fuel-u.txt
index 74a92ad..4266d61 100644
--- a/app/files/tweaks/22_fuel-u.txt
+++ b/app/files/tweaks/22_fuel-u.txt
@@ -2,7 +2,7 @@
show_message "REMOVE FUEL CONSUMPTION TWEAK ..."
log_message "===========****** UNINSTALL FUEL CONSUMPTION TWEAK ... *******=========="
-if [ "${TESTBKUPS}" = "1" ]
+if [ $TESTBKUPS -eq 1 ]
then
cp /jci/gui/apps/ecoenergy/controls/FuelConsumption/css/FuelConsumptionCtrl.css "${MYDIR}/bakups/test/FuelConsumptionCtrl-before.css"
cp /jci/gui/apps/ecoenergy/controls/FuelConsumption/js/FuelConsumptionCtrl.js "${MYDIR}/bakups/test/FuelConsumptionCtrl-before.js"
@@ -35,7 +35,7 @@ else
# log_message "=== No backup found, copied original FuelConsumptionCtrl.js from SD card ==="
log_message "=== No backup found, FuelConsumptionCtrl.js was not changed ==="
fi
-if [ "${TESTBKUPS}" = "1" ]
+if [ $TESTBKUPS -eq 1 ]
then
cp /jci/gui/apps/ecoenergy/controls/FuelConsumption/css/FuelConsumptionCtrl.css "${MYDIR}/bakups/test/FuelConsumptionCtrl-after.css"
cp /jci/gui/apps/ecoenergy/controls/FuelConsumption/js/FuelConsumptionCtrl.js "${MYDIR}/bakups/test/FuelConsumptionCtrl-after.js"
diff --git a/app/files/tweaks/22_fuelMPG-i.txt b/app/files/tweaks/22_fuelMPG-i.txt
index 36bee14..b6a2054 100644
--- a/app/files/tweaks/22_fuelMPG-i.txt
+++ b/app/files/tweaks/22_fuelMPG-i.txt
@@ -2,7 +2,7 @@
show_message "INSTALL FUEL CONSUMPTION TWEAK ..."
log_message "=======************ INSTALL FUEL CONSUMPTION TWEAK ... **********======="
-if [ "${TESTBKUPS}" = "1" ]
+if [ $TESTBKUPS -eq 1 ]
then
cp /jci/gui/apps/ecoenergy/controls/FuelConsumption/css/FuelConsumptionCtrl.css "${MYDIR}/bakups/test/FuelConsumptionCtrl-before.css"
cp /jci/gui/apps/ecoenergy/controls/FuelConsumption/js/FuelConsumptionCtrl.js "${MYDIR}/bakups/test/FuelConsumptionCtrl-before.js"
@@ -30,9 +30,9 @@ cp -a "${MYDIR}/config/FuelConsumptionTweak/jci/gui/apps/ecoenergy/controls/Fuel
log_message "=== Copied images/FuelConsBG.png ==="
cp -a "${MYDIR}/config/FuelConsumptionTweak/jci/gui/apps/ecoenergy/controls/FuelConsumption/js/FuelConsumptionCtrl.MPG.js" /jci/gui/apps/ecoenergy/controls/FuelConsumption/js/FuelConsumptionCtrl.js
log_message "=== Copied js/FuelConsumptionCtrl.js ==="
-if [ "${TESTBKUPS}" = "1" ]
+if [ $TESTBKUPS -eq 1 ]
then
- cp /jci/gui/apps/ecoenergy/controls/FuelConsumption/css/FuelConsumptionCtrl.css" ${MYDIR}/bakups/test/FuelConsumptionCtrl-after.css"
+ cp /jci/gui/apps/ecoenergy/controls/FuelConsumption/css/FuelConsumptionCtrl.css "${MYDIR}/bakups/test/FuelConsumptionCtrl-after.css"
cp /jci/gui/apps/ecoenergy/controls/FuelConsumption/js/FuelConsumptionCtrl.js "${MYDIR}/bakups/test/FuelConsumptionCtrl-after.js"
fi
diff --git a/app/files/tweaks/24_castscreen-i.txt b/app/files/tweaks/24_castscreen-i.txt
index cc4f9f5..2206b1e 100644
--- a/app/files/tweaks/24_castscreen-i.txt
+++ b/app/files/tweaks/24_castscreen-i.txt
@@ -13,7 +13,7 @@ chmod 755 /jci/scripts/cs_receiver_arm
chmod 755 /jci/scripts/mirroring.sh
chmod 755 /jci/scripts/adb
chmod 755 /usr/bin/adb
-if [ "${TESTBKUPS}" = "1" ]
+if [ $TESTBKUPS -eq 1 ]
then
cp /jci/scripts/stage_wifi.sh ${MYDIR}/bakups/test/stage_wifi_castscreen-before.sh
fi
@@ -32,7 +32,7 @@ then
sed -i '/Castscreen receiver/ i\ ' /jci/scripts/stage_wifi.sh
sed -i '/Castscreen receiver/ a\watch /jci/scripts/mirroring.sh &' /jci/scripts/stage_wifi.sh
log_message "=== Castscreen Receiver added to stage_wifi.sh ==="
- if [ "${TESTBKUPS}" = "1" ]
+ if [ $TESTBKUPS -eq 1 ]
then
cp /jci/scripts/stage_wifi.sh ${MYDIR}/bakups/test/stage_wifi_castscreen-after.sh
fi
diff --git a/app/files/tweaks/24_castscreen-u.txt b/app/files/tweaks/24_castscreen-u.txt
index b4fd5ee..2fe3940 100644
--- a/app/files/tweaks/24_castscreen-u.txt
+++ b/app/files/tweaks/24_castscreen-u.txt
@@ -2,7 +2,7 @@
show_message "REMOVE CASTSCREEN-RECEIVER ..."
log_message "=====************* UNINSTALL CASTSCREEN-RECEIVER ... ************====="
-if [ "${TESTBKUPS}" = "1" ]
+if [ $TESTBKUPS -eq 1 ]
then
cp /jci/scripts/stage_wifi.sh "${MYDIR}/bakups/test/stage_wifi_castscreen-before.sh"
fi
@@ -16,7 +16,7 @@ rm -f /jci/scripts/stage_wifi.sh.org2
sed -i '/Castscreen/d' /jci/scripts/stage_wifi.sh
sed -i '/mirroring.sh/d' /jci/scripts/stage_wifi.sh
-if [ "${TESTBKUPS}" = "1" ]
+if [ $TESTBKUPS -eq 1 ]
then
cp /jci/scripts/stage_wifi.sh "${MYDIR}/bakups/test/stage_wifi_castscreen-after.sh"
fi
diff --git a/app/files/tweaks/25_androidauto-i.txt b/app/files/tweaks/25_androidauto-i.txt
index 6031f9c..cb9ac86 100644
--- a/app/files/tweaks/25_androidauto-i.txt
+++ b/app/files/tweaks/25_androidauto-i.txt
@@ -1,9 +1,8 @@
# Install Android Auto Headunit App
-show_message "INSTALL ANDROID AUTO HEADUNIT APP ..."
-log_message "====************ INSTALL ANDROID AUTO HEADUNIT APP v1.08...*********===="
-log_message "=== Begin Installation Of Android Auto Headunit App ==="
+show_message "INSTALL ANDROID AUTO HEADUNIT APP v${AA_VER} ..."
+log_message "====************ INSTALL ANDROID AUTO HEADUNIT APP v${AA_VER}...*********===="
TESTBKUPS=1
-if [ "${TESTBKUPS}" = "1" ]
+if [ $TESTBKUPS -eq 1 ]
then
cp /jci/scripts/stage_wifi.sh "${MYDIR}/bakups/test/stage_wifi_androidauto-before.sh"
cp /jci/opera/opera_dir/userjs/additionalApps.json "${MYDIR}/bakups/test/additionalApps_androidauto-1_before.json"
@@ -106,7 +105,7 @@ if [ $SOUND_X -eq 1 ]; then
fi
fi
-if [ "${TESTBKUPS}" = "1" ]
+if [ $TESTBKUPS -eq 1 ]
then
cp -a /jci/scripts/stage_wifi.sh ${MYDIR}/bakups/test/stage_wifi_androidauto-after.sh
cp -a /jci/opera/opera_dir/userjs/additionalApps.json "${MYDIR}/bakups/test/additionalApps_after-AA.json"
diff --git a/app/files/tweaks/25_androidauto-u.txt b/app/files/tweaks/25_androidauto-u.txt
index 41c9f10..47fd44e 100644
--- a/app/files/tweaks/25_androidauto-u.txt
+++ b/app/files/tweaks/25_androidauto-u.txt
@@ -6,7 +6,7 @@ log_message "========******** UNINSTALL ANDROID AUTO HEADUNIT APP ... *******==
killall -q -9 headunit
pkill websocketd
-if [ "${TESTBKUPS}" = "1" ]
+if [ $TESTBKUPS -eq 1 ]
then
cp /jci/scripts/stage_wifi.sh "${MYDIR}/bakups/test/stage_wifi_androidauto-before.sh"
cp /jci/opera/opera_dir/userjs/additionalApps.json "${MYDIR}/bakups/test/additionalApps_androidauto-1._before.json"
@@ -25,17 +25,18 @@ rm -f /tmp/mnt/data/input_filter
#rm -f /usr/lib/gstreamer-0.10/libgsth264parse.so
log_message "=== Removed files for Android Auto Headunit App ==="
-if [ -e /usr/lib/gstreamer-0.10/libgstalsa.so.org ]
-then
+#if [ -e /usr/lib/gstreamer-0.10/libgstalsa.so.org ]
+#then
#rm -f /usr/lib/gstreamer-0.10/libgstalsa.so
- log_message "=== Original libgstalsa.so is available as backup ==="
+ #log_message "=== Original libgstalsa.so is available as backup ==="
#mv /usr/lib/gstreamer-0.10/libgstalsa.so.org /usr/lib/gstreamer-0.10/libgstalsa.so
- /bin/fsync /usr/lib/gstreamer-0.10/libgstalsa.so
-else
- log_message "=== No backup found. Copying fallback of libgstalsa.so ==="
+ #/bin/fsync /usr/lib/gstreamer-0.10/libgstalsa.so
+#else
+ #log_message "=== No backup found. Copying fallback of libgstalsa.so ==="
# cp -a ${MYDIR}/config_org/androidauto/usr/lib/gstreamer-0.10/libgstalsa.so /usr/lib/gstreamer-0.10/
# chmod 755 /usr/lib/gstreamer-0.10/libgstalsa.so
-fi
+#fi
+
# delete Android Auto entry from /jci/opera/opera_dir/userjs/additionalApps.json
ADDIT_APPS=0
if grep -Fq "_aiotweaks" /jci/opera/opera_dir/userjs/additionalApps.json
@@ -55,7 +56,7 @@ then
log_message "=== Found mzd meter entry in additionalApps.json ==="
ADDIT_APPS=1
fi
-if [ ${ADDIT_APPS} = "0" ]
+if [ $ADDIT_APPS -eq 0 ]
then
log_message "=== No more entrys in additionalApps.json, files will be deleted ==="
rm -f /jci/opera/opera_dir/userjs/additionalApps.*
@@ -86,7 +87,7 @@ fi
rm -f /jci/scripts/stage_wifi.sh.org3
rm -f /jci/scripts/stage_wifi.sh.AA
-if [ "${TESTBKUPS}" = "1" ]
+if [ $TESTBKUPS -eq 1 ]
then
cp /jci/scripts/stage_wifi.sh "${MYDIR}/bakups/test/stage_wifi_androidauto-after.sh"
cp /jci/sm/sm.conf "${MYDIR}/bakups/test/sm_androidauto-after.conf"
diff --git a/app/files/tweaks/26_usbaudiomod-i.txt b/app/files/tweaks/26_usbaudiomod-i.txt
index ee74c40..3dcf188 100644
--- a/app/files/tweaks/26_usbaudiomod-i.txt
+++ b/app/files/tweaks/26_usbaudiomod-i.txt
@@ -2,7 +2,7 @@
show_message "INSTALL USB AUDIO MOD ..."
log_message "======************* INSTALL USB AUDIO MOD ... ***********======="
-if [ "${TESTBKUPS}" = "1" ]
+if [ $TESTBKUPS -eq 1 ]
then
cp /jci/gui/common/controls/NowPlaying4/js/NowPlaying4Ctrl.js "${MYDIR}/bakups/test/"
cp /jci/gui/common/controls/NowPlaying4/css/NowPlaying4Ctrl.css "${MYDIR}/bakups/test/"
@@ -24,13 +24,13 @@ then
cp -a /jci/gui/apps/usbaudio/js/usbaudioApp.js /jci/gui/apps/usbaudio/js/usbaudioApp.js.org
log_message "=== Backup of /jci/gui/apps/usbaudio/js/usbaudioApp.js ==="
fi
-if [ "${KEEPBKUPS}" = "1" ]
+if [ $KEEPBKUPS -eq 1 ]
then
cp /jci/gui/common/controls/NowPlaying4/js/NowPlaying4Ctrl.js.org "${MYDIR}/bakups/"
cp /jci/gui/common/controls/NowPlaying4/css/NowPlaying4Ctrl.css.org "${MYDIR}/bakups/"
cp /jci/gui/apps/usbaudio/js/usbaudioApp.js.org "${MYDIR}/bakups/"
fi
-if [ ${COMPAT_GROUP} -lt 5 ]
+if [ $COMPAT_GROUP -lt 5 ]
then
cp -a ${MYDIR}/config/USBAudioMod/NowPlaying4Ctrl.js /jci/gui/common/controls/NowPlaying4/js/
log_message "=== Copied NowPlaying4Ctrl.js ==="
diff --git a/app/files/tweaks/26_usbaudiomod-u.txt b/app/files/tweaks/26_usbaudiomod-u.txt
index dde4f28..4ed200f 100644
--- a/app/files/tweaks/26_usbaudiomod-u.txt
+++ b/app/files/tweaks/26_usbaudiomod-u.txt
@@ -21,9 +21,9 @@ rm -f /jci/gui/common/images/icons/IcnUmpUSBMenu_Ds.png
rm -f /jci/gui/common/images/icons/IcnUmpUSBMenu_En.png
log_message "=== Deleted USB icon images ==="
-if [ "${KEEPBKUPS}" = "1" ]
+if [ $KEEPBKUPS -eq 1 ]
then
- cp /jci/gui/common/controls/NowPlaying4/js/NowPlaying4Ctrl.js. "${MYDIR}/bakups/"
+ cp /jci/gui/common/controls/NowPlaying4/js/NowPlaying4Ctrl.js "${MYDIR}/bakups/"
cp /jci/gui/common/controls/NowPlaying4/css/NowPlaying4Ctrl.css "${MYDIR}/bakups/"
cp /jci/gui/apps/usbaudio/js/usbaudioApp.js "${MYDIR}/bakups/"
log_message "=== Copied Backup Files to ${MYDIR}/bakups/ ==="
diff --git a/app/files/tweaks/27_aioapp-i.txt b/app/files/tweaks/27_aioapp-i.txt
index c4bb935..a506a58 100644
--- a/app/files/tweaks/27_aioapp-i.txt
+++ b/app/files/tweaks/27_aioapp-i.txt
@@ -1,11 +1,11 @@
#######################################################################
# AIO Tweaks Headunit App
-# V0.4a By: Trezdog44
+# By: Trezdog44
#######################################################################
-show_message "INSTALLING AIO TWEAKS APP v0.5..."
+show_message "INSTALLING AIO TWEAKS APP v${AIO_TWKS_VER}..."
log_message "=========************ INSTALL AIO TWEAKS APP *************==========="
-if [ "${TESTBKUPS}" = "1" ]
+if [ $TESTBKUPS -eq 1 ]
then
cp /jci/scripts/stage_wifi.sh "${MYDIR}/bakups/test/stage_wifi_aio-before.sh"
cp /jci/opera/opera_dir/userjs/additionalApps.json "${MYDIR}/bakups/test/additionalApps_aio_before.json"
@@ -22,8 +22,9 @@ rm -f /jci/opera/opera_dir/userjs/aio-startup.js
# Copies the additionalApps.js
if [ $CASDK_MODE -eq 0 ]
then
- cp -a ${MYDIR}/config/jci/opera/opera_dir/userjs/additionalApps.js /jci/opera/opera_dir/userjs/ && CASDK_MODE=1
- chmod 755 /jci/opera/opera_dir/userjs/additionalApps.js
+ cp -a ${MYDIR}/config/jci/opera/opera_dir/userjs/additionalApps.js /jci/opera/opera_dir/userjs/ && CASDK_MODE=1
+ chmod 755 /jci/opera/opera_dir/userjs/additionalApps.js
+ chown 1018:3015 /jci/opera/opera_dir/userjs/additionalApps.js
log_message "=== Copied additionalApps.js ==="
fi
@@ -43,7 +44,7 @@ add_app_json "_aiotweaks" "AIO Tweaks" "AIO-startup.js"
if ! grep -q "AIO-startup.js" /jci/opera/opera_dir/userjs/additionalApps.json
then
sed -i 's/"label": "AIO Tweaks" \}/"label": "AIO Tweaks", "preload": "AIO-startup.js" \}/g' /jci/opera/opera_dir/userjs/additionalApps.json
- log_message "=== Added AIO-startup.js to AIO Tweaks json entry ==="
+ log_message "=== Added AIO-startup.js to AIO Tweaks json entry ==="
fi
# Copies the content of the addon-common folder
@@ -78,6 +79,7 @@ chmod 755 -R /tmp/mnt/data_persist/dev/system_restore/
chmod 755 /jci/scripts/jci-fw.sh
chmod 755 /jci/scripts/jci-wifiap.sh
log_message "=== Copied Files For AIO Tweak App ==="
+sed -i "s/var aioTweaksVer = 0;/var aioTweaksVer = ${AIO_TWKS_VER};/g" /jci/gui/apps/_aiotweaks/js/mzd.js
log_message "======********** END INSTALLATION OF AIO TWEAKS APP **************======="
log_message " "
diff --git a/app/files/tweaks/27_aioapp-u.txt b/app/files/tweaks/27_aioapp-u.txt
index 221dd42..de7faac 100644
--- a/app/files/tweaks/27_aioapp-u.txt
+++ b/app/files/tweaks/27_aioapp-u.txt
@@ -4,7 +4,7 @@ log_message "=======************** UNINSTALL AIO TWEAKS APP ... **************=
### kills all WebSocket daemons
pkill websocketd
-if [ "${TESTBKUPS}" = "1" ]
+if [ $TESTBKUPS -eq 1 ]
then
cp /jci/scripts/stage_wifi.sh "${MYDIR}/bakups/test/stage_wifi-aio_before.sh"
cp /jci/opera/opera_dir/userjs/additionalApps.json "${MYDIR}/bakups/test/additionalApps-aio_before.json"
@@ -36,7 +36,7 @@ then
log_message "=== Found mzd meter entry in additionalApps.json ==="
ADDIT_APPS=1
fi
-if [ ${ADDIT_APPS} = "0" ]
+if [ $ADDIT_APPS -eq 0 ]
then
log_message "=== No more entrys in additionalApps.json, files will be deleted ==="
rm -f /jci/opera/opera_dir/userjs/additionalApps.*
@@ -55,7 +55,7 @@ rm -f /jci/opera/opera_dir/userjs/aio-startup.js
rm -fr /tmp/mnt/data_persist/dev/system_restore
log_message "=== Removed AIO Tweaks App files ==="
-if [ "${TESTBKUPS}" = "1" ]
+if [ $TESTBKUPS -eq 1 ]
then
cp /jci/scripts/stage_wifi.sh "${MYDIR}/bakups/test/stage_wifi-aio_after.sh"
if [ -e /jci/opera/opera_dir/userjs/additionalApps.json ]
diff --git a/app/files/tweaks/28_mzdmeter-i.txt b/app/files/tweaks/28_mzdmeter-i.txt
index 027751f..1526dcd 100644
--- a/app/files/tweaks/28_mzdmeter-i.txt
+++ b/app/files/tweaks/28_mzdmeter-i.txt
@@ -4,7 +4,7 @@
show_message "INSTALLING MZD METER ..."
log_message "=========*************** INSTALL MZD METER ***************==========="
-if [ "${TESTBKUPS}" = "1" ]
+if [ $TESTBKUPS -eq 1 ]
then
cp /jci/scripts/stage_wifi.sh "${MYDIR}/bakups/test/stage_wifi_mzd-before.sh"
cp /jci/opera/opera_dir/userjs/additionalApps.json "${MYDIR}/bakups/test/additionalApps_mzd_before.json"
@@ -21,6 +21,7 @@ if [ $CASDK_MODE -eq 0 ]
then
cp -a ${MYDIR}/config/jci/opera/opera_dir/userjs/additionalApps.js /jci/opera/opera_dir/userjs/ && CASDK_MODE=1
chmod 755 /jci/opera/opera_dir/userjs/additionalApps.js
+ chown 1018:3015 /jci/opera/opera_dir/userjs/additionalApps.js
log_message "=== Copied additionalApps.js ==="
fi
diff --git a/app/files/tweaks/28_mzdmeter-u.txt b/app/files/tweaks/28_mzdmeter-u.txt
index f2ed457..206a315 100644
--- a/app/files/tweaks/28_mzdmeter-u.txt
+++ b/app/files/tweaks/28_mzdmeter-u.txt
@@ -4,7 +4,7 @@ log_message "========**************** UNINSTALL MZD METER ... ****************=
### kills all WebSocket daemons
pkill websocketd
-if [ "${TESTBKUPS}" = "1" ]
+if [ $TESTBKUPS -eq 1 ]
then
cp /jci/scripts/stage_wifi.sh "${MYDIR}/bakups/test/stage_wifi_mzd-before.sh"
cp /jci/opera/opera_dir/userjs/additionalApps.json "${MYDIR}/bakups/test/additionalApps_mzd_before.json"
@@ -32,7 +32,7 @@ then
log_message "=== Found aiotweaksapp entry in additionalApps.json ==="
ADDIT_APPS=1
fi
-if [ ${ADDIT_APPS} = "0" ]
+if [ $ADDIT_APPS -eq 0 ]
then
log_message "=== No more entrys in additionalApps.json, files will be deleted ==="
rm -f /jci/opera/opera_dir/userjs/additionalApps.*
@@ -55,7 +55,7 @@ fi
rm -fr /jci/gui/apps/_mzdmeter
rm -fr /paa
-if [ "${TESTBKUPS}" = "1" ]
+if [ $TESTBKUPS -eq 1 ]
then
cp /jci/scripts/stage_wifi.sh "${MYDIR}/bakups/test/stage_wifi_mzd-after.sh"
fi
diff --git a/app/files/tweaks/casdk/apps/app.background/app.css b/app/files/tweaks/casdk/apps/app.background/app.css
index 506da19..ceeaa08 100644
--- a/app/files/tweaks/casdk/apps/app.background/app.css
+++ b/app/files/tweaks/casdk/apps/app.background/app.css
@@ -21,10 +21,10 @@
height:400px;
padding:20px;
border:1px solid gray;
- -webkit-box-sizing:border-box;
- -moz-box-sizing:border-box;
box-sizing:border-box;
background: black;
+ /* -webkit-box-sizing:border-box;
+ -moz-box-sizing:border-box;*/
}
[app="app.background"] .image-slider-wrapper{
overflow: hidden;
diff --git a/app/files/tweaks/casdk/apps/app.devtools/app.js b/app/files/tweaks/casdk/apps/app.devtools/app.js
index d3a010e..372d38c 100644
--- a/app/files/tweaks/casdk/apps/app.devtools/app.js
+++ b/app/files/tweaks/casdk/apps/app.devtools/app.js
@@ -183,7 +183,7 @@ CustomApplicationsHandler.register("app.devtools", new CustomApplication({
},
focused: function() {
-
+
console.log(JSON.stringify(framework._sharedDataAttributes));
},
@@ -305,7 +305,7 @@ CustomApplicationsHandler.register("app.devtools", new CustomApplication({
this.menu.find("span.tab").css("width", tabWidth);
// remove last divider
- this.menu.find("span.divider:last").remove();
+ this.menu.find("span.divider:last-of-type").remove();
},
/**
@@ -364,4 +364,4 @@ CustomApplicationsHandler.register("app.devtools", new CustomApplication({
-}));
\ No newline at end of file
+}));
diff --git a/app/files/tweaks/casdk/apps/app.multidash/app.css b/app/files/tweaks/casdk/apps/app.multidash/app.css
index 38211ac..a914de9 100644
--- a/app/files/tweaks/casdk/apps/app.multidash/app.css
+++ b/app/files/tweaks/casdk/apps/app.multidash/app.css
@@ -8,7 +8,7 @@
* [license]
*/
-@font-face {
+/*@font-face {
font-family: myriadPro;
src: url(fonts/Myriad-Pro_31655.ttf);
}
@@ -19,7 +19,7 @@
@font-face {
font-family: robotoMedium;
src: url(fonts/Roboto-Medium.ttf);
-}
+}*/
[app="app.multidash"] .invisible {
@@ -29,10 +29,6 @@
[app="app.multidash"] {
position: relative;
background-color: #000000;
- -webkit-font-feature-settings: "kern" , "liga" , "pnum";
- font-feature-settings: "kern" , "liga" , "pnum";
- -webkit-font-smoothing: antialiased;
- -moz-osx-font-smoothing: grayscale;
font-family: robotoLight,"Helvetica","Roboto","Arial",sans-serif;
}
@@ -323,7 +319,6 @@
}
[app="app.multidash"] #main-container.theme-black #bottom-con .fuel-icon {
opacity: .6;
- -webkit-filter: invert(100%);
}
[app="app.multidash"] #main-container.theme-yellow #bottom-con .fuel-icon {
opacity: 1;
diff --git a/app/files/tweaks/casdk/apps/app.multidash/app.js b/app/files/tweaks/casdk/apps/app.multidash/app.js
index 323ff06..d50e5cd 100644
--- a/app/files/tweaks/casdk/apps/app.multidash/app.js
+++ b/app/files/tweaks/casdk/apps/app.multidash/app.js
@@ -108,7 +108,7 @@ CustomApplicationsHandler.register("app.multidash", new CustomApplication({
* (statusbarHideHomeButton) hides the home button in the statusbar
*/
- // statusbarHideHomeButton: false,
+ statusbarHideHomeButton: false,
/**
* (hasLeftButton) indicates if the UI left button / return button should be shown
diff --git a/app/files/tweaks/casdk/apps/app.terminal/app.css b/app/files/tweaks/casdk/apps/app.terminal/app.css
index de087b2..f07998f 100644
--- a/app/files/tweaks/casdk/apps/app.terminal/app.css
+++ b/app/files/tweaks/casdk/apps/app.terminal/app.css
@@ -1,25 +1,25 @@
/**
* Custom Applications SDK for Mazda Connect Infotainment System
- *
+ *
* A mini framework that allows to write custom applications for the Mazda Connect Infotainment System
* that includes an easy to use abstraction layer to the JCI system.
*
* Written by Andreas Schwarz (http://github.com/flyandi/mazda-custom-applications-sdk)
* Copyright (c) 2016. All rights reserved.
- *
+ *
* WARNING: The installation of this application requires modifications to your Mazda Connect system.
* If you don't feel comfortable performing these changes, please do not attempt to install this. You might
* be ending up with an unusuable system that requires reset by your Dealer. You were warned!
*
- * This program is free software: you can redistribute it and/or modify it under the terms of the
+ * This program is free software: you can redistribute it and/or modify it under the terms of the
* GNU General Public License as published by the Free Software Foundation, either version 3 of the
* License, or (at your option) any later version.
*
- * This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even
+ * This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even
* the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public
* License for more details.
- *
- * You should have received a copy of the GNU General Public License along with this program.
+ *
+ * You should have received a copy of the GNU General Public License along with this program.
* If not, see http://www.gnu.org/licenses/
*
*/
@@ -31,15 +31,15 @@
[app="app.terminal"] .keyboardbutton {
- margin:1px 1px;
+ margin:1px 1px;
font-family: 'DejaVu Sans Mono', monospace;
font-size:22px;
- min-width:50px;
- background-color:transparent;
- box-shadow: false;
- text-decoration: none;
+ min-width:50px;
+ background-color:transparent;
+ box-shadow: none;
+ text-decoration: none;
border:1px solid gray;
- border-radius:6px;
+ border-radius:6px;
color: white;
}
@@ -49,7 +49,7 @@
[app="app.terminal"] .keyboardbutton:active {
- background-color:red;
+ background-color:red;
}
diff --git a/app/files/tweaks/casdk/apps/app.terminal/app.js b/app/files/tweaks/casdk/apps/app.terminal/app.js
index a084fe9..908c082 100644
--- a/app/files/tweaks/casdk/apps/app.terminal/app.js
+++ b/app/files/tweaks/casdk/apps/app.terminal/app.js
@@ -1,32 +1,32 @@
/**
* Custom Applications SDK for Mazda Connect Infotainment System
- *
+ *
* A mini framework that allows to write custom applications for the Mazda Connect Infotainment System
* that includes an easy to use abstraction layer to the JCI system.
*
* Written by Andreas Schwarz (http://github.com/flyandi/mazda-custom-applications-sdk)
* Copyright (c) 2016. All rights reserved.
- *
+ *
* WARNING: The installation of this application requires modifications to your Mazda Connect system.
* If you don't feel comfortable performing these changes, please do not attempt to install this. You might
* be ending up with an unusuable system that requires reset by your Dealer. You were warned!
*
- * This program is free software: you can redistribute it and/or modify it under the terms of the
+ * This program is free software: you can redistribute it and/or modify it under the terms of the
* GNU General Public License as published by the Free Software Foundation, either version 3 of the
* License, or (at your option) any later version.
*
- * This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even
+ * This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even
* the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public
* License for more details.
- *
- * You should have received a copy of the GNU General Public License along with this program.
+ *
+ * You should have received a copy of the GNU General Public License along with this program.
* If not, see http://www.gnu.org/licenses/
*
*/
/**
- * HelloWorld Application
+ * Terminal App v0.5
*
* This is the main file of the application and contains the required information
* to run the application on the mini framework.
@@ -141,7 +141,7 @@ CustomApplicationsHandler.register("app.terminal", new CustomApplication({
hasMenuCaret: false,
/**
- * (hasRightArc) indicates if the standard right car should be displayed
+ * (hasRightArc) indicates if the standard right arc should be displayed
*/
hasRightArc: false,
@@ -187,7 +187,7 @@ CustomApplicationsHandler.register("app.terminal", new CustomApplication({
//
// Update the screen
- //
+ //
update : function ()
{
this.screen.get(0).innerHTML = this.buffer + ">" + this.command;
@@ -203,7 +203,7 @@ CustomApplicationsHandler.register("app.terminal", new CustomApplication({
this.linecount = this.linecount + 1;
this.buffer += text + "\n";
- // At 160 lines, go back to 80 then buffer will alway have between 80 to 160 lines
+ // At 160 lines, go back to 80 then buffer will always have between 80 to 160 lines
/*
if ( this.linecount > 160) {
var lines = buffer.split('\n');
@@ -216,7 +216,7 @@ CustomApplicationsHandler.register("app.terminal", new CustomApplication({
//
// Folder has maybe changed
- //
+ //
folderchange : function ()
{
/*var c;
@@ -230,7 +230,7 @@ CustomApplicationsHandler.register("app.terminal", new CustomApplication({
{
var command = 'echo "Example command : "'
this.ws.send(command);
- command = 'echo "opkg list"';
+ command = 'echo "df -h"';
this.ws.send(command);
},
@@ -239,9 +239,9 @@ CustomApplicationsHandler.register("app.terminal", new CustomApplication({
askiffolderchanged : function ()
{
- var command = 'ls | awk \' BEGIN { ORS = \"\"; print \"'+ this.asklistnumber+'[\"; } { print \"\\\/\\@\"$0\"\\\/\\@\"; } END { print \"]\"; }\' | sed \"s^\\\"^\\\\\\\\\\\"^g;s^\\\/\\@\\\/\\@^\\\", \\\"^g;s^\\\/\\@^\\\"^g\"'
+ var command = 'ls | awk \' BEGIN { ORS = \"\"; print \"'+ this.asklistnumber+'[\"; } { print \"\\\/\\@\"$0\"\\\/\\@\"; } END { print \"]\"; }\' | sed \"s^\\\"^\\\\\\\\\\\"^g;s^\\\/\\@\\\/\\@^\\\", \\\"^g;s^\\\/\\@^\\\"^g\"'
this.ws.send(command);
- var command = 'echo ' + this.askpwdnumber + '$(pwd)'
+ var command = 'echo ' + this.askpwdnumber + '$(pwd)'
this.ws.send(command);
},
@@ -249,7 +249,7 @@ CustomApplicationsHandler.register("app.terminal", new CustomApplication({
var c;
for(c=0;c" + this.command);
+ this.ws.send(this.command);
+ this.command = "";
+ this.update();
+ break;
+
+ case "m/r":
+ this.command = "mount -o rw,remount /tmp/mnt/resources";
+ this.AddText(">" + this.command);
+ this.ws.send(this.command);
+ this.command = "";
+ this.update();
+ break;
+ case "m/a":
+ this.command = "mount -o rw,remount /tmp/mnt/sda1";
+ this.AddText(">" + this.command);
+ this.ws.send(this.command);
+ this.command = "";
+ this.update();
+ break;
+ case "m/b":
+ this.command = "mount -o rw,remount /tmp/mnt/sdb1";
+ this.AddText(">" + this.command);
+ this.ws.send(this.command);
+ this.command = "";
+ this.update();
+ break;
+
+ case "tweaks":
+ this.command = "/tmp/mnt/sd*/tweaks.sh";
+ this.AddText(">" + this.command);
+ this.ws.send(this.command);
+ this.command = "";
+ this.update();
+ break;
+ case "apps":
+ this.command = "cd /jci/gui/apps";
+ this.AddText(">" + this.command);
+ this.ws.send(this.command);
+ this.command = "";
+ this.update();
+ break;
+
+ case "r2":
+ this.command = "opkg remove casdk-multidash";
+ this.AddText(">" + this.command);
+ this.ws.send(this.command);
+ this.command = "";
+ this.update();
+ break;
+
+ case "i3":
+ this.command = "opkg install casdk-horloge";
+ this.AddText(">" + this.command);
+ this.ws.send(this.command);
+ this.command = "";
+ this.update();
+ break;
+ case "r3":
+ this.command = "opkg remove casdk-horloge";
+ this.AddText(">" + this.command);
+ this.ws.send(this.command);
+ this.command = "";
+ this.update();
+ break;
+
+ case "i4":
+ this.command = "opkg install casdk-speedthai";
+ this.AddText(">" + this.command);
+ this.ws.send(this.command);
+ this.command = "";
+ this.update();
+ break;
+ case "r4":
+ this.command = "opkg remove casdk-speedthai";
+ this.AddText(">" + this.command);
+ this.ws.send(this.command);
+ this.command = "";
+ this.update();
+ break;
+
default:
this.AddText(">" + this.command);
this.ws.send(this.command);
@@ -329,7 +412,7 @@ CustomApplicationsHandler.register("app.terminal", new CustomApplication({
if ( this.command.length > 0 ) {
this.command = this.command.slice(0, -1);
this.update();
- }
+ }
break;
case "up":
@@ -339,7 +422,7 @@ CustomApplicationsHandler.register("app.terminal", new CustomApplication({
this.commandstackcounter = 0;
}
this.command = this.commandstack[this.commandstackcounter];
- update();
+ update();
}
break;
@@ -348,7 +431,7 @@ CustomApplicationsHandler.register("app.terminal", new CustomApplication({
this.commandstackcounter ++;
if ( this.commandstackcounter >= this.commandstack.length) {
this.commandstackcounter = this.commandstack.length - 1;
- }
+ }
this.command = this.commandstack[this.commandstackcounter];
update();
}
@@ -356,12 +439,15 @@ CustomApplicationsHandler.register("app.terminal", new CustomApplication({
case "left":
+
+ break;
+
case "right":
break;
case "tab":
this.asklistfunction ();
-
+
break;
default:
@@ -378,14 +464,14 @@ CustomApplicationsHandler.register("app.terminal", new CustomApplication({
this.command += char;
}
this.update();
- }
+ }
},
LowLevelKeyboard : function (c) {
this.buttonlist[c].onmousedown=function() {
-
+
if (this.buttonlist[c].hasAttribute('function')) {
var f = this.buttonlist[c].getAttribute("function");
switch (f) {
@@ -415,11 +501,11 @@ CustomApplicationsHandler.register("app.terminal", new CustomApplication({
this.SetKeyboardButtonValue();
break;
default:
-
+
this.HighLevelKeyboard (f);
break;
}
-
+
} else {
this.HighLevelKeyboard (this.buttonlist[c].innerHTML);
@@ -437,9 +523,9 @@ CustomApplicationsHandler.register("app.terminal", new CustomApplication({
- /**
- * (created)
- *
+ /**
+ * (created)
+ *
* Executed when the application gets initialized
*
* Add any content that will be static here
@@ -449,7 +535,7 @@ CustomApplicationsHandler.register("app.terminal", new CustomApplication({
this.screen = this.element("pre", false, 'screen' , false,'');
- this.keyboard = this.element("div", false, false , false,''
+ this.keyboard = this.element("div", false, false , false,''
+'
'
);
this.buttonlist=this.keyboard.get(0).getElementsByClassName('keyboardbutton');
// Add listener for mouse
var c, c2;
-
+
for(c=0;c 1) {
+ //is the data a list of objects?
+ for (var i = 0; i < arguments.length; i++) {
+ log.debug("aioMagicMsg arguments passed as: ", arguments[i]);
+ framework.routeMmuiMsg(JSON.parse(arguments[i]));
+ }
+ return;
+ }
+
+ if (Object.prototype.toString.call(data) == '[object Array]') {
+ //is the data an array?
+ for (var j = 0; j < data.length; j++) {
+ framework.routeMmuiMsg(JSON.parse(data[j]));
+ }
+ return;
+ }
+ //otherwise we have 1 object to send
+ framework.routeMmuiMsg(JSON.parse(data));
+ }
+
+ function AIO_SBN(message, pathToIcon) {
+ framework.common.startTimedSbn(framework.getCurrentApp(), "MzdAioSbn", "typeE", {
+ sbnStyle: "Style02",
+ imagePath1: pathToIcon,
+ text1: message
+ });
+ }
+
+ function DOMtoJSON(node) {
+ node = node || this;
+ var obj = {
+ nodeType: node.nodeType
+ };
+ if (node.tagName) {
+ obj.tagName = node.tagName.toLowerCase();
+ } else
+ if (node.nodeName) {
+ obj.nodeName = node.nodeName;
+ }
+ if (node.nodeValue) {
+ obj.nodeValue = node.nodeValue;
+ }
+ var attrs = node.attributes;
+ if (attrs) {
+ var length = attrs.length;
+ var arr = obj.attributes = new Array(length);
+ for (var i = 0; i < length; i++) {
+ var attr = attrs[i];
+ arr[i] = [attr.nodeName, attr.nodeValue];
+ }
+ }
+ var childNodes = node.childNodes;
+ if (childNodes) {
+ var lengthc = childNodes.length;
+ var arrc = obj.childNodes = new Array(lengthc);
+ for (var j = 0; j < lengthc; j++) {
+ arrc[j] = DOMtoJSON(childNodes[j]);
+ }
+ }
+ return obj;
+ }
+
+ function JSONtoDOM(obj) {
+ if (typeof obj == 'string') {
+ obj = JSON.parse(obj);
+ }
+ var node, nodeType = obj.nodeType;
+ switch (nodeType) {
+ case 1: //ELEMENT_NODE
+ node = document.createElement(obj.tagName);
+ var attributes = obj.attributes || [];
+ for (var i = 0, len = attributes.length; i < len; i++) {
+ var attr = attributes[i];
+ node.setAttribute(attr[0], attr[1]);
+ }
+ break;
+ case 3: //TEXT_NODE
+ node = document.createTextNode(obj.nodeValue);
+ break;
+ case 8: //COMMENT_NODE
+ node = document.createComment(obj.nodeValue);
+ break;
+ case 9: //DOCUMENT_NODE
+ node = document.implementation.createDocument();
+ break;
+ case 10: //DOCUMENT_TYPE_NODE
+ node = document.implementation.createDocumentType(obj.nodeName);
+ break;
+ case 11: //DOCUMENT_FRAGMENT_NODE
+ node = document.createDocumentFragment();
+ break;
+ default:
+ return node;
+ }
+ if (nodeType === 1 || nodeType === 11) {
+ var childNodes = obj.childNodes || [];
+ for (i = 0, len = childNodes.length; i < len; i++) {
+ node.appendChild(JSONtoDOM(childNodes[i]));
+ }
+ }
+ return node;
+ }
+}
diff --git a/app/files/tweaks/casdk/resources/aio/mzd-casdk/apps/app.js b/app/files/tweaks/casdk/resources/aio/mzd-casdk/apps/app.js
new file mode 100644
index 0000000..198b61e
--- /dev/null
+++ b/app/files/tweaks/casdk/resources/aio/mzd-casdk/apps/app.js
@@ -0,0 +1,36 @@
+/**
+ * Custom Applications SDK for Mazda Connect Infotainment System
+ *
+ * A mini framework that allows to write custom applications for the Mazda Connect Infotainment System
+ * that includes an easy to use abstraction layer to the JCI system.
+ *
+ * Written by Andreas Schwarz (http://github.com/flyandi/mazda-custom-applications-sdk)
+ * Copyright (c) 2016. All rights reserved.
+ *
+ * WARNING: The installation of this application requires modifications to your Mazda Connect system.
+ * If you don't feel comfortable performing these changes, please do not attempt to install this. You might
+ * be ending up with an unusuable system that requires reset by your Dealer. You were warned!
+ *
+ * This program is free software: you can redistribute it and/or modify it under the terms of the
+ * GNU General Public License as published by the Free Software Foundation, either version 3 of the
+ * License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even
+ * the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public
+ * License for more details.
+ *
+ * You should have received a copy of the GNU General Public License along with this program.
+ * If not, see http://www.gnu.org/licenses/
+ *
+ */
+
+/**
+ * (CustomApplications)
+ *
+ * This array registers all applications you want to install and run on your Mazda Connect Infotainment System
+ *
+ * The name corresponds to to the folder name of the application
+ */
+
+var CustomApplications = [
+];
diff --git a/app/files/tweaks/casdk/resources/aio/mzd-casdk/runtime/runtime.js b/app/files/tweaks/casdk/resources/aio/mzd-casdk/runtime/runtime.js
index 775b3b7..b6ff3cc 100644
--- a/app/files/tweaks/casdk/resources/aio/mzd-casdk/runtime/runtime.js
+++ b/app/files/tweaks/casdk/resources/aio/mzd-casdk/runtime/runtime.js
@@ -1,37 +1,7 @@
-/**
+/* *
* Custom Application SDK for Mazda Connect Infotainment System
- *
- * A micro framework that allows to write custom applications for the Mazda Connect Infotainment System
- * that includes an easy to use abstraction layer to the JCI system.
- *
- * Written by Andreas Schwarz (http://github.com/flyandi/mazda-custom-applications-sdk)
- * Copyright (c) 2016. All rights reserved.
- *
- * WARNING: The installation of this application requires modifications to your Mazda Connect system.
- * If you don't feel comfortable performing these changes, please do not attempt to install this. You might
- * be ending up with an unusuable system that requires reset by your Dealer. You were warned!
*
- * This program is free software: you can redistribute it and/or modify it under the terms of the
- * GNU General Public License as published by the Free Software Foundation, either version 3 of the
- * License, or (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even
- * the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public
- * License for more details.
- *
- * You should have received a copy of the GNU General Public License along with this program.
- * If not, see http://www.gnu.org/licenses/
- *
- */
-
-/**
- * This is the main mini framework file that contains everything to run the custom application environment
- */
-
-var CUSTOM_APPLICATION_VERSION='0.0.1';/*
- * Custom Applications SDK for Mazda Connect Infotainment System
- *
- * A mini framework that allows to write custom applications for the Mazda Connect Infotainment System
+ * A micro framework that allows to write custom applications for the Mazda Connect Infotainment System
* that includes an easy to use abstraction layer to the JCI system.
*
* Written by Andreas Schwarz (http://github.com/flyandi/mazda-custom-applications-sdk)
@@ -54,6 +24,13 @@ var CUSTOM_APPLICATION_VERSION='0.0.1';/*
*
*/
+/**
+ * This is the main mini framework file that contains everything to run the custom application environment
+ */
+
+var CUSTOM_APPLICATION_VERSION='0.0.4';
+
+
var CustomApplication = (function(){
/**
@@ -1051,18 +1028,19 @@ var CustomApplication = (function(){
/**
* Enables WiFi and tries to obtain an internet connection
- *
+ *
* @param function callback - A callback that is executed once the internet connection is established
* @return void
*/
requireInternet: function() {
- /* from netmgmtApp.ks
- SelectNetworkManagement
-
- var params = { payload : { offOn : offOn } };
- framework.sendEventToMmui(this.uiaId, 'SetWifiConnection', params);
- */
+
+ /* from netmgmtApp.js
+ * SelectNetworkManagement
+ */
+ var offOn = 0;
+ var params = { payload : { offOn : offOn } };
+ framework.sendEventToMmui(this.uiaId, 'SetWifiConnection', params);
}
};
@@ -1134,8 +1112,8 @@ var VehicleData = {
*/
general: {
- brand: {id:'VDTSBrand', friendlyName: 'Vehicle Brand', input: 'list', values: VehicleDataBrand},
- type: {id:'VDTSVehicle_Type', friendlyName: 'Vehicle Type', input: 'list', values: VehicleDataVehicleType},
+ brand: {id:'VDSBrand', friendlyName: 'Vehicle Brand', input: 'list', values: VehicleDataBrand},
+ type: {id:'VDSVehicle_Type', friendlyName: 'Vehicle Type', input: 'list', values: VehicleDataVehicleType},
region: {id: 'SYSRegion', friendlyName: 'Region', input: 'list', values: VehicleDataRegion},
},
@@ -1146,12 +1124,12 @@ var VehicleData = {
vehicle: {
speed: {id: 'VDTVehicleSpeed', friendlyName: 'Vehicle Speed', input: 'range', min: 0, max: 240, factor: 0.01},
rpm: {id: 'VDTEngineSpeed', friendlyName: 'Engine RPM', input: 'range', min: 0, max: 8000, factor: 2.25},
- odometer: {id: 'VDTCOdocount', friendlyName: 'Odocount'},
- batterylevel: {id: 'VDTCBattery_StateOfCharge', friendlyName: 'Battery Level'},
+ odometer: {id: 'VDCOdocount', friendlyName: 'Odocount'},
+ batterylevel: {id: 'VDCBattery_StateOfCharge', friendlyName: 'Battery Level'},
//Peter-dk added
- // latAcc: {id: 'VDTCLateralAcceleration', friendlyName: 'Lateral acceleration', input: 'range', min: 3000, max: 5000, factor: 1},
- // lonAcc: {id: 'VDTCLongitudinalAccelerometer', friendlyName: 'Longitudinal acceleration', input: 'range', min: 3000, max: 5000, factor: 1},
+ // latAcc: {id: 'VDCLateralAcceleration', friendlyName: 'Lateral acceleration', input: 'range', min: 3000, max: 5000, factor: 1},
+ // lonAcc: {id: 'VDCLongitudinalAccelerometer', friendlyName: 'Longitudinal acceleration', input: 'range', min: 3000, max: 5000, factor: 1},
startTime: {id: 'PIDGlobalRealTime_Start', friendlyName: 'Start time'},
curTime: {id: 'PIDCrntReadTm', friendlyName: 'Current time'},
drv1dstnc: {id: 'VDTPID_Drv1Dstnc_curr', friendlyName: 'Drive Distance'},
@@ -1179,9 +1157,9 @@ var VehicleData = {
*/
temperature: {
- outside: {id: 'VDTCOut-CarTemperature', friendlyName: 'Outside Temperature'},
+ outside: {id: 'VDTOut-CarTemperature', friendlyName: 'Outside Temperature'},
intake: {id: 'VDTDR_IntakeAirTemp', friendlyName: 'Intake Air Temperature'},
- coolant: {id: 'PIDEngineCoolantTemperature', friendlyName: 'Engine Coolant Temperature'},
+ coolant: {id: 'VDTEngClnt_Te_Actl', friendlyName: 'Engine Coolant Temperature'},
},
@@ -1219,11 +1197,11 @@ var CustomApplicationDataProcessors = {
},
/*Peter-dk added
- LateralAcceleration: function(value) {
+ LateralAcceleration: function(value) {
return Math.round(value * 0.1);
},
- LongitudinalAccelerometer: function(value) {
+ LongitudinalAccelerometer: function(value) {
return Math.round(value * 0.1);
},
*/
@@ -1298,8 +1276,8 @@ var CustomApplicationDataHandler = {
// Vehicle Data Transfer data
{table: 'vdtpid', prefix: 'PID', enabled: true, file: true, update: 60},
- // Vehicle Data Transfer data
- {table: 'vdtcurrent', prefix: 'VDTC', enabled: true, file: true, update: 60}, // Peter-dk, "always: true" does not work
+ // Vehicle Data Transfer data Trez - changed VDTC to VDC to make it unique from VDT prefix above
+ {table: 'vdtcurrent', prefix: 'VDC', enabled: true, file: true, update: 60}, // Peter-dk, "always: true" does not work
/**
@@ -1318,7 +1296,7 @@ var CustomApplicationDataHandler = {
*/
// Vehicle Setting
- {table: 'vdtsettings', prefix: 'VDTS', enabled: true, file: true, update: false},
+ {table: 'vdtsettings', prefix: 'VDS', enabled: true, file: true, update: false},
// Ignition Diagnostic Monitor (disabled)
{table: 'idm', prefix: 'IDM', enabled: true, file: true, update: false},
diff --git a/app/files/tweaks/casdk/resources/aio/mzd-casdk/runtime/vendor/jquery.js b/app/files/tweaks/casdk/resources/aio/mzd-casdk/runtime/vendor/jquery.js
index 4855adc..15fa6fa 100644
--- a/app/files/tweaks/casdk/resources/aio/mzd-casdk/runtime/vendor/jquery.js
+++ b/app/files/tweaks/casdk/resources/aio/mzd-casdk/runtime/vendor/jquery.js
@@ -3729,7 +3729,7 @@ jQuery( function() {
// Check if natively block-level elements act like inline-block
// elements when setting their display to 'inline' and giving
// them layout
- div.style.cssText = "display:inline;margin:0;border:0;padding:1px;width:1px;zoom:1";
+ div.style.cssText = "display:inline;margin:0;border:0;padding:1px;width:1px;";
support.inlineBlockNeedsLayout = val = div.offsetWidth === 3;
if ( val ) {
@@ -4281,9 +4281,9 @@ jQuery.fn.extend( {
// Support: Firefox<29, Android 2.3
// Vendor-prefix box-sizing
- "-webkit-box-sizing:content-box;-moz-box-sizing:content-box;" +
+ // "-webkit-box-sizing:content-box;-moz-box-sizing:content-box;" +
"box-sizing:content-box;display:block;margin:0;border:0;" +
- "padding:1px;width:1px;zoom:1";
+ "padding:1px;width:1px;";
div.appendChild( document.createElement( "div" ) ).style.width = "5px";
shrinkWrapBlocksVal = div.offsetWidth !== 3;
}
@@ -6616,7 +6616,8 @@ var documentElement = document.documentElement;
// Support: Android 2.3
// Vendor-prefix box-sizing
- "-webkit-box-sizing:border-box;box-sizing:border-box;" +
+ //"-webkit-box-sizing:border-box;"+
+ "box-sizing:border-box;" +
"position:relative;display:block;" +
"margin:auto;border:1px;padding:1px;" +
"top:1%;width:50%";
@@ -6649,7 +6650,7 @@ var documentElement = document.documentElement;
// Support: Android 2.3
// Vendor-prefix box-sizing
- "-webkit-box-sizing:content-box;-moz-box-sizing:content-box;" +
+ //"-webkit-box-sizing:content-box;-moz-box-sizing:content-box;" +
"box-sizing:content-box;display:block;margin:0;border:0;padding:0";
contents.style.marginRight = contents.style.width = "0";
div.style.width = "1px";
diff --git a/app/files/tweaks/casdk/resources/dev/bin/adb b/app/files/tweaks/casdk/resources/dev/bin/adb
new file mode 100644
index 0000000..c27a43f
Binary files /dev/null and b/app/files/tweaks/casdk/resources/dev/bin/adb differ
diff --git a/app/files/tweaks/casdk/resources/dev/bin/add_app_json.js b/app/files/tweaks/casdk/resources/dev/bin/add_app_json.js
new file mode 100644
index 0000000..d3fd6e0
--- /dev/null
+++ b/app/files/tweaks/casdk/resources/dev/bin/add_app_json.js
@@ -0,0 +1,30 @@
+#!/usr/bin/env node
+var fs = require('fs');
+var args=process.argv.slice(2);
+var file=args[0];
+var key=args[1];
+var value=args[2];
+var preload=args[3];
+
+var NewApp = { "name": key, "label": value };
+
+var count=0;
+fs.readFile(file, 'utf8', function (err, data) {
+ if (err) throw err;
+ var obj=JSON.parse(data);
+ if (preload) data.preload = preload;
+ for(var i=0; i0) {
+ fs.writeFile (file, JSON.stringify(obj, null, '\t').replace(/\n\t\t/g,' ').replace(/\n\t}/g,' }'), function(err) {
+ if (err) throw err;
+ console.log('Removed '+key+' From '+file);
+ });
+ }else{
+ console.log(key+' Does Not Exist In '+file);
+ }
+});
diff --git a/app/files/tweaks/config/videoplayer/jci/gui/addon-common/websocketd b/app/files/tweaks/casdk/resources/dev/bin/websocketd
similarity index 100%
rename from app/files/tweaks/config/videoplayer/jci/gui/addon-common/websocketd
rename to app/files/tweaks/casdk/resources/dev/bin/websocketd
diff --git a/app/files/tweaks/casdk/scripts/vdt1s.sh b/app/files/tweaks/casdk/scripts/vdt1s.sh
index 7e951c0..d85b140 100644
--- a/app/files/tweaks/casdk/scripts/vdt1s.sh
+++ b/app/files/tweaks/casdk/scripts/vdt1s.sh
@@ -1,5 +1,5 @@
#!/bin/sh
-#
+#
# Custom Applications SDK for Mazda Connect Infotainment System
#
# A mini framework that allows to write custom applications for the Mazda Connect Infotainment System
@@ -42,4 +42,7 @@ smdb-read -v -n vdm_vdt_current_data -e VehicleSpeed >> ${OUTPUT}-vdt
smdb-read -v -n vdm_vdt_current_data -e EngineSpeed >> ${OUTPUT}-vdt
smdb-read -v -n vdm_vdt_current_data -e FuelGaugePosition >> ${OUTPUT}-vdt
smdb-read -v -n vdm_vdt_current_data -e DR_IntakeAirTemp >> ${OUTPUT}-vdt
+smdb-read -v -n vdm_vdt_current_data -e Out-CarTemperature >> ${OUTPUT}-vdt
+smdb-read -v -n vdm_vdt_current_data -e EngClnt_Te_Actl >> ${OUTPUT}-vdt
+smdb-read -v -n vdm_vdt_current_data -e TransmChangeLeverPosition >> ${OUTPUT}-vdt
smdb-read -v -n vdm -e Drv1AvlFuelE >> ${OUTPUT}-vdt
diff --git a/app/files/tweaks/config/BackgroundRotator/jci/gui/common/css/common.css b/app/files/tweaks/config/BackgroundRotator/jci/gui/common/css/common.css
index b71a735..68f01f6 100644
--- a/app/files/tweaks/config/BackgroundRotator/jci/gui/common/css/common.css
+++ b/app/files/tweaks/config/BackgroundRotator/jci/gui/common/css/common.css
@@ -1,4 +1,5 @@
/* CSS Document */
+
body {
/* default text color */
color: white;
@@ -11,7 +12,6 @@ body {
/* default text alignment */
text-align: left;
}
-
.CommonBgImg {
background-image: url("../images/background.png");
background-repeat: no-repeat;
@@ -21,10 +21,9 @@ body {
left: 0px;
top: 0px;
z-index: 0;
- background-position:0;
- animation: slide 600s steps(10,end) infinite;
+ background-position: 0;
+ animation: slide 600s steps(10, end) infinite;
}
-
.CommonRightChrome {
background: url("../controls/LeftBtn/images/ChromeArcRight.png") no-repeat;
position: absolute;
@@ -34,7 +33,6 @@ body {
left: 766px;
z-index: 8;
}
-
.CommonNonTransparentDiv {
background-color: #FFF;
opacity: 0.01;
@@ -45,13 +43,12 @@ body {
left: 0px;
z-index: 0;
}
-
/*Keyframe classes for fade animations (W3 Standard) */
+
@keyframes opacZeroToFull {
0% {
opacity: 0;
}
-
100% {
opacity: 1;
}
@@ -60,22 +57,22 @@ body {
0% {
opacity: 1;
}
-
100% {
opacity: 0;
}
}
/*CSS Animation classes for fade animations*/
+
.FadeOut {
animation: opacFullToZero 0.3s ease-in-out both;
}
-
.FadeIn {
animation: opacZeroToFull 0.3s ease-in-out both;
}
/*Background switch animation for 10 backgrounds 8000px*/
+
@keyframes slide {
to {
- background-position:-8000px;
+ background-position: -8000px;
}
-}
\ No newline at end of file
+}
diff --git a/app/files/tweaks/config/MainMenuTweaks/DefaultSmallFocused.css b/app/files/tweaks/config/MainMenuTweaks/DefaultSmallFocused.css
index 167afb3..1ce5e13 100644
--- a/app/files/tweaks/config/MainMenuTweaks/DefaultSmallFocused.css
+++ b/app/files/tweaks/config/MainMenuTweaks/DefaultSmallFocused.css
@@ -1,9 +1,8 @@
.MainMenuCtrlSetHighlight {
- top: 95px;
- left: 600px;
+ top: 95px;
+ left: 600px;
}
-
.MainMenuCtrlAppHighlight {
- top: 95px;
- left: -165px;
+ top: 95px;
+ left: -165px;
}
diff --git a/app/files/tweaks/config/MainMenuTweaks/FlatLine.css b/app/files/tweaks/config/MainMenuTweaks/FlatLine.css
index 6aa9056..db003e7 100644
--- a/app/files/tweaks/config/MainMenuTweaks/FlatLine.css
+++ b/app/files/tweaks/config/MainMenuTweaks/FlatLine.css
@@ -1,10 +1,11 @@
- /* Alternate Layout Flatline */
- .MainMenuCtrlComDiv {
+/* Alternate Layout Flatline */
+
+.MainMenuCtrlComDiv {
top: 280px;
}
.MainMenuCtrlEntDiv {
top: 280px;
- left:160px;
+ left: 160px;
}
.MainMenuCtrlNavDiv {
top: 280px;
@@ -40,12 +41,12 @@
top: 80px;
}
.MainMenuCtrlIconName {
- top:5px;
+ top: 5px;
}
.MainMenuCtrl {
overflow: visible;
}
-.MainMenuCtrlSetDiv.MainMenuCtrlCoinFocus{
+.MainMenuCtrlSetDiv.MainMenuCtrlCoinFocus {
-o-transform: scale(1.4, 1.4) translate(0px, -50px);
transform: scale(1.4, 1.4) translate(0px, -50px);
}
@@ -68,4 +69,4 @@
.MainMenuCtrlComDiv.MainMenuCtrlCoinFocus {
-o-transform: scale(1.2, 1.2) translate(0px, -60px);
transform: scale(1.2, 1.2) translate(0px, -60px);
-}
\ No newline at end of file
+}
diff --git a/app/files/tweaks/config/MainMenuTweaks/FlatLineSmallFocused.css b/app/files/tweaks/config/MainMenuTweaks/FlatLineSmallFocused.css
index 7de3a7f..7358585 100644
--- a/app/files/tweaks/config/MainMenuTweaks/FlatLineSmallFocused.css
+++ b/app/files/tweaks/config/MainMenuTweaks/FlatLineSmallFocused.css
@@ -1,7 +1,3 @@
-.MainMenuCtrlSetHighlight,
-.MainMenuCtrlComHighlight,
-.MainMenuCtrlAppHighlight,
-.MainMenuCtrlNavHighlight,
-.MainMenuCtrlEntHighlight {
- top: 120px;
-}
\ No newline at end of file
+.MainMenuCtrlSetHighlight, .MainMenuCtrlComHighlight, .MainMenuCtrlAppHighlight, .MainMenuCtrlNavHighlight, .MainMenuCtrlEntHighlight {
+ top: 120px;
+}
diff --git a/app/files/tweaks/config/MainMenuTweaks/Inverted.css b/app/files/tweaks/config/MainMenuTweaks/Inverted.css
index 03f6388..2c1bdc3 100644
--- a/app/files/tweaks/config/MainMenuTweaks/Inverted.css
+++ b/app/files/tweaks/config/MainMenuTweaks/Inverted.css
@@ -1,67 +1,68 @@
- /* Alternate Layout Inverted */
- .MainMenuCtrlComDiv {
- top: 240px;
- }
- .MainMenuCtrlEntDiv {
- top: 160px;
- }
- .MainMenuCtrlNavDiv {
- top: 160px;
- }
- .MainMenuCtrlAppDiv {
- left: 0;
- top: 10px;
- }
- .MainMenuCtrlSetDiv {
- top: 10px;
- left: 675px;
- }
- .MainMenuCtrlAppHighlight {
- top: -110px;
- left: -100px;
- }
- .MainMenuCtrlComHighlight {
- top: 70px;
- }
- .MainMenuCtrlNavHighlight {
- top: 0px;
- left: 380px;
- }
- .MainMenuCtrlEntHighlight {
- top: 0px;
- left: 45px;
- }
- .MainMenuCtrlSetHighlight {
- left: 520px;
- top: -110px;
- }
- .MainMenuCtrlIconName {
- top:5px;
- }
- .MainMenuCtrl {
- overflow: visible;
- }
- .MainMenuCtrlSetDiv.MainMenuCtrlCoinFocus{
- -o-transform: scale(1.2, 1.2) translate(-20px, 20px);
- transform: scale(1.2, 1.2) translate(-20px, 20px);
- }
- .MainMenuCtrlAppDiv.MainMenuCtrlCoinFocus {
- -o-transform: scale(1.2, 1.2) translate(20px, 20px);
- transform: scale(1.2, 1.2) translate(20px, 20px);
- }
- .MainMenuCtrlComDiv.MainMenuCtrlCoinFocus {
- -o-transform: scale(1.2, 1.2) translate(0px, 25px);
- transform: scale(1.2, 1.2) translate(0px, 25px);
- }
- .MainMenuCtrlEntDiv.MainMenuCtrlCoinFocus {
- -o-transform: scale(1.2, 1.2) translate(50px, -25px);
- transform: scale(1.2, 1.2) translate(50px, -25px);
- }
- .MainMenuCtrlNavDiv.MainMenuCtrlCoinFocus {
- -o-transform: scale(1.2, 1.2) translate(-50px, -25px);
- transform: scale(1.2, 1.2) translate(-50px, -25px);
- }
- .MainMenuCtrlComDiv.MainMenuCtrlCoinFocus {
- -o-transform: scale(1.2, 1.2) translate(0px, -10px);
- transform: scale(1.2, 1.2) translate(0px, -10px);
- }
+/* Alternate Layout Inverted */
+
+.MainMenuCtrlComDiv {
+ top: 240px;
+}
+.MainMenuCtrlEntDiv {
+ top: 160px;
+}
+.MainMenuCtrlNavDiv {
+ top: 160px;
+}
+.MainMenuCtrlAppDiv {
+ left: 0;
+ top: 10px;
+}
+.MainMenuCtrlSetDiv {
+ top: 10px;
+ left: 675px;
+}
+.MainMenuCtrlAppHighlight {
+ top: -110px;
+ left: -100px;
+}
+.MainMenuCtrlComHighlight {
+ top: 70px;
+}
+.MainMenuCtrlNavHighlight {
+ top: 0px;
+ left: 380px;
+}
+.MainMenuCtrlEntHighlight {
+ top: 0px;
+ left: 45px;
+}
+.MainMenuCtrlSetHighlight {
+ left: 520px;
+ top: -110px;
+}
+.MainMenuCtrlIconName {
+ top: 5px;
+}
+.MainMenuCtrl {
+ overflow: visible;
+}
+.MainMenuCtrlSetDiv.MainMenuCtrlCoinFocus {
+ -o-transform: scale(1.2, 1.2) translate(-20px, 20px);
+ transform: scale(1.2, 1.2) translate(-20px, 20px);
+}
+.MainMenuCtrlAppDiv.MainMenuCtrlCoinFocus {
+ -o-transform: scale(1.2, 1.2) translate(20px, 20px);
+ transform: scale(1.2, 1.2) translate(20px, 20px);
+}
+.MainMenuCtrlComDiv.MainMenuCtrlCoinFocus {
+ -o-transform: scale(1.2, 1.2) translate(0px, 25px);
+ transform: scale(1.2, 1.2) translate(0px, 25px);
+}
+.MainMenuCtrlEntDiv.MainMenuCtrlCoinFocus {
+ -o-transform: scale(1.2, 1.2) translate(50px, -25px);
+ transform: scale(1.2, 1.2) translate(50px, -25px);
+}
+.MainMenuCtrlNavDiv.MainMenuCtrlCoinFocus {
+ -o-transform: scale(1.2, 1.2) translate(-50px, -25px);
+ transform: scale(1.2, 1.2) translate(-50px, -25px);
+}
+.MainMenuCtrlComDiv.MainMenuCtrlCoinFocus {
+ -o-transform: scale(1.2, 1.2) translate(0px, -10px);
+ transform: scale(1.2, 1.2) translate(0px, -10px);
+}
diff --git a/app/files/tweaks/config/MainMenuTweaks/InvertedSmallFocused.css b/app/files/tweaks/config/MainMenuTweaks/InvertedSmallFocused.css
index aea8ccc..afd6707 100644
--- a/app/files/tweaks/config/MainMenuTweaks/InvertedSmallFocused.css
+++ b/app/files/tweaks/config/MainMenuTweaks/InvertedSmallFocused.css
@@ -1,17 +1,17 @@
.MainMenuCtrlComHighlight {
- top: 85px;
+ top: 85px;
}
.MainMenuCtrlSetHighlight {
- left: 550px;
- top: -160px;
+ left: 550px;
+ top: -160px;
}
.MainMenuCtrlAppHighlight {
- left: -125px;
- top: -160px;
+ left: -125px;
+ top: -160px;
}
.MainMenuCtrlNavHighlight {
- left:435px;
+ left: 435px;
}
.MainMenuCtrlEntHighlight {
- left: -5px;
-}
\ No newline at end of file
+ left: -5px;
+}
diff --git a/app/files/tweaks/config/MainMenuTweaks/StarA.css b/app/files/tweaks/config/MainMenuTweaks/StarA.css
index 69655cf..e7ffbeb 100644
--- a/app/files/tweaks/config/MainMenuTweaks/StarA.css
+++ b/app/files/tweaks/config/MainMenuTweaks/StarA.css
@@ -1,60 +1,60 @@
- /* Alternate Layout Star Points */
- .MainMenuCtrlComDiv {
- top: 30px;
- }
- .MainMenuCtrlEntDiv {
- top: 100px;
- }
- .MainMenuCtrlNavDiv {
- top: 100px;
- }
- .MainMenuCtrlAppDiv {
- left: 250px;
- top: 220px;
- }
- .MainMenuCtrlSetDiv {
- left: 430px;
- top: 220px;
- }
- .MainMenuCtrlAppHighlight {
- left: 120px;
- top: 40px;
- }
- .MainMenuCtrlComHighlight {
- top: -100px;
- }
- .MainMenuCtrlNavHighlight {
- top: -70px;
- left: 380px;
- }
- .MainMenuCtrlEntHighlight {
- top: -70px;
- left: 45px;
- }
- .MainMenuCtrlSetHighlight {
- left: 300px;
- top: 40px;
- }
- .MainMenuCtrlIconName {
- top:345px;
- }
- .MainMenuCtrl {
- overflow: visible;
- }
- .MainMenuCtrlSetDiv.MainMenuCtrlCoinFocus,
- .MainMenuCtrlAppDiv.MainMenuCtrlCoinFocus {
- -o-transform: scale(1.2, 1.2) translate(0px, -20px);
- transform: scale(1.2, 1.2) translate(0px, -20px);
- }
- .MainMenuCtrlComDiv.MainMenuCtrlCoinFocus {
- -o-transform: scale(1.2, 1.2) translate(0px, 25px);
- transform: scale(1.2, 1.2) translate(0px, 25px);
- }
- .MainMenuCtrlEntDiv.MainMenuCtrlCoinFocus {
- -o-transform: scale(1.2, 1.2) translate(50px, -25px);
- transform: scale(1.2, 1.2) translate(50px, -25px);
- }
- .MainMenuCtrlNavDiv.MainMenuCtrlCoinFocus {
- -o-transform: scale(1.2, 1.2) translate(-50px, -25px);
- transform: scale(1.2, 1.2) translate(-50px, -25px);
- }
\ No newline at end of file
+/* Alternate Layout Star Points */
+
+.MainMenuCtrlComDiv {
+ top: 30px;
+}
+.MainMenuCtrlEntDiv {
+ top: 100px;
+}
+.MainMenuCtrlNavDiv {
+ top: 100px;
+}
+.MainMenuCtrlAppDiv {
+ left: 250px;
+ top: 220px;
+}
+.MainMenuCtrlSetDiv {
+ left: 430px;
+ top: 220px;
+}
+.MainMenuCtrlAppHighlight {
+ left: 120px;
+ top: 40px;
+}
+.MainMenuCtrlComHighlight {
+ top: -100px;
+}
+.MainMenuCtrlNavHighlight {
+ top: -70px;
+ left: 380px;
+}
+.MainMenuCtrlEntHighlight {
+ top: -70px;
+ left: 45px;
+}
+.MainMenuCtrlSetHighlight {
+ left: 300px;
+ top: 40px;
+}
+.MainMenuCtrlIconName {
+ top: 345px;
+}
+.MainMenuCtrl {
+ overflow: visible;
+}
+.MainMenuCtrlSetDiv.MainMenuCtrlCoinFocus, .MainMenuCtrlAppDiv.MainMenuCtrlCoinFocus {
+ -o-transform: scale(1.2, 1.2) translate(0px, -20px);
+ transform: scale(1.2, 1.2) translate(0px, -20px);
+}
+.MainMenuCtrlComDiv.MainMenuCtrlCoinFocus {
+ -o-transform: scale(1.2, 1.2) translate(0px, 25px);
+ transform: scale(1.2, 1.2) translate(0px, 25px);
+}
+.MainMenuCtrlEntDiv.MainMenuCtrlCoinFocus {
+ -o-transform: scale(1.2, 1.2) translate(50px, -25px);
+ transform: scale(1.2, 1.2) translate(50px, -25px);
+}
+.MainMenuCtrlNavDiv.MainMenuCtrlCoinFocus {
+ -o-transform: scale(1.2, 1.2) translate(-50px, -25px);
+ transform: scale(1.2, 1.2) translate(-50px, -25px);
+}
diff --git a/app/files/tweaks/config/MainMenuTweaks/StarASmallFocused.css b/app/files/tweaks/config/MainMenuTweaks/StarASmallFocused.css
index 3bdded6..32fe3f9 100644
--- a/app/files/tweaks/config/MainMenuTweaks/StarASmallFocused.css
+++ b/app/files/tweaks/config/MainMenuTweaks/StarASmallFocused.css
@@ -1,17 +1,17 @@
.MainMenuCtrlComHighlight {
- top: -125px;
+ top: -125px;
}
.MainMenuCtrlSetHighlight {
- left: 305px;
+ left: 305px;
}
.MainMenuCtrlAppHighlight {
- left: 125px;
+ left: 125px;
}
.MainMenuCtrlEntHighlight {
- left: 0;
- top: -50px;
+ left: 0;
+ top: -50px;
}
.MainMenuCtrlNavHighlight {
- left:440px;
- top: -50px;
+ left: 440px;
+ top: -50px;
}
diff --git a/app/files/tweaks/config/MainMenuTweaks/StarB.css b/app/files/tweaks/config/MainMenuTweaks/StarB.css
index e1a92e8..a0da334 100644
--- a/app/files/tweaks/config/MainMenuTweaks/StarB.css
+++ b/app/files/tweaks/config/MainMenuTweaks/StarB.css
@@ -1,63 +1,64 @@
- /* Alternate Layout Large Star */
- .MainMenuCtrlComDiv {
- top: 30px;
- }
- .MainMenuCtrlEntDiv {
- top: 100px;
- }
- .MainMenuCtrlNavDiv {
- top: 100px;
- }
- .MainMenuCtrlAppDiv {
- left: 250px;
- top: 280px;
- }
- .MainMenuCtrlSetDiv {
- left: 430px;
- top: 280px;
- }
- .MainMenuCtrlAppHighlight {
- left: 80px;
- top: 105px;
- }
- .MainMenuCtrlComHighlight {
- top: -122px;
- }
- .MainMenuCtrlNavHighlight {
- top: -80px;
- left: 470px;
- }
- .MainMenuCtrlEntHighlight {
- top: -80px;
- left: -30px;
- }
- .MainMenuCtrlSetHighlight {
- left: 350px;
- top: 105px;
- }
- .MainMenuCtrlIconName {
- top: 200px;
- }
- .MainMenuCtrl {
- overflow: visible;
- }
- .MainMenuCtrlAppDiv.MainMenuCtrlCoinFocus {
- -o-transform: scale(1.2, 1.2) translate(-40px, -15px);
- transform: scale(1.2, 1.2) translate(-40px, -15px);
- }
- .MainMenuCtrlSetDiv.MainMenuCtrlCoinFocus {
- -o-transform: scale(1.2, 1.2) translate(40px, -15px);
- transform: scale(1.2, 1.2) translate(40px, -15px);
- }
- .MainMenuCtrlComDiv.MainMenuCtrlCoinFocus {
- -o-transform: scale(1.2, 1.2) translate(0px, -25px);
- transform: scale(1.2, 1.2) translate(0px, -25px);
- }
- .MainMenuCtrlEntDiv.MainMenuCtrlCoinFocus {
- -o-transform: scale(1.2, 1.2) translate(-25px, -50px);
- transform: scale(1.2, 1.2) translate(-25px, -50px);
- }
- .MainMenuCtrlNavDiv.MainMenuCtrlCoinFocus {
- -o-transform: scale(1.2, 1.2) translate(25px, -50px);
- transform: scale(1.2, 1.2) translate(25px, -50px);
- }
\ No newline at end of file
+/* Alternate Layout Large Star */
+
+.MainMenuCtrlComDiv {
+ top: 30px;
+}
+.MainMenuCtrlEntDiv {
+ top: 100px;
+}
+.MainMenuCtrlNavDiv {
+ top: 100px;
+}
+.MainMenuCtrlAppDiv {
+ left: 250px;
+ top: 280px;
+}
+.MainMenuCtrlSetDiv {
+ left: 430px;
+ top: 280px;
+}
+.MainMenuCtrlAppHighlight {
+ left: 80px;
+ top: 105px;
+}
+.MainMenuCtrlComHighlight {
+ top: -122px;
+}
+.MainMenuCtrlNavHighlight {
+ top: -80px;
+ left: 470px;
+}
+.MainMenuCtrlEntHighlight {
+ top: -80px;
+ left: -30px;
+}
+.MainMenuCtrlSetHighlight {
+ left: 350px;
+ top: 105px;
+}
+.MainMenuCtrlIconName {
+ top: 200px;
+}
+.MainMenuCtrl {
+ overflow: visible;
+}
+.MainMenuCtrlAppDiv.MainMenuCtrlCoinFocus {
+ -o-transform: scale(1.2, 1.2) translate(-40px, -15px);
+ transform: scale(1.2, 1.2) translate(-40px, -15px);
+}
+.MainMenuCtrlSetDiv.MainMenuCtrlCoinFocus {
+ -o-transform: scale(1.2, 1.2) translate(40px, -15px);
+ transform: scale(1.2, 1.2) translate(40px, -15px);
+}
+.MainMenuCtrlComDiv.MainMenuCtrlCoinFocus {
+ -o-transform: scale(1.2, 1.2) translate(0px, -25px);
+ transform: scale(1.2, 1.2) translate(0px, -25px);
+}
+.MainMenuCtrlEntDiv.MainMenuCtrlCoinFocus {
+ -o-transform: scale(1.2, 1.2) translate(-25px, -50px);
+ transform: scale(1.2, 1.2) translate(-25px, -50px);
+}
+.MainMenuCtrlNavDiv.MainMenuCtrlCoinFocus {
+ -o-transform: scale(1.2, 1.2) translate(25px, -50px);
+ transform: scale(1.2, 1.2) translate(25px, -50px);
+}
diff --git a/app/files/tweaks/config/MainMenuTweaks/StarBSmallFocused.css b/app/files/tweaks/config/MainMenuTweaks/StarBSmallFocused.css
index aa65256..398c2a4 100644
--- a/app/files/tweaks/config/MainMenuTweaks/StarBSmallFocused.css
+++ b/app/files/tweaks/config/MainMenuTweaks/StarBSmallFocused.css
@@ -1,14 +1,14 @@
.MainMenuCtrlAppHighlight {
- left:125px;
+ left: 125px;
}
.MainMenuCtrlSetHighlight {
- left: 305px;
+ left: 305px;
}
.MainMenuCtrlEntHighlight {
- top: -60px;
- left: -5px;
+ top: -60px;
+ left: -5px;
}
.MainMenuCtrlNavHighlight {
- top: -60px;
- left: 440px;
+ top: -60px;
+ left: 440px;
}
diff --git a/app/files/tweaks/config/USBAudioMod/NowPlaying4Ctrl.js b/app/files/tweaks/config/USBAudioMod/NowPlaying4Ctrl.js
index 43f5481..90d8e3f 100644
--- a/app/files/tweaks/config/USBAudioMod/NowPlaying4Ctrl.js
+++ b/app/files/tweaks/config/USBAudioMod/NowPlaying4Ctrl.js
@@ -23,887 +23,856 @@ log.addSrcFile("NowPlaying4Ctrl.js", "common");
//log.addSrcFile("NowPlaying4Ctrl.js", "NowPlaying4Ctrl");
// log.setLogLevel("NowPlaying4Ctrl", "debug");
-function NowPlaying4Ctrl(uiaId, parentDiv, controlId, properties)
-{
- this.uiaId = uiaId; // (String) UIA ID of the App instantiating this control
- this.controlId = controlId; // (String) ID of this control as assigned by GUIFramework
- this.parentDiv = parentDiv; // (HTMLElement) Reference to the parent div of this control
- this.divElt = null; // (HTMLElement) Reference to the top level div element of this control
-
- this.umpCtrl = null;
-
- // Constants
- this._constants = {
- MAX_HD_SUBSTATION_COUNT : 8,
- MAX_RATING_METER_STAR_COUNT : 5,
- MAX_RATING_IMG_HEIGHT : 29,
- MAX_RATING_IMG_WIDTH : 146
- };
-
- this._styles = {
- "Style0":{"_ctrlTitle" : "NowPlaying4CtrlHidden",
- "_trackDisplay" : "NowPlaying4CtrlHidden",
- "_ctrlTitleIconFrame" : "NowPlaying4CtrlHidden",
- "_ctrlTitleIconImage" : "NowPlaying4CtrlHidden",
- "_hdDisplayFrame" : "NowPlaying4CtrlHidden",
- "_hdDisplayIconImage" : "NowPlaying4CtrlHidden",
- "_hdSubstNum1" : "NowPlaying4CtrlHidden",
- "_hdSubstNum2" : "NowPlaying4CtrlHidden",
- "_hdSubstNum3" : "NowPlaying4CtrlHidden",
- "_hdSubstNum4" : "NowPlaying4CtrlHidden",
- "_hdSubstNum5" : "NowPlaying4CtrlHidden",
- "_hdSubstNum6" : "NowPlaying4CtrlHidden",
- "_hdSubstNum7" : "NowPlaying4CtrlHidden",
- "_hdSubstNum8" : "NowPlaying4CtrlHidden",
- "_loadingImageFrame" : "NowPlaying4CtrlHidden",
- "_artworkImageFrame" : "NowPlaying4CtrlHidden",
- "_artworkImage" : "NowPlaying4CtrlHidden",
- "_artworkImageBorder" : "NowPlaying4CtrlHidden",
- "_audioTitleFrame" : "NowPlaying4CtrlHidden",
- "_audioTitleIconFrame" : "NowPlaying4CtrlHidden",
- "_audioTitle" : "NowPlaying4CtrlHidden",
- "_detailLine1Frame" : "NowPlaying4CtrlHidden",
- "_detailLine1IconFrame" : "NowPlaying4CtrlHidden",
- "_detailLine1" : "NowPlaying4CtrlHidden",
- "_detailLine2Frame" : "NowPlaying4CtrlHidden",
- "_detailLine2IconFrame" : "NowPlaying4CtrlHidden",
- "_detailLine2" : "NowPlaying4CtrlHidden",
- "_detailLine3Frame" : "NowPlaying4CtrlHidden",
- "_detailLine3IconFrame" : "NowPlaying4CtrlHidden",
- "_detailLine3" : "NowPlaying4CtrlHidden",
- "_unformattedTextFrame" : "NowPlaying4CtrlHidden",
- "_unformattedText" : "NowPlaying4CtrlHidden",
- "_phoneNumberIconFrame" : "NowPlaying4CtrlHidden",
- "_phoneNumber" : "NowPlaying4CtrlHidden",
- "_distanceDirectionIconFrame" : "NowPlaying4CtrlHidden",
- "_distanceDirection" : "NowPlaying4CtrlHidden",
- "_ratingMeterFrame" : "NowPlaying4CtrlHidden",
- "_rmStarNum1" : "NowPlaying4CtrlHidden",
- "_rmStarNum2" : "NowPlaying4CtrlHidden",
- "_rmStarNum3" : "NowPlaying4CtrlHidden",
- "_rmStarNum4" : "NowPlaying4CtrlHidden",
- "_rmStarNum5" : "NowPlaying4CtrlHidden",
- },
- "Style1":{"_ctrlTitle" : "NowPlaying4CtrlTitle",
- "_trackDisplay" : "NowPlaying4CtrlTrackDisplay",
- "_ctrlTitleIconFrame" : "NowPlaying4CtrlHidden",
- "_ctrlTitleIconImage" : "NowPlaying4CtrlTitleIconImage",
- "_hdDisplayFrame" : "NowPlaying4CtrlHidden",
- "_hdDisplayIconImage" : "NowPlaying4CtrlHidden",
- "_hdSubstNum1" : "NowPlaying4CtrlHidden",
- "_hdSubstNum2" : "NowPlaying4CtrlHidden",
- "_hdSubstNum3" : "NowPlaying4CtrlHidden",
- "_hdSubstNum4" : "NowPlaying4CtrlHidden",
- "_hdSubstNum5" : "NowPlaying4CtrlHidden",
- "_hdSubstNum6" : "NowPlaying4CtrlHidden",
- "_hdSubstNum7" : "NowPlaying4CtrlHidden",
- "_hdSubstNum8" : "NowPlaying4CtrlHidden",
- "_loadingImageFrame" : "NowPlaying4CtrlHidden",
- "_artworkImageFrame" : "NowPlaying4CtrlArtworkImageDiv",
- "_artworkImage" : "NowPlaying4CtrlArtworkImage",
- "_artworkImageBorder" : "NowPlaying4CtrlArtworkImageBorder",
- "_audioTitleFrame" : "NowPlaying4CtrlAudioTitleFrame",
- "_audioTitleIconFrame" : "NowPlaying4CtrlAudioTitleIconFrame",
- "_audioTitle" : "NowPlaying4CtrlAudioTitle",
- "_detailLine1Frame" : "NowPlaying4CtrlDetailLine1Frame",
- "_detailLine1IconFrame" : "NowPlaying4CtrlDetailLine1IconFrame",
- "_detailLine1" : "NowPlaying4CtrlDetailLine1",
- "_detailLine2Frame" : "NowPlaying4CtrlDetailLine2Frame",
- "_detailLine2IconFrame" : "NowPlaying4CtrlDetailLine2IconFrame",
- "_detailLine2" : "NowPlaying4CtrlDetailLine2",
- "_detailLine3Frame" : "NowPlaying4CtrlDetailLine3Frame",
- "_detailLine3IconFrame" : "NowPlaying4CtrlDetailLine3IconFrame",
- "_detailLine3" : "NowPlaying4CtrlDetailLine3",
- "_unformattedTextFrame" : "NowPlaying4CtrlHidden",
- "_unformattedText" : "NowPlaying4CtrlHidden",
- "_phoneNumberIconFrame" : "NowPlaying4CtrlHidden",
- "_phoneNumber" : "NowPlaying4CtrlHidden",
- "_distanceDirectionIconFrame" : "NowPlaying4CtrlHidden",
- "_distanceDirection" : "NowPlaying4CtrlHidden",
- "_ratingMeterFrame" : "NowPlaying4CtrlHidden",
- "_rmStarNum1" : "NowPlaying4CtrlHidden",
- "_rmStarNum2" : "NowPlaying4CtrlHidden",
- "_rmStarNum3" : "NowPlaying4CtrlHidden",
- "_rmStarNum4" : "NowPlaying4CtrlHidden",
- "_rmStarNum5" : "NowPlaying4CtrlHidden",
- },
- "Style2":{"_ctrlTitle" : "NowPlaying4CtrlTitleFull",
- "_trackDisplay" : "NowPlaying4CtrlHidden",
- "_ctrlTitleIconFrame" : "NowPlaying4CtrlHidden",
- "_ctrlTitleIconImage" : "NowPlaying4CtrlTitleIconImage",
- "_hdDisplayFrame" : "NowPlaying4CtrlHidden",
- "_hdDisplayIconImage" : "NowPlaying4CtrlHdDisplayIconImage",
- "_hdSubstNum1" : "NowPlaying4CtrlHidden",
- "_hdSubstNum2" : "NowPlaying4CtrlHidden",
- "_hdSubstNum3" : "NowPlaying4CtrlHidden",
- "_hdSubstNum4" : "NowPlaying4CtrlHidden",
- "_hdSubstNum5" : "NowPlaying4CtrlHidden",
- "_hdSubstNum6" : "NowPlaying4CtrlHidden",
- "_hdSubstNum7" : "NowPlaying4CtrlHidden",
- "_hdSubstNum8" : "NowPlaying4CtrlHidden",
- "_loadingImageFrame" : "NowPlaying4CtrlHidden",
- "_artworkImageFrame" : "NowPlaying4CtrlArtworkImageDiv",
- "_artworkImage" : "NowPlaying4CtrlArtworkImage",
- "_artworkImageBorder" : "NowPlaying4CtrlArtworkImageBorder",
- "_audioTitleFrame" : "NowPlaying4CtrlAudioTitleFrame",
- "_audioTitleIconFrame" : "NowPlaying4CtrlAudioTitleIconFrame",
- "_audioTitle" : "NowPlaying4CtrlAudioTitle",
- "_detailLine1Frame" : "NowPlaying4CtrlDetailLine1Frame",
- "_detailLine1IconFrame" : "NowPlaying4CtrlDetailLine1IconFrame",
- "_detailLine1" : "NowPlaying4CtrlDetailLine1",
- "_detailLine2Frame" : "NowPlaying4CtrlDetailLine2Frame",
- "_detailLine2IconFrame" : "NowPlaying4CtrlDetailLine2IconFrame",
- "_detailLine2" : "NowPlaying4CtrlDetailLine2",
- "_detailLine3Frame" : "NowPlaying4CtrlDetailLine3Frame",
- "_detailLine3IconFrame" : "NowPlaying4CtrlDetailLine3IconFrame",
- "_detailLine3" : "NowPlaying4CtrlDetailLine3",
- "_unformattedTextFrame" : "NowPlaying4CtrlHidden",
- "_unformattedText" : "NowPlaying4CtrlHidden",
- "_phoneNumberIconFrame" : "NowPlaying4CtrlHidden",
- "_phoneNumber" : "NowPlaying4CtrlHidden",
- "_distanceDirectionIconFrame" : "NowPlaying4CtrlHidden",
- "_distanceDirection" : "NowPlaying4CtrlHidden",
- "_ratingMeterFrame" : "NowPlaying4CtrlHidden",
- "_rmStarNum1" : "NowPlaying4CtrlHidden",
- "_rmStarNum2" : "NowPlaying4CtrlHidden",
- "_rmStarNum3" : "NowPlaying4CtrlHidden",
- "_rmStarNum4" : "NowPlaying4CtrlHidden",
- "_rmStarNum5" : "NowPlaying4CtrlHidden",
- },
- "Style3":{"_ctrlTitle" : "NowPlaying4CtrlTitleFull",
- "_trackDisplay" : "NowPlaying4CtrlHidden",
- "_ctrlTitleIconFrame" : "NowPlaying4CtrlHidden",
- "_ctrlTitleIconImage" : "NowPlaying4CtrlTitleIconImage",
- "_hdDisplayFrame" : "NowPlaying4CtrlHidden",
- "_hdDisplayIconImage" : "NowPlaying4CtrlHidden",
- "_hdSubstNum1" : "NowPlaying4CtrlHidden",
- "_hdSubstNum2" : "NowPlaying4CtrlHidden",
- "_hdSubstNum3" : "NowPlaying4CtrlHidden",
- "_hdSubstNum4" : "NowPlaying4CtrlHidden",
- "_hdSubstNum5" : "NowPlaying4CtrlHidden",
- "_hdSubstNum6" : "NowPlaying4CtrlHidden",
- "_hdSubstNum7" : "NowPlaying4CtrlHidden",
- "_hdSubstNum8" : "NowPlaying4CtrlHidden",
- "_loadingImageFrame" : "NowPlaying4CtrlHidden",
- "_artworkImageFrame" : "NowPlaying4CtrlArtworkImageDiv",
- "_artworkImage" : "NowPlaying4CtrlArtworkImage",
- "_artworkImageBorder" : "NowPlaying4CtrlArtworkImageBorder",
- "_audioTitleFrame" : "NowPlaying4CtrlAudioTitleFrame",
- "_audioTitleIconFrame" : "NowPlaying4CtrlHidden",
- "_audioTitle" : "NowPlaying4CtrlAudioTitleStyle3",
- "_detailLine1Frame" : "NowPlaying4CtrlDetailLine1BlockFrame",
- "_detailLine1IconFrame" : "NowPlaying4CtrlHidden",
- "_detailLine1" : "NowPlaying4CtrlDetailLine1Block",
- "_detailLine2Frame" : "NowPlaying4CtrlHidden",
- "_detailLine2IconFrame" : "NowPlaying4CtrlHidden",
- "_detailLine2" : "NowPlaying4CtrlHidden",
- "_detailLine3Frame" : "NowPlaying4CtrlHidden",
- "_detailLine3IconFrame" : "NowPlaying4CtrlHidden",
- "_detailLine3" : "NowPlaying4CtrlHidden",
- "_unformattedTextFrame" : "NowPlaying4CtrlHidden",
- "_unformattedText" : "NowPlaying4CtrlHidden",
- "_phoneNumberIconFrame" : "NowPlaying4CtrlHidden",
- "_phoneNumber" : "NowPlaying4CtrlHidden",
- "_distanceDirectionIconFrame" : "NowPlaying4CtrlHidden",
- "_distanceDirection" : "NowPlaying4CtrlHidden",
- "_ratingMeterFrame" : "NowPlaying4CtrlHidden",
- "_rmStarNum1" : "NowPlaying4CtrlHidden",
- "_rmStarNum2" : "NowPlaying4CtrlHidden",
- "_rmStarNum3" : "NowPlaying4CtrlHidden",
- "_rmStarNum4" : "NowPlaying4CtrlHidden",
- "_rmStarNum5" : "NowPlaying4CtrlHidden",
- },
- "Style4":{"_ctrlTitle" : "NowPlaying4CtrlTitle",
- "_trackDisplay" : "NowPlaying4CtrlHidden",
- "_ctrlTitleIconFrame" : "NowPlaying4CtrlHidden",
- "_ctrlTitleIconImage" : "NowPlaying4CtrlTitleIconImage",
- "_hdDisplayFrame" : "NowPlaying4CtrlHidden",
- "_hdDisplayIconImage" : "NowPlaying4CtrlHdDisplayIconImage",
- "_hdSubstNum1" : "NowPlaying4CtrlHidden",
- "_hdSubstNum2" : "NowPlaying4CtrlHidden",
- "_hdSubstNum3" : "NowPlaying4CtrlHidden",
- "_hdSubstNum4" : "NowPlaying4CtrlHidden",
- "_hdSubstNum5" : "NowPlaying4CtrlHidden",
- "_hdSubstNum6" : "NowPlaying4CtrlHidden",
- "_hdSubstNum7" : "NowPlaying4CtrlHidden",
- "_hdSubstNum8" : "NowPlaying4CtrlHidden",
- "_loadingImageFrame" : "NowPlaying4CtrlHidden",
- "_artworkImageFrame" : "NowPlaying4CtrlArtworkImageDiv",
- "_artworkImage" : "NowPlaying4CtrlArtworkImage",
- "_artworkImageBorder" : "NowPlaying4CtrlArtworkImageBorder",
- "_audioTitleFrame" : "NowPlaying4CtrlAudioTitleFrame",
- "_audioTitleIconFrame" : "NowPlaying4CtrlAudioTitleIconFrame",
- "_audioTitle" : "NowPlaying4CtrlAudioTitle",
- "_detailLine1Frame" : "NowPlaying4CtrlDetailLine1Frame",
- "_detailLine1IconFrame" : "NowPlaying4CtrlDetailLine1IconFrame",
- "_detailLine1" : "NowPlaying4CtrlDetailLine1",
- "_detailLine2Frame" : "NowPlaying4CtrlDetailLine2Frame",
- "_detailLine2IconFrame" : "NowPlaying4CtrlDetailLine2IconFrame",
- "_detailLine2" : "NowPlaying4CtrlDetailLine2",
- "_detailLine3Frame" : "NowPlaying4CtrlDetailLine3Frame",
- "_detailLine3IconFrame" : "NowPlaying4CtrlDetailLine3IconFrame",
- "_detailLine3" : "NowPlaying4CtrlDetailLine3",
- "_unformattedTextFrame" : "NowPlaying4CtrlHidden",
- "_unformattedText" : "NowPlaying4CtrlHidden",
- "_phoneNumberIconFrame" : "NowPlaying4CtrlHidden",
- "_phoneNumber" : "NowPlaying4CtrlHidden",
- "_distanceDirectionIconFrame" : "NowPlaying4CtrlHidden",
- "_distanceDirection" : "NowPlaying4CtrlHidden",
- "_ratingMeterFrame" : "NowPlaying4CtrlHidden",
- "_rmStarNum1" : "NowPlaying4CtrlHidden",
- "_rmStarNum2" : "NowPlaying4CtrlHidden",
- "_rmStarNum3" : "NowPlaying4CtrlHidden",
- "_rmStarNum4" : "NowPlaying4CtrlHidden",
- "_rmStarNum5" : "NowPlaying4CtrlHidden",
- },
- "Style5":{"_ctrlTitle" : "NowPlaying4CtrlTitle",
- "_trackDisplay" : "NowPlaying4CtrlHidden",
- "_ctrlTitleIconFrame" : "NowPlaying4CtrlHidden",
- "_ctrlTitleIconImage" : "NowPlaying4CtrlTitleIconImage",
- "_hdDisplayFrame" : "NowPlaying4CtrlHidden",
- "_hdDisplayIconImage" : "NowPlaying4CtrlHidden",
- "_hdSubstNum1" : "NowPlaying4CtrlHidden",
- "_hdSubstNum2" : "NowPlaying4CtrlHidden",
- "_hdSubstNum3" : "NowPlaying4CtrlHidden",
- "_hdSubstNum4" : "NowPlaying4CtrlHidden",
- "_hdSubstNum5" : "NowPlaying4CtrlHidden",
- "_hdSubstNum6" : "NowPlaying4CtrlHidden",
- "_hdSubstNum7" : "NowPlaying4CtrlHidden",
- "_hdSubstNum8" : "NowPlaying4CtrlHidden",
- "_loadingImageFrame" : "NowPlaying4CtrlHidden",
- "_artworkImageFrame" : "NowPlaying4CtrlArtworkImageDiv",
- "_artworkImage" : "NowPlaying4CtrlArtworkImage",
- "_artworkImageBorder" : "NowPlaying4CtrlArtworkImageBorder",
- "_audioTitleFrame" : "NowPlaying4CtrlAudioTitleFrame",
- "_audioTitleIconFrame" : "NowPlaying4CtrlAudioTitleIconFrame",
- "_audioTitle" : "NowPlaying4CtrlAudioTitle",
- "_detailLine1Frame" : "NowPlaying4CtrlDetailLine1Frame",
- "_detailLine1IconFrame" : "NowPlaying4CtrlDetailLine1IconFrame",
- "_detailLine1" : "NowPlaying4CtrlDetailLine1",
- "_detailLine2Frame" : "NowPlaying4CtrlDetailLine2Frame",
- "_detailLine2IconFrame" : "NowPlaying4CtrlDetailLine2IconFrame",
- "_detailLine2" : "NowPlaying4CtrlDetailLine2",
- "_detailLine3Frame" : "NowPlaying4CtrlHidden",
- "_detailLine3IconFrame" : "NowPlaying4CtrlHidden",
- "_detailLine3" : "NowPlaying4CtrlHidden",
- "_unformattedTextFrame" : "NowPlaying4CtrlHidden",
- "_unformattedText" : "NowPlaying4CtrlHidden",
- "_phoneNumberIconFrame" : "NowPlaying4CtrlHidden",
- "_phoneNumber" : "NowPlaying4CtrlPhoneNumber",
- "_distanceDirectionIconFrame" : "NowPlaying4CtrlHidden",
- "_distanceDirection" : "NowPlaying4CtrlDistanceDirection",
- "_ratingMeterFrame" : "NowPlaying4CtrlRatingMeterFrame",
- "_rmStarNum1" : "NowPlaying4CtrlRmStarHollow",
- "_rmStarNum2" : "NowPlaying4CtrlRmStarHollow",
- "_rmStarNum3" : "NowPlaying4CtrlRmStarHollow",
- "_rmStarNum4" : "NowPlaying4CtrlRmStarHollow",
- "_rmStarNum5" : "NowPlaying4CtrlRmStarHollow",
- },
- "Style6":{"_ctrlTitle" : "NowPlaying4CtrlTitle",
- "_trackDisplay" : "NowPlaying4CtrlHidden",
- "_ctrlTitleIconFrame" : "NowPlaying4CtrlHidden",
- "_ctrlTitleIconImage" : "NowPlaying4CtrlTitleIconImage",
- "_hdDisplayFrame" : "NowPlaying4CtrlHidden",
- "_hdDisplayIconImage" : "NowPlaying4CtrlHidden",
- "_hdSubstNum1" : "NowPlaying4CtrlHidden",
- "_hdSubstNum2" : "NowPlaying4CtrlHidden",
- "_hdSubstNum3" : "NowPlaying4CtrlHidden",
- "_hdSubstNum4" : "NowPlaying4CtrlHidden",
- "_hdSubstNum5" : "NowPlaying4CtrlHidden",
- "_hdSubstNum6" : "NowPlaying4CtrlHidden",
- "_hdSubstNum7" : "NowPlaying4CtrlHidden",
- "_hdSubstNum8" : "NowPlaying4CtrlHidden",
- "_loadingImageFrame" : "NowPlaying4CtrlHidden",
- "_artworkImageFrame" : "NowPlaying4CtrlArtworkImageDiv",
- "_artworkImage" : "NowPlaying4CtrlArtworkImage",
- "_artworkImageBorder" : "NowPlaying4CtrlArtworkImageBorder",
- "_audioTitleFrame" : "NowPlaying4CtrlAudioTitleBlockFrame",
- "_audioTitleIconFrame" : "NowPlaying4CtrlAudioTitleIconFrame",
- "_audioTitle" : "NowPlaying4CtrlAudioTitleBlock",
- "_detailLine1Frame" : "NowPlaying4CtrlHidden",
- "_detailLine1IconFrame" : "NowPlaying4CtrlHidden",
- "_detailLine1" : "NowPlaying4CtrlHidden",
- "_detailLine2Frame" : "NowPlaying4CtrlHidden",
- "_detailLine2IconFrame" : "NowPlaying4CtrlHidden",
- "_detailLine2" : "NowPlaying4CtrlHidden",
- "_detailLine3Frame" : "NowPlaying4CtrlHidden",
- "_detailLine3IconFrame" : "NowPlaying4CtrlHidden",
- "_detailLine3" : "NowPlaying4CtrlHidden",
- "_unformattedTextFrame" : "NowPlaying4CtrlHidden",
- "_unformattedText" : "NowPlaying4CtrlHidden",
- "_phoneNumberIconFrame" : "NowPlaying4CtrlHidden",
- "_phoneNumber" : "NowPlaying4CtrlHidden",
- "_distanceDirectionIconFrame" : "NowPlaying4CtrlHidden",
- "_distanceDirection" : "NowPlaying4CtrlHidden",
- "_ratingMeterFrame" : "NowPlaying4CtrlHidden",
- "_rmStarNum1" : "NowPlaying4CtrlHidden",
- "_rmStarNum2" : "NowPlaying4CtrlHidden",
- "_rmStarNum3" : "NowPlaying4CtrlHidden",
- "_rmStarNum4" : "NowPlaying4CtrlHidden",
- "_rmStarNum5" : "NowPlaying4CtrlHidden",
- },
- "Style7":{"_ctrlTitle" : "NowPlaying4CtrlTitle",
- "_trackDisplay" : "NowPlaying4CtrlHidden",
- "_ctrlTitleIconFrame" : "NowPlaying4CtrlHidden",
- "_ctrlTitleIconImage" : "NowPlaying4CtrlTitleIconImage",
- "_hdDisplayFrame" : "NowPlaying4CtrlHidden",
- "_hdDisplayIconImage" : "NowPlaying4CtrlHidden",
- "_hdSubstNum1" : "NowPlaying4CtrlHidden",
- "_hdSubstNum2" : "NowPlaying4CtrlHidden",
- "_hdSubstNum3" : "NowPlaying4CtrlHidden",
- "_hdSubstNum4" : "NowPlaying4CtrlHidden",
- "_hdSubstNum5" : "NowPlaying4CtrlHidden",
- "_hdSubstNum6" : "NowPlaying4CtrlHidden",
- "_hdSubstNum7" : "NowPlaying4CtrlHidden",
- "_hdSubstNum8" : "NowPlaying4CtrlHidden",
- "_loadingImageFrame" : "NowPlaying4CtrlLoadingImageFrame",
- "_artworkImageFrame" : "NowPlaying4CtrlHidden",
- "_artworkImage" : "NowPlaying4CtrlHidden",
- "_artworkImageBorder" : "NowPlaying4CtrlHidden",
- "_ctrlSubtitle" : "NowPlaying4CtrlSubtitle",
- "_audioTitleFrame" : "NowPlaying4CtrlAudioTitleBlockFrame",
- "_audioTitleFrame" : "NowPlaying4CtrlAudioTitleFrame",
- "_audioTitleIconFrame" : "NowPlaying4CtrlAudioTitleIconFrame",
- "_audioTitle" : "NowPlaying4CtrlAudioTitle",
- "_detailLine1Frame" : "NowPlaying4CtrlDetailLine1Frame",
- "_detailLine1IconFrame" : "NowPlaying4CtrlDetailLine1IconFrame",
- "_detailLine1" : "NowPlaying4CtrlDetailLine1",
- "_detailLine2Frame" : "NowPlaying4CtrlDetailLine2Frame",
- "_detailLine2IconFrame" : "NowPlaying4CtrlDetailLine2IconFrame",
- "_detailLine2" : "NowPlaying4CtrlDetailLine2",
- "_detailLine3Frame" : "NowPlaying4CtrlDetailLine3Frame",
- "_detailLine3IconFrame" : "NowPlaying4CtrlDetailLine3IconFrame",
- "_detailLine3" : "NowPlaying4CtrlDetailLine3",
- "_unformattedTextFrame" : "NowPlaying4CtrlHidden",
- "_unformattedText" : "NowPlaying4CtrlHidden",
- "_phoneNumberIconFrame" : "NowPlaying4CtrlHidden",
- "_phoneNumber" : "NowPlaying4CtrlHidden",
- "_distanceDirectionIconFrame" : "NowPlaying4CtrlHidden",
- "_distanceDirection" : "NowPlaying4CtrlHidden",
- "_ratingMeterFrame" : "NowPlaying4CtrlHidden",
- "_rmStarNum1" : "NowPlaying4CtrlHidden",
- "_rmStarNum2" : "NowPlaying4CtrlHidden",
- "_rmStarNum3" : "NowPlaying4CtrlHidden",
- "_rmStarNum4" : "NowPlaying4CtrlHidden",
- "_rmStarNum5" : "NowPlaying4CtrlHidden",
- },// ---MZDMOD---
- "Style8":{"_ctrlTitle" : "NowPlaying4CtrlTitleFull",
- "_trackDisplay" : "NowPlaying4CtrlHidden",
- "_ctrlTitleIconFrameLeft" : "NowPlaying4CtrlTitleIconFrameLeft",
- //"_ctrlTitleIconImageLeft" : "NowPlaying4CtrlTitleIconImageLeft",
- "_ctrlTitleIconFrame" : "NowPlaying4CtrlHidden",
- "_ctrlTitleIconImage" : "NowPlaying4CtrlTitleIconImage",
- "_hdDisplayFrame" : "NowPlaying4CtrlHidden",
- "_hdDisplayIconImage" : "NowPlaying4CtrlHidden",
- "_hdSubstNum1" : "NowPlaying4CtrlHidden",
- "_hdSubstNum2" : "NowPlaying4CtrlHidden",
- "_hdSubstNum3" : "NowPlaying4CtrlHidden",
- "_hdSubstNum4" : "NowPlaying4CtrlHidden",
- "_hdSubstNum5" : "NowPlaying4CtrlHidden",
- "_hdSubstNum6" : "NowPlaying4CtrlHidden",
- "_hdSubstNum7" : "NowPlaying4CtrlHidden",
- "_hdSubstNum8" : "NowPlaying4CtrlHidden",
- "_loadingImageFrame" : "NowPlaying4CtrlHidden",
- "_artworkImageFrame" : "NowPlaying4CtrlArtworkImageDiv",
- "_artworkImage" : "NowPlaying4CtrlArtworkImage",
- "_artworkImageBorder" : "NowPlaying4CtrlArtworkImageBorder",
- "_audioTitleFrame" : "NowPlaying4CtrlAudioTitleFrame",
- "_audioTitleIconFrame" : "NowPlaying4CtrlAudioTitleIconFrame",
- "_audioTitle" : "NowPlaying4CtrlAudioTitle",
- "_detailLine1Frame" : "NowPlaying4CtrlDetailLine1Frame",
- "_detailLine1IconFrame" : "NowPlaying4CtrlDetailLine1IconFrame",
- "_detailLine1" : "NowPlaying4CtrlDetailLine1",
- "_detailLine2Frame" : "NowPlaying4CtrlDetailLine2Frame",
- "_detailLine2IconFrame" : "NowPlaying4CtrlDetailLine2IconFrame",
- "_detailLine2" : "NowPlaying4CtrlDetailLine2",
- "_detailLine3Frame" : "NowPlaying4CtrlDetailLine3Frame",
- "_detailLine3IconFrame" : "NowPlaying4CtrlDetailLine3IconFrame",
- "_detailLine3" : "NowPlaying4CtrlDetailLine3",
- "_unformattedTextFrame" : "NowPlaying4CtrlHidden",
- "_unformattedText" : "NowPlaying4CtrlHidden",
- "_phoneNumberIconFrame" : "NowPlaying4CtrlHidden",
- "_phoneNumber" : "NowPlaying4CtrlHidden",
- "_distanceDirectionIconFrame" : "NowPlaying4CtrlHidden",
- "_distanceDirection" : "NowPlaying4CtrlHidden",
- "_ratingMeterFrame" : "NowPlaying4CtrlHidden",
- "_rmStarNum1" : "NowPlaying4CtrlHidden",
- "_rmStarNum2" : "NowPlaying4CtrlHidden",
- "_rmStarNum3" : "NowPlaying4CtrlHidden",
- "_rmStarNum4" : "NowPlaying4CtrlHidden",
- "_rmStarNum5" : "NowPlaying4CtrlHidden",
- },
- };
-
- //@formatter:off
- this.properties = {
- "ctrlStyle" : "",
- "ctrlTitleObj" : null,
- "ctrlSubtitleObj" : null,
- "hdConfigObj" : null,
- "trackCount" : 0,
- "currentTrackNum" : 0,
- "loadingIcon" : false,
- "audioTitleObj" : null,
- "detailLine1Obj" : null,
- "detailLine2Obj" : null,
- "detailLine3Obj" : null,
- "unformattedTextObj" : null,
- "artworkImagePath" : "",
- "noArtworkImagePath" : "",
- "phoneNumber" : "",
- "distanceDirection" : "",
- "rating" : 0,
- "umpConfig" : null,
- };
- //@formatter:on
-
- for (var i in properties)
- {
- this.properties[i] = properties[i];
- }
-
- this._createStructure();
+function NowPlaying4Ctrl(uiaId, parentDiv, controlId, properties) {
+ this.uiaId = uiaId; // (String) UIA ID of the App instantiating this control
+ this.controlId = controlId; // (String) ID of this control as assigned by GUIFramework
+ this.parentDiv = parentDiv; // (HTMLElement) Reference to the parent div of this control
+ this.divElt = null; // (HTMLElement) Reference to the top level div element of this control
+
+ this.umpCtrl = null;
+
+ // Constants
+ this._constants = {
+ MAX_HD_SUBSTATION_COUNT: 8,
+ MAX_RATING_METER_STAR_COUNT: 5,
+ MAX_RATING_IMG_HEIGHT: 29,
+ MAX_RATING_IMG_WIDTH: 146
+ };
+
+ this._styles = {
+ "Style0": {
+ "_ctrlTitle": "NowPlaying4CtrlHidden",
+ "_trackDisplay": "NowPlaying4CtrlHidden",
+ "_ctrlTitleIconFrame": "NowPlaying4CtrlHidden",
+ "_ctrlTitleIconImage": "NowPlaying4CtrlHidden",
+ "_hdDisplayFrame": "NowPlaying4CtrlHidden",
+ "_hdDisplayIconImage": "NowPlaying4CtrlHidden",
+ "_hdSubstNum1": "NowPlaying4CtrlHidden",
+ "_hdSubstNum2": "NowPlaying4CtrlHidden",
+ "_hdSubstNum3": "NowPlaying4CtrlHidden",
+ "_hdSubstNum4": "NowPlaying4CtrlHidden",
+ "_hdSubstNum5": "NowPlaying4CtrlHidden",
+ "_hdSubstNum6": "NowPlaying4CtrlHidden",
+ "_hdSubstNum7": "NowPlaying4CtrlHidden",
+ "_hdSubstNum8": "NowPlaying4CtrlHidden",
+ "_loadingImageFrame": "NowPlaying4CtrlHidden",
+ "_artworkImageFrame": "NowPlaying4CtrlHidden",
+ "_artworkImage": "NowPlaying4CtrlHidden",
+ "_artworkImageBorder": "NowPlaying4CtrlHidden",
+ "_audioTitleFrame": "NowPlaying4CtrlHidden",
+ "_audioTitleIconFrame": "NowPlaying4CtrlHidden",
+ "_audioTitle": "NowPlaying4CtrlHidden",
+ "_detailLine1Frame": "NowPlaying4CtrlHidden",
+ "_detailLine1IconFrame": "NowPlaying4CtrlHidden",
+ "_detailLine1": "NowPlaying4CtrlHidden",
+ "_detailLine2Frame": "NowPlaying4CtrlHidden",
+ "_detailLine2IconFrame": "NowPlaying4CtrlHidden",
+ "_detailLine2": "NowPlaying4CtrlHidden",
+ "_detailLine3Frame": "NowPlaying4CtrlHidden",
+ "_detailLine3IconFrame": "NowPlaying4CtrlHidden",
+ "_detailLine3": "NowPlaying4CtrlHidden",
+ "_unformattedTextFrame": "NowPlaying4CtrlHidden",
+ "_unformattedText": "NowPlaying4CtrlHidden",
+ "_phoneNumberIconFrame": "NowPlaying4CtrlHidden",
+ "_phoneNumber": "NowPlaying4CtrlHidden",
+ "_distanceDirectionIconFrame": "NowPlaying4CtrlHidden",
+ "_distanceDirection": "NowPlaying4CtrlHidden",
+ "_ratingMeterFrame": "NowPlaying4CtrlHidden",
+ "_rmStarNum1": "NowPlaying4CtrlHidden",
+ "_rmStarNum2": "NowPlaying4CtrlHidden",
+ "_rmStarNum3": "NowPlaying4CtrlHidden",
+ "_rmStarNum4": "NowPlaying4CtrlHidden",
+ "_rmStarNum5": "NowPlaying4CtrlHidden",
+ },
+ "Style1": {
+ "_ctrlTitle": "NowPlaying4CtrlTitle",
+ "_trackDisplay": "NowPlaying4CtrlTrackDisplay",
+ "_ctrlTitleIconFrame": "NowPlaying4CtrlHidden",
+ "_ctrlTitleIconImage": "NowPlaying4CtrlTitleIconImage",
+ "_hdDisplayFrame": "NowPlaying4CtrlHidden",
+ "_hdDisplayIconImage": "NowPlaying4CtrlHidden",
+ "_hdSubstNum1": "NowPlaying4CtrlHidden",
+ "_hdSubstNum2": "NowPlaying4CtrlHidden",
+ "_hdSubstNum3": "NowPlaying4CtrlHidden",
+ "_hdSubstNum4": "NowPlaying4CtrlHidden",
+ "_hdSubstNum5": "NowPlaying4CtrlHidden",
+ "_hdSubstNum6": "NowPlaying4CtrlHidden",
+ "_hdSubstNum7": "NowPlaying4CtrlHidden",
+ "_hdSubstNum8": "NowPlaying4CtrlHidden",
+ "_loadingImageFrame": "NowPlaying4CtrlHidden",
+ "_artworkImageFrame": "NowPlaying4CtrlArtworkImageDiv",
+ "_artworkImage": "NowPlaying4CtrlArtworkImage",
+ "_artworkImageBorder": "NowPlaying4CtrlArtworkImageBorder",
+ "_audioTitleFrame": "NowPlaying4CtrlAudioTitleFrame",
+ "_audioTitleIconFrame": "NowPlaying4CtrlAudioTitleIconFrame",
+ "_audioTitle": "NowPlaying4CtrlAudioTitle",
+ "_detailLine1Frame": "NowPlaying4CtrlDetailLine1Frame",
+ "_detailLine1IconFrame": "NowPlaying4CtrlDetailLine1IconFrame",
+ "_detailLine1": "NowPlaying4CtrlDetailLine1",
+ "_detailLine2Frame": "NowPlaying4CtrlDetailLine2Frame",
+ "_detailLine2IconFrame": "NowPlaying4CtrlDetailLine2IconFrame",
+ "_detailLine2": "NowPlaying4CtrlDetailLine2",
+ "_detailLine3Frame": "NowPlaying4CtrlDetailLine3Frame",
+ "_detailLine3IconFrame": "NowPlaying4CtrlDetailLine3IconFrame",
+ "_detailLine3": "NowPlaying4CtrlDetailLine3",
+ "_unformattedTextFrame": "NowPlaying4CtrlHidden",
+ "_unformattedText": "NowPlaying4CtrlHidden",
+ "_phoneNumberIconFrame": "NowPlaying4CtrlHidden",
+ "_phoneNumber": "NowPlaying4CtrlHidden",
+ "_distanceDirectionIconFrame": "NowPlaying4CtrlHidden",
+ "_distanceDirection": "NowPlaying4CtrlHidden",
+ "_ratingMeterFrame": "NowPlaying4CtrlHidden",
+ "_rmStarNum1": "NowPlaying4CtrlHidden",
+ "_rmStarNum2": "NowPlaying4CtrlHidden",
+ "_rmStarNum3": "NowPlaying4CtrlHidden",
+ "_rmStarNum4": "NowPlaying4CtrlHidden",
+ "_rmStarNum5": "NowPlaying4CtrlHidden",
+ },
+ "Style2": {
+ "_ctrlTitle": "NowPlaying4CtrlTitleFull",
+ "_trackDisplay": "NowPlaying4CtrlHidden",
+ "_ctrlTitleIconFrame": "NowPlaying4CtrlHidden",
+ "_ctrlTitleIconImage": "NowPlaying4CtrlTitleIconImage",
+ "_hdDisplayFrame": "NowPlaying4CtrlHidden",
+ "_hdDisplayIconImage": "NowPlaying4CtrlHdDisplayIconImage",
+ "_hdSubstNum1": "NowPlaying4CtrlHidden",
+ "_hdSubstNum2": "NowPlaying4CtrlHidden",
+ "_hdSubstNum3": "NowPlaying4CtrlHidden",
+ "_hdSubstNum4": "NowPlaying4CtrlHidden",
+ "_hdSubstNum5": "NowPlaying4CtrlHidden",
+ "_hdSubstNum6": "NowPlaying4CtrlHidden",
+ "_hdSubstNum7": "NowPlaying4CtrlHidden",
+ "_hdSubstNum8": "NowPlaying4CtrlHidden",
+ "_loadingImageFrame": "NowPlaying4CtrlHidden",
+ "_artworkImageFrame": "NowPlaying4CtrlArtworkImageDiv",
+ "_artworkImage": "NowPlaying4CtrlArtworkImage",
+ "_artworkImageBorder": "NowPlaying4CtrlArtworkImageBorder",
+ "_audioTitleFrame": "NowPlaying4CtrlAudioTitleFrame",
+ "_audioTitleIconFrame": "NowPlaying4CtrlAudioTitleIconFrame",
+ "_audioTitle": "NowPlaying4CtrlAudioTitle",
+ "_detailLine1Frame": "NowPlaying4CtrlDetailLine1Frame",
+ "_detailLine1IconFrame": "NowPlaying4CtrlDetailLine1IconFrame",
+ "_detailLine1": "NowPlaying4CtrlDetailLine1",
+ "_detailLine2Frame": "NowPlaying4CtrlDetailLine2Frame",
+ "_detailLine2IconFrame": "NowPlaying4CtrlDetailLine2IconFrame",
+ "_detailLine2": "NowPlaying4CtrlDetailLine2",
+ "_detailLine3Frame": "NowPlaying4CtrlDetailLine3Frame",
+ "_detailLine3IconFrame": "NowPlaying4CtrlDetailLine3IconFrame",
+ "_detailLine3": "NowPlaying4CtrlDetailLine3",
+ "_unformattedTextFrame": "NowPlaying4CtrlHidden",
+ "_unformattedText": "NowPlaying4CtrlHidden",
+ "_phoneNumberIconFrame": "NowPlaying4CtrlHidden",
+ "_phoneNumber": "NowPlaying4CtrlHidden",
+ "_distanceDirectionIconFrame": "NowPlaying4CtrlHidden",
+ "_distanceDirection": "NowPlaying4CtrlHidden",
+ "_ratingMeterFrame": "NowPlaying4CtrlHidden",
+ "_rmStarNum1": "NowPlaying4CtrlHidden",
+ "_rmStarNum2": "NowPlaying4CtrlHidden",
+ "_rmStarNum3": "NowPlaying4CtrlHidden",
+ "_rmStarNum4": "NowPlaying4CtrlHidden",
+ "_rmStarNum5": "NowPlaying4CtrlHidden",
+ },
+ "Style3": {
+ "_ctrlTitle": "NowPlaying4CtrlTitleFull",
+ "_trackDisplay": "NowPlaying4CtrlHidden",
+ "_ctrlTitleIconFrame": "NowPlaying4CtrlHidden",
+ "_ctrlTitleIconImage": "NowPlaying4CtrlTitleIconImage",
+ "_hdDisplayFrame": "NowPlaying4CtrlHidden",
+ "_hdDisplayIconImage": "NowPlaying4CtrlHidden",
+ "_hdSubstNum1": "NowPlaying4CtrlHidden",
+ "_hdSubstNum2": "NowPlaying4CtrlHidden",
+ "_hdSubstNum3": "NowPlaying4CtrlHidden",
+ "_hdSubstNum4": "NowPlaying4CtrlHidden",
+ "_hdSubstNum5": "NowPlaying4CtrlHidden",
+ "_hdSubstNum6": "NowPlaying4CtrlHidden",
+ "_hdSubstNum7": "NowPlaying4CtrlHidden",
+ "_hdSubstNum8": "NowPlaying4CtrlHidden",
+ "_loadingImageFrame": "NowPlaying4CtrlHidden",
+ "_artworkImageFrame": "NowPlaying4CtrlArtworkImageDiv",
+ "_artworkImage": "NowPlaying4CtrlArtworkImage",
+ "_artworkImageBorder": "NowPlaying4CtrlArtworkImageBorder",
+ "_audioTitleFrame": "NowPlaying4CtrlAudioTitleFrame",
+ "_audioTitleIconFrame": "NowPlaying4CtrlHidden",
+ "_audioTitle": "NowPlaying4CtrlAudioTitleStyle3",
+ "_detailLine1Frame": "NowPlaying4CtrlDetailLine1BlockFrame",
+ "_detailLine1IconFrame": "NowPlaying4CtrlHidden",
+ "_detailLine1": "NowPlaying4CtrlDetailLine1Block",
+ "_detailLine2Frame": "NowPlaying4CtrlHidden",
+ "_detailLine2IconFrame": "NowPlaying4CtrlHidden",
+ "_detailLine2": "NowPlaying4CtrlHidden",
+ "_detailLine3Frame": "NowPlaying4CtrlHidden",
+ "_detailLine3IconFrame": "NowPlaying4CtrlHidden",
+ "_detailLine3": "NowPlaying4CtrlHidden",
+ "_unformattedTextFrame": "NowPlaying4CtrlHidden",
+ "_unformattedText": "NowPlaying4CtrlHidden",
+ "_phoneNumberIconFrame": "NowPlaying4CtrlHidden",
+ "_phoneNumber": "NowPlaying4CtrlHidden",
+ "_distanceDirectionIconFrame": "NowPlaying4CtrlHidden",
+ "_distanceDirection": "NowPlaying4CtrlHidden",
+ "_ratingMeterFrame": "NowPlaying4CtrlHidden",
+ "_rmStarNum1": "NowPlaying4CtrlHidden",
+ "_rmStarNum2": "NowPlaying4CtrlHidden",
+ "_rmStarNum3": "NowPlaying4CtrlHidden",
+ "_rmStarNum4": "NowPlaying4CtrlHidden",
+ "_rmStarNum5": "NowPlaying4CtrlHidden",
+ },
+ "Style4": {
+ "_ctrlTitle": "NowPlaying4CtrlTitle",
+ "_trackDisplay": "NowPlaying4CtrlHidden",
+ "_ctrlTitleIconFrame": "NowPlaying4CtrlHidden",
+ "_ctrlTitleIconImage": "NowPlaying4CtrlTitleIconImage",
+ "_hdDisplayFrame": "NowPlaying4CtrlHidden",
+ "_hdDisplayIconImage": "NowPlaying4CtrlHdDisplayIconImage",
+ "_hdSubstNum1": "NowPlaying4CtrlHidden",
+ "_hdSubstNum2": "NowPlaying4CtrlHidden",
+ "_hdSubstNum3": "NowPlaying4CtrlHidden",
+ "_hdSubstNum4": "NowPlaying4CtrlHidden",
+ "_hdSubstNum5": "NowPlaying4CtrlHidden",
+ "_hdSubstNum6": "NowPlaying4CtrlHidden",
+ "_hdSubstNum7": "NowPlaying4CtrlHidden",
+ "_hdSubstNum8": "NowPlaying4CtrlHidden",
+ "_loadingImageFrame": "NowPlaying4CtrlHidden",
+ "_artworkImageFrame": "NowPlaying4CtrlArtworkImageDiv",
+ "_artworkImage": "NowPlaying4CtrlArtworkImage",
+ "_artworkImageBorder": "NowPlaying4CtrlArtworkImageBorder",
+ "_audioTitleFrame": "NowPlaying4CtrlAudioTitleFrame",
+ "_audioTitleIconFrame": "NowPlaying4CtrlAudioTitleIconFrame",
+ "_audioTitle": "NowPlaying4CtrlAudioTitle",
+ "_detailLine1Frame": "NowPlaying4CtrlDetailLine1Frame",
+ "_detailLine1IconFrame": "NowPlaying4CtrlDetailLine1IconFrame",
+ "_detailLine1": "NowPlaying4CtrlDetailLine1",
+ "_detailLine2Frame": "NowPlaying4CtrlDetailLine2Frame",
+ "_detailLine2IconFrame": "NowPlaying4CtrlDetailLine2IconFrame",
+ "_detailLine2": "NowPlaying4CtrlDetailLine2",
+ "_detailLine3Frame": "NowPlaying4CtrlDetailLine3Frame",
+ "_detailLine3IconFrame": "NowPlaying4CtrlDetailLine3IconFrame",
+ "_detailLine3": "NowPlaying4CtrlDetailLine3",
+ "_unformattedTextFrame": "NowPlaying4CtrlHidden",
+ "_unformattedText": "NowPlaying4CtrlHidden",
+ "_phoneNumberIconFrame": "NowPlaying4CtrlHidden",
+ "_phoneNumber": "NowPlaying4CtrlHidden",
+ "_distanceDirectionIconFrame": "NowPlaying4CtrlHidden",
+ "_distanceDirection": "NowPlaying4CtrlHidden",
+ "_ratingMeterFrame": "NowPlaying4CtrlHidden",
+ "_rmStarNum1": "NowPlaying4CtrlHidden",
+ "_rmStarNum2": "NowPlaying4CtrlHidden",
+ "_rmStarNum3": "NowPlaying4CtrlHidden",
+ "_rmStarNum4": "NowPlaying4CtrlHidden",
+ "_rmStarNum5": "NowPlaying4CtrlHidden",
+ },
+ "Style5": {
+ "_ctrlTitle": "NowPlaying4CtrlTitle",
+ "_trackDisplay": "NowPlaying4CtrlHidden",
+ "_ctrlTitleIconFrame": "NowPlaying4CtrlHidden",
+ "_ctrlTitleIconImage": "NowPlaying4CtrlTitleIconImage",
+ "_hdDisplayFrame": "NowPlaying4CtrlHidden",
+ "_hdDisplayIconImage": "NowPlaying4CtrlHidden",
+ "_hdSubstNum1": "NowPlaying4CtrlHidden",
+ "_hdSubstNum2": "NowPlaying4CtrlHidden",
+ "_hdSubstNum3": "NowPlaying4CtrlHidden",
+ "_hdSubstNum4": "NowPlaying4CtrlHidden",
+ "_hdSubstNum5": "NowPlaying4CtrlHidden",
+ "_hdSubstNum6": "NowPlaying4CtrlHidden",
+ "_hdSubstNum7": "NowPlaying4CtrlHidden",
+ "_hdSubstNum8": "NowPlaying4CtrlHidden",
+ "_loadingImageFrame": "NowPlaying4CtrlHidden",
+ "_artworkImageFrame": "NowPlaying4CtrlArtworkImageDiv",
+ "_artworkImage": "NowPlaying4CtrlArtworkImage",
+ "_artworkImageBorder": "NowPlaying4CtrlArtworkImageBorder",
+ "_audioTitleFrame": "NowPlaying4CtrlAudioTitleFrame",
+ "_audioTitleIconFrame": "NowPlaying4CtrlAudioTitleIconFrame",
+ "_audioTitle": "NowPlaying4CtrlAudioTitle",
+ "_detailLine1Frame": "NowPlaying4CtrlDetailLine1Frame",
+ "_detailLine1IconFrame": "NowPlaying4CtrlDetailLine1IconFrame",
+ "_detailLine1": "NowPlaying4CtrlDetailLine1",
+ "_detailLine2Frame": "NowPlaying4CtrlDetailLine2Frame",
+ "_detailLine2IconFrame": "NowPlaying4CtrlDetailLine2IconFrame",
+ "_detailLine2": "NowPlaying4CtrlDetailLine2",
+ "_detailLine3Frame": "NowPlaying4CtrlHidden",
+ "_detailLine3IconFrame": "NowPlaying4CtrlHidden",
+ "_detailLine3": "NowPlaying4CtrlHidden",
+ "_unformattedTextFrame": "NowPlaying4CtrlHidden",
+ "_unformattedText": "NowPlaying4CtrlHidden",
+ "_phoneNumberIconFrame": "NowPlaying4CtrlHidden",
+ "_phoneNumber": "NowPlaying4CtrlPhoneNumber",
+ "_distanceDirectionIconFrame": "NowPlaying4CtrlHidden",
+ "_distanceDirection": "NowPlaying4CtrlDistanceDirection",
+ "_ratingMeterFrame": "NowPlaying4CtrlRatingMeterFrame",
+ "_rmStarNum1": "NowPlaying4CtrlRmStarHollow",
+ "_rmStarNum2": "NowPlaying4CtrlRmStarHollow",
+ "_rmStarNum3": "NowPlaying4CtrlRmStarHollow",
+ "_rmStarNum4": "NowPlaying4CtrlRmStarHollow",
+ "_rmStarNum5": "NowPlaying4CtrlRmStarHollow",
+ },
+ "Style6": {
+ "_ctrlTitle": "NowPlaying4CtrlTitle",
+ "_trackDisplay": "NowPlaying4CtrlHidden",
+ "_ctrlTitleIconFrame": "NowPlaying4CtrlHidden",
+ "_ctrlTitleIconImage": "NowPlaying4CtrlTitleIconImage",
+ "_hdDisplayFrame": "NowPlaying4CtrlHidden",
+ "_hdDisplayIconImage": "NowPlaying4CtrlHidden",
+ "_hdSubstNum1": "NowPlaying4CtrlHidden",
+ "_hdSubstNum2": "NowPlaying4CtrlHidden",
+ "_hdSubstNum3": "NowPlaying4CtrlHidden",
+ "_hdSubstNum4": "NowPlaying4CtrlHidden",
+ "_hdSubstNum5": "NowPlaying4CtrlHidden",
+ "_hdSubstNum6": "NowPlaying4CtrlHidden",
+ "_hdSubstNum7": "NowPlaying4CtrlHidden",
+ "_hdSubstNum8": "NowPlaying4CtrlHidden",
+ "_loadingImageFrame": "NowPlaying4CtrlHidden",
+ "_artworkImageFrame": "NowPlaying4CtrlArtworkImageDiv",
+ "_artworkImage": "NowPlaying4CtrlArtworkImage",
+ "_artworkImageBorder": "NowPlaying4CtrlArtworkImageBorder",
+ "_audioTitleFrame": "NowPlaying4CtrlAudioTitleBlockFrame",
+ "_audioTitleIconFrame": "NowPlaying4CtrlAudioTitleIconFrame",
+ "_audioTitle": "NowPlaying4CtrlAudioTitleBlock",
+ "_detailLine1Frame": "NowPlaying4CtrlHidden",
+ "_detailLine1IconFrame": "NowPlaying4CtrlHidden",
+ "_detailLine1": "NowPlaying4CtrlHidden",
+ "_detailLine2Frame": "NowPlaying4CtrlHidden",
+ "_detailLine2IconFrame": "NowPlaying4CtrlHidden",
+ "_detailLine2": "NowPlaying4CtrlHidden",
+ "_detailLine3Frame": "NowPlaying4CtrlHidden",
+ "_detailLine3IconFrame": "NowPlaying4CtrlHidden",
+ "_detailLine3": "NowPlaying4CtrlHidden",
+ "_unformattedTextFrame": "NowPlaying4CtrlHidden",
+ "_unformattedText": "NowPlaying4CtrlHidden",
+ "_phoneNumberIconFrame": "NowPlaying4CtrlHidden",
+ "_phoneNumber": "NowPlaying4CtrlHidden",
+ "_distanceDirectionIconFrame": "NowPlaying4CtrlHidden",
+ "_distanceDirection": "NowPlaying4CtrlHidden",
+ "_ratingMeterFrame": "NowPlaying4CtrlHidden",
+ "_rmStarNum1": "NowPlaying4CtrlHidden",
+ "_rmStarNum2": "NowPlaying4CtrlHidden",
+ "_rmStarNum3": "NowPlaying4CtrlHidden",
+ "_rmStarNum4": "NowPlaying4CtrlHidden",
+ "_rmStarNum5": "NowPlaying4CtrlHidden",
+ },
+ "Style7": {
+ "_ctrlTitle": "NowPlaying4CtrlTitle",
+ "_trackDisplay": "NowPlaying4CtrlHidden",
+ "_ctrlTitleIconFrame": "NowPlaying4CtrlHidden",
+ "_ctrlTitleIconImage": "NowPlaying4CtrlTitleIconImage",
+ "_hdDisplayFrame": "NowPlaying4CtrlHidden",
+ "_hdDisplayIconImage": "NowPlaying4CtrlHidden",
+ "_hdSubstNum1": "NowPlaying4CtrlHidden",
+ "_hdSubstNum2": "NowPlaying4CtrlHidden",
+ "_hdSubstNum3": "NowPlaying4CtrlHidden",
+ "_hdSubstNum4": "NowPlaying4CtrlHidden",
+ "_hdSubstNum5": "NowPlaying4CtrlHidden",
+ "_hdSubstNum6": "NowPlaying4CtrlHidden",
+ "_hdSubstNum7": "NowPlaying4CtrlHidden",
+ "_hdSubstNum8": "NowPlaying4CtrlHidden",
+ "_loadingImageFrame": "NowPlaying4CtrlLoadingImageFrame",
+ "_artworkImageFrame": "NowPlaying4CtrlHidden",
+ "_artworkImage": "NowPlaying4CtrlHidden",
+ "_artworkImageBorder": "NowPlaying4CtrlHidden",
+ "_ctrlSubtitle": "NowPlaying4CtrlSubtitle",
+ "_audioTitleFrame": "NowPlaying4CtrlAudioTitleBlockFrame",
+ "_audioTitleFrame": "NowPlaying4CtrlAudioTitleFrame",
+ "_audioTitleIconFrame": "NowPlaying4CtrlAudioTitleIconFrame",
+ "_audioTitle": "NowPlaying4CtrlAudioTitle",
+ "_detailLine1Frame": "NowPlaying4CtrlDetailLine1Frame",
+ "_detailLine1IconFrame": "NowPlaying4CtrlDetailLine1IconFrame",
+ "_detailLine1": "NowPlaying4CtrlDetailLine1",
+ "_detailLine2Frame": "NowPlaying4CtrlDetailLine2Frame",
+ "_detailLine2IconFrame": "NowPlaying4CtrlDetailLine2IconFrame",
+ "_detailLine2": "NowPlaying4CtrlDetailLine2",
+ "_detailLine3Frame": "NowPlaying4CtrlDetailLine3Frame",
+ "_detailLine3IconFrame": "NowPlaying4CtrlDetailLine3IconFrame",
+ "_detailLine3": "NowPlaying4CtrlDetailLine3",
+ "_unformattedTextFrame": "NowPlaying4CtrlHidden",
+ "_unformattedText": "NowPlaying4CtrlHidden",
+ "_phoneNumberIconFrame": "NowPlaying4CtrlHidden",
+ "_phoneNumber": "NowPlaying4CtrlHidden",
+ "_distanceDirectionIconFrame": "NowPlaying4CtrlHidden",
+ "_distanceDirection": "NowPlaying4CtrlHidden",
+ "_ratingMeterFrame": "NowPlaying4CtrlHidden",
+ "_rmStarNum1": "NowPlaying4CtrlHidden",
+ "_rmStarNum2": "NowPlaying4CtrlHidden",
+ "_rmStarNum3": "NowPlaying4CtrlHidden",
+ "_rmStarNum4": "NowPlaying4CtrlHidden",
+ "_rmStarNum5": "NowPlaying4CtrlHidden",
+ }, // ---MZDMOD---
+ "Style8": {
+ "_ctrlTitle": "NowPlaying4CtrlTitleFull",
+ "_trackDisplay": "NowPlaying4CtrlHidden",
+ "_ctrlTitleIconFrameLeft": "NowPlaying4CtrlTitleIconFrameLeft",
+ //"_ctrlTitleIconImageLeft" : "NowPlaying4CtrlTitleIconImageLeft",
+ "_ctrlTitleIconFrame": "NowPlaying4CtrlHidden",
+ "_ctrlTitleIconImage": "NowPlaying4CtrlTitleIconImage",
+ "_hdDisplayFrame": "NowPlaying4CtrlHidden",
+ "_hdDisplayIconImage": "NowPlaying4CtrlHidden",
+ "_hdSubstNum1": "NowPlaying4CtrlHidden",
+ "_hdSubstNum2": "NowPlaying4CtrlHidden",
+ "_hdSubstNum3": "NowPlaying4CtrlHidden",
+ "_hdSubstNum4": "NowPlaying4CtrlHidden",
+ "_hdSubstNum5": "NowPlaying4CtrlHidden",
+ "_hdSubstNum6": "NowPlaying4CtrlHidden",
+ "_hdSubstNum7": "NowPlaying4CtrlHidden",
+ "_hdSubstNum8": "NowPlaying4CtrlHidden",
+ "_loadingImageFrame": "NowPlaying4CtrlHidden",
+ "_artworkImageFrame": "NowPlaying4CtrlArtworkImageDiv",
+ "_artworkImage": "NowPlaying4CtrlArtworkImage",
+ "_artworkImageBorder": "NowPlaying4CtrlArtworkImageBorder",
+ "_audioTitleFrame": "NowPlaying4CtrlAudioTitleFrame",
+ "_audioTitleIconFrame": "NowPlaying4CtrlAudioTitleIconFrame",
+ "_audioTitle": "NowPlaying4CtrlAudioTitle",
+ "_detailLine1Frame": "NowPlaying4CtrlDetailLine1Frame",
+ "_detailLine1IconFrame": "NowPlaying4CtrlDetailLine1IconFrame",
+ "_detailLine1": "NowPlaying4CtrlDetailLine1",
+ "_detailLine2Frame": "NowPlaying4CtrlDetailLine2Frame",
+ "_detailLine2IconFrame": "NowPlaying4CtrlDetailLine2IconFrame",
+ "_detailLine2": "NowPlaying4CtrlDetailLine2",
+ "_detailLine3Frame": "NowPlaying4CtrlDetailLine3Frame",
+ "_detailLine3IconFrame": "NowPlaying4CtrlDetailLine3IconFrame",
+ "_detailLine3": "NowPlaying4CtrlDetailLine3",
+ "_unformattedTextFrame": "NowPlaying4CtrlHidden",
+ "_unformattedText": "NowPlaying4CtrlHidden",
+ "_phoneNumberIconFrame": "NowPlaying4CtrlHidden",
+ "_phoneNumber": "NowPlaying4CtrlHidden",
+ "_distanceDirectionIconFrame": "NowPlaying4CtrlHidden",
+ "_distanceDirection": "NowPlaying4CtrlHidden",
+ "_ratingMeterFrame": "NowPlaying4CtrlHidden",
+ "_rmStarNum1": "NowPlaying4CtrlHidden",
+ "_rmStarNum2": "NowPlaying4CtrlHidden",
+ "_rmStarNum3": "NowPlaying4CtrlHidden",
+ "_rmStarNum4": "NowPlaying4CtrlHidden",
+ "_rmStarNum5": "NowPlaying4CtrlHidden",
+ },
+ };
+
+ //@formatter:off
+ this.properties = {
+ "ctrlStyle": "",
+ "ctrlTitleObj": null,
+ "ctrlSubtitleObj": null,
+ "hdConfigObj": null,
+ "trackCount": 0,
+ "currentTrackNum": 0,
+ "loadingIcon": false,
+ "audioTitleObj": null,
+ "detailLine1Obj": null,
+ "detailLine2Obj": null,
+ "detailLine3Obj": null,
+ "unformattedTextObj": null,
+ "artworkImagePath": "",
+ "noArtworkImagePath": "",
+ "phoneNumber": "",
+ "distanceDirection": "",
+ "rating": 0,
+ "umpConfig": null,
+ };
+ //@formatter:on
+
+ for (var i in properties) {
+ this.properties[i] = properties[i];
+ }
+
+ this._createStructure();
}
-NowPlaying4Ctrl.prototype._init = function()
-{
- // Configure the control, based on the passed-in instantiation properties
- this.setNowPlayingConfig(this.properties);
+NowPlaying4Ctrl.prototype._init = function () {
+ // Configure the control, based on the passed-in instantiation properties
+ this.setNowPlayingConfig(this.properties);
};
-NowPlaying4Ctrl.prototype._createStructure = function()
-{
- // create the div for control
- this.divElt = document.createElement('div');
- this.divElt.className = "NowPlaying4Ctrl";
- this.divElt.id = this.controlId;
-
- // create div for control title
- this._ctrlTitle = document.createElement('div');
- this._ctrlTitle.className = "NowPlaying4CtrlTitle";
- this.divElt.appendChild(this._ctrlTitle);
-
- // create span for track display
- this._trackDisplay = document.createElement("span");
- this._trackDisplay.className = "NowPlaying4CtrlTrackDisplay";
- this.divElt.appendChild(this._trackDisplay);
-
- // ---MZDMOD---
- // Only for style8
- // create div for control title's icon, left most
- // CSS file also updated to set to left of title
- this._ctrlTitleIconFrameLeft = document.createElement('div');
- this._ctrlTitleIconFrameLeft.className = "NowPlaying4CtrlTitleIconFrameLeft";
- this.divElt.appendChild(this._ctrlTitleIconFrameLeft);
-
- // create div for control title's icon
- this._ctrlTitleIconFrame = document.createElement('div');
- this._ctrlTitleIconFrame.className = "NowPlaying4CtrlTitleIconFrame";
- this.divElt.appendChild(this._ctrlTitleIconFrame);
-
- // create image for control title's icon
- this._ctrlTitleIconImage = document.createElement('img');
- this._ctrlTitleIconImage.className = "NowPlaying4CtrlTitleIconImage";
- this._ctrlTitleIconFrame.appendChild(this._ctrlTitleIconImage);
-
- // create div for loading image
- this._loadingImageFrame = document.createElement('div');
- this._loadingImageFrame.className = "NowPlaying4CtrlHidden";
- this.divElt.appendChild(this._loadingImageFrame);
-
- // create div for HD display
- this._hdDisplayFrame = document.createElement('div');
- this._hdDisplayFrame.className = "NowPlaying4CtrlHdDisplayFrame";
- this.divElt.appendChild(this._hdDisplayFrame);
-
- // create image for HD display's icon
- this._hdDisplayIconImage = document.createElement('img');
- this._hdDisplayIconImage.className = "NowPlaying4CtrlHdDisplayIconImage";
- this._hdDisplayFrame.appendChild(this._hdDisplayIconImage);
-
- // create div's for HD substation indicators
- for (var hdSubstNum = 1; hdSubstNum <= this._constants.MAX_HD_SUBSTATION_COUNT; hdSubstNum++)
- {
- this["_hdSubstNum" + hdSubstNum] = document.createElement('div');
- this["_hdSubstNum" + hdSubstNum].style.left = (35 + ((hdSubstNum - 1) * 14)) + "px";
- this["_hdSubstNum" + hdSubstNum].innerText = "" + hdSubstNum;
- this._hdDisplayFrame.appendChild(this["_hdSubstNum" + hdSubstNum]);
- }
-
- // create div for artwork image
- this._artworkImageFrame = document.createElement('div');
- this._artworkImageFrame.className = "NowPlaying4CtrlArtworkImageDiv";
- this.divElt.appendChild(this._artworkImageFrame);
-
- // create img for artwork image
- this._artworkImage = document.createElement('img');
- this._artworkImage.className = "NowPlaying4CtrlArtworkImage";
- this._artworkImageFrame.appendChild(this._artworkImage);
-
- // create div for artwork image border
- this._artworkImageBorder = document.createElement('div');
- this._artworkImageBorder.className = "NowPlaying4CtrlArtworkImageBorder";
- this._artworkImageFrame.appendChild(this._artworkImageBorder);
-
- // create div for audio info box
- this._infoBox = document.createElement('div');
- this._infoBox.className = "NowPlaying4CtrlInfoBox";
- this.divElt.appendChild(this._infoBox);
-
- // create div for control subtitle
- this._ctrlSubtitle = document.createElement('div');
- this._ctrlSubtitle.className = "NowPlaying4CtrlSubtitle";
- this._infoBox.appendChild(this._ctrlSubtitle);
-
- // create div for song title line
- this._audioTitleFrame = document.createElement('div');
- this._audioTitleFrame.className = "NowPlaying4CtrlAudioTitleFrame";
- this._infoBox.appendChild(this._audioTitleFrame);
-
- // create div for song title's icon
- this._audioTitleIconFrame = document.createElement('div');
- this._audioTitleIconFrame.className = "NowPlaying4CtrlAudioTitleIconFrame";
- this._audioTitleFrame.appendChild(this._audioTitleIconFrame);
-
- // create span for song title
- this._audioTitle = document.createElement("span");
- this._audioTitle.className = "NowPlaying4CtrlAudioTitle";
- this._audioTitleFrame.appendChild(this._audioTitle);
-
- // create div for artist name line
- this._detailLine1Frame = document.createElement('div');
- this._detailLine1Frame.className = "NowPlaying4CtrlDetailLine1Frame";
- this._infoBox.appendChild(this._detailLine1Frame);
-
- // create div for artist name's icon
- this._detailLine1IconFrame = document.createElement('div');
- this._detailLine1IconFrame.className = "NowPlaying4CtrlDetailLine1IconFrame";
- this._detailLine1Frame.appendChild(this._detailLine1IconFrame);
-
- // create span for artist name
- this._detailLine1 = document.createElement('div');
- this._detailLine1.className = "NowPlaying4CtrlDetailLine1";
- this._detailLine1Frame.appendChild(this._detailLine1);
-
- // create div for album title line
- this._detailLine2Frame = document.createElement('div');
- this._detailLine2Frame.className = "NowPlaying4CtrlDetailLine2Frame";
- this._infoBox.appendChild(this._detailLine2Frame);
-
- // create div for album title's icon
- this._detailLine2IconFrame = document.createElement('div');
- this._detailLine2IconFrame.className = "NowPlaying4CtrlDetailLine2IconFrame";
- this._detailLine2Frame.appendChild(this._detailLine2IconFrame);
-
- // create span for album title
- this._detailLine2 = document.createElement('div');
- this._detailLine2.className = "NowPlaying4CtrlDetailLine2";
- this._detailLine2Frame.appendChild(this._detailLine2);
-
- // create div for "other" line
- this._detailLine3Frame = document.createElement('div');
- this._detailLine3Frame.className = "NowPlaying4CtrlDetailLine3Frame";
- this._infoBox.appendChild(this._detailLine3Frame);
-
- // create div for "other"'s icon
- this._detailLine3IconFrame = document.createElement('div');
- this._detailLine3IconFrame.className = "NowPlaying4CtrlDetailLine3IconFrame";
- this._detailLine3Frame.appendChild(this._detailLine3IconFrame);
-
- // create span for "other"
- this._detailLine3 = document.createElement('div');
- this._detailLine3.className = "NowPlaying4CtrlDetailLine3";
- this._detailLine3Frame.appendChild(this._detailLine3);
-
- //create div for unformatted Text Frame
- this._unformattedTextFrame = document.createElement('div');
- this._unformattedTextFrame.className = "NowPlaying4CtrlUnformattedTextFrame";
- this._infoBox.appendChild(this._unformattedTextFrame);
-
- // create div for unformattedText
- this._unformattedText = document.createElement('div');
- this._unformattedText.className = "NowPlaying4CtrlUnformattedText";
- this._unformattedTextFrame.appendChild(this._unformattedText);
-
- // create div for phone number's icon
- this._phoneNumberIconFrame = document.createElement('div');
- this._phoneNumberIconFrame.style.backgroundImage = "url(common/controls/NowPlaying4/images/IcnAhaPhone.png)";
- this._phoneNumberIconFrame.className = "NowPlaying4CtrlPhoneNumberIconFrame";
- this.divElt.appendChild(this._phoneNumberIconFrame);
-
- // create span for phone number
- this._phoneNumber = document.createElement("span");
- this._phoneNumber.className = "NowPlaying4CtrlPhoneNumber";
- this.divElt.appendChild(this._phoneNumber);
-
- // create div for phone number's icon
- this._distanceDirectionIconFrame = document.createElement('div');
- this._distanceDirectionIconFrame.style.backgroundImage = "url(common/controls/NowPlaying4/images/IcnAhaGlobe.png)";
- this._distanceDirectionIconFrame.className = "NowPlaying4CtrlDistanceDirectionIconFrame";
- this.divElt.appendChild(this._distanceDirectionIconFrame);
-
- // create span for distance & direction
- this._distanceDirection = document.createElement("span");
- this._distanceDirection.className = "NowPlaying4CtrlDistanceDirection";
- this.divElt.appendChild(this._distanceDirection);
-
- // create div for rating meter
- this._ratingMeterFrame = document.createElement('div');
- this._ratingMeterFrame.className = "NowPlaying4CtrlRatingMeterFrame";
- this.divElt.appendChild(this._ratingMeterFrame);
-
- // create alternate div for custom rating meter
- this._customRatingDiv = document.createElement('div');
- this._customRatingDiv.className = "NowPlaying4CtrlCustomRatingDiv";
- this.divElt.appendChild(this._customRatingDiv);
-
- // create div's for rating meter stars
- for (var rmStarNum = 1; rmStarNum <= this._constants.MAX_RATING_METER_STAR_COUNT; rmStarNum++)
- {
- this["_rmStarNum" + rmStarNum] = document.createElement('div');
- this["_rmStarNum" + rmStarNum].style.left = ((rmStarNum - 1) * 29) + "px";
- this._ratingMeterFrame.appendChild(this["_rmStarNum" + rmStarNum]);
- }
-
- // attach control to parent
- this.parentDiv.appendChild(this.divElt);
-
- log.debug("Instantiating umpCtrl...");
- this.umpCtrl = framework.instantiateControl(this.uiaId,
- this.divElt,
- "Ump3Ctrl",
- this.properties.umpConfig);
- this._init();
+NowPlaying4Ctrl.prototype._createStructure = function () {
+ // create the div for control
+ this.divElt = document.createElement('div');
+ this.divElt.className = "NowPlaying4Ctrl";
+ this.divElt.id = this.controlId;
+
+ // create div for control title
+ this._ctrlTitle = document.createElement('div');
+ this._ctrlTitle.className = "NowPlaying4CtrlTitle";
+ this.divElt.appendChild(this._ctrlTitle);
+
+ // create span for track display
+ this._trackDisplay = document.createElement("span");
+ this._trackDisplay.className = "NowPlaying4CtrlTrackDisplay";
+ this.divElt.appendChild(this._trackDisplay);
+
+ // ---MZDMOD---
+ // Only for style8
+ // create div for control title's icon, left most
+ // CSS file also updated to set to left of title
+ this._ctrlTitleIconFrameLeft = document.createElement('div');
+ this._ctrlTitleIconFrameLeft.className = "NowPlaying4CtrlTitleIconFrameLeft";
+ this.divElt.appendChild(this._ctrlTitleIconFrameLeft);
+
+ // create div for control title's icon
+ this._ctrlTitleIconFrame = document.createElement('div');
+ this._ctrlTitleIconFrame.className = "NowPlaying4CtrlTitleIconFrame";
+ this.divElt.appendChild(this._ctrlTitleIconFrame);
+
+ // create image for control title's icon
+ this._ctrlTitleIconImage = document.createElement('img');
+ this._ctrlTitleIconImage.className = "NowPlaying4CtrlTitleIconImage";
+ this._ctrlTitleIconFrame.appendChild(this._ctrlTitleIconImage);
+
+ // create div for loading image
+ this._loadingImageFrame = document.createElement('div');
+ this._loadingImageFrame.className = "NowPlaying4CtrlHidden";
+ this.divElt.appendChild(this._loadingImageFrame);
+
+ // create div for HD display
+ this._hdDisplayFrame = document.createElement('div');
+ this._hdDisplayFrame.className = "NowPlaying4CtrlHdDisplayFrame";
+ this.divElt.appendChild(this._hdDisplayFrame);
+
+ // create image for HD display's icon
+ this._hdDisplayIconImage = document.createElement('img');
+ this._hdDisplayIconImage.className = "NowPlaying4CtrlHdDisplayIconImage";
+ this._hdDisplayFrame.appendChild(this._hdDisplayIconImage);
+
+ // create div's for HD substation indicators
+ for (var hdSubstNum = 1; hdSubstNum <= this._constants.MAX_HD_SUBSTATION_COUNT; hdSubstNum++) {
+ this["_hdSubstNum" + hdSubstNum] = document.createElement('div');
+ this["_hdSubstNum" + hdSubstNum].style.left = (35 + ((hdSubstNum - 1) * 14)) + "px";
+ this["_hdSubstNum" + hdSubstNum].innerText = "" + hdSubstNum;
+ this._hdDisplayFrame.appendChild(this["_hdSubstNum" + hdSubstNum]);
+ }
+
+ // create div for artwork image
+ this._artworkImageFrame = document.createElement('div');
+ this._artworkImageFrame.className = "NowPlaying4CtrlArtworkImageDiv";
+ this.divElt.appendChild(this._artworkImageFrame);
+
+ // create img for artwork image
+ this._artworkImage = document.createElement('img');
+ this._artworkImage.className = "NowPlaying4CtrlArtworkImage";
+ this._artworkImageFrame.appendChild(this._artworkImage);
+
+ // create div for artwork image border
+ this._artworkImageBorder = document.createElement('div');
+ this._artworkImageBorder.className = "NowPlaying4CtrlArtworkImageBorder";
+ this._artworkImageFrame.appendChild(this._artworkImageBorder);
+
+ // create div for audio info box
+ this._infoBox = document.createElement('div');
+ this._infoBox.className = "NowPlaying4CtrlInfoBox";
+ this.divElt.appendChild(this._infoBox);
+
+ // create div for control subtitle
+ this._ctrlSubtitle = document.createElement('div');
+ this._ctrlSubtitle.className = "NowPlaying4CtrlSubtitle";
+ this._infoBox.appendChild(this._ctrlSubtitle);
+
+ // create div for song title line
+ this._audioTitleFrame = document.createElement('div');
+ this._audioTitleFrame.className = "NowPlaying4CtrlAudioTitleFrame";
+ this._infoBox.appendChild(this._audioTitleFrame);
+
+ // create div for song title's icon
+ this._audioTitleIconFrame = document.createElement('div');
+ this._audioTitleIconFrame.className = "NowPlaying4CtrlAudioTitleIconFrame";
+ this._audioTitleFrame.appendChild(this._audioTitleIconFrame);
+
+ // create span for song title
+ this._audioTitle = document.createElement("span");
+ this._audioTitle.className = "NowPlaying4CtrlAudioTitle";
+ this._audioTitleFrame.appendChild(this._audioTitle);
+
+ // create div for artist name line
+ this._detailLine1Frame = document.createElement('div');
+ this._detailLine1Frame.className = "NowPlaying4CtrlDetailLine1Frame";
+ this._infoBox.appendChild(this._detailLine1Frame);
+
+ // create div for artist name's icon
+ this._detailLine1IconFrame = document.createElement('div');
+ this._detailLine1IconFrame.className = "NowPlaying4CtrlDetailLine1IconFrame";
+ this._detailLine1Frame.appendChild(this._detailLine1IconFrame);
+
+ // create span for artist name
+ this._detailLine1 = document.createElement('div');
+ this._detailLine1.className = "NowPlaying4CtrlDetailLine1";
+ this._detailLine1Frame.appendChild(this._detailLine1);
+
+ // create div for album title line
+ this._detailLine2Frame = document.createElement('div');
+ this._detailLine2Frame.className = "NowPlaying4CtrlDetailLine2Frame";
+ this._infoBox.appendChild(this._detailLine2Frame);
+
+ // create div for album title's icon
+ this._detailLine2IconFrame = document.createElement('div');
+ this._detailLine2IconFrame.className = "NowPlaying4CtrlDetailLine2IconFrame";
+ this._detailLine2Frame.appendChild(this._detailLine2IconFrame);
+
+ // create span for album title
+ this._detailLine2 = document.createElement('div');
+ this._detailLine2.className = "NowPlaying4CtrlDetailLine2";
+ this._detailLine2Frame.appendChild(this._detailLine2);
+
+ // create div for "other" line
+ this._detailLine3Frame = document.createElement('div');
+ this._detailLine3Frame.className = "NowPlaying4CtrlDetailLine3Frame";
+ this._infoBox.appendChild(this._detailLine3Frame);
+
+ // create div for "other"'s icon
+ this._detailLine3IconFrame = document.createElement('div');
+ this._detailLine3IconFrame.className = "NowPlaying4CtrlDetailLine3IconFrame";
+ this._detailLine3Frame.appendChild(this._detailLine3IconFrame);
+
+ // create span for "other"
+ this._detailLine3 = document.createElement('div');
+ this._detailLine3.className = "NowPlaying4CtrlDetailLine3";
+ this._detailLine3Frame.appendChild(this._detailLine3);
+
+ //create div for unformatted Text Frame
+ this._unformattedTextFrame = document.createElement('div');
+ this._unformattedTextFrame.className = "NowPlaying4CtrlUnformattedTextFrame";
+ this._infoBox.appendChild(this._unformattedTextFrame);
+
+ // create div for unformattedText
+ this._unformattedText = document.createElement('div');
+ this._unformattedText.className = "NowPlaying4CtrlUnformattedText";
+ this._unformattedTextFrame.appendChild(this._unformattedText);
+
+ // create div for phone number's icon
+ this._phoneNumberIconFrame = document.createElement('div');
+ this._phoneNumberIconFrame.style.backgroundImage = "url(common/controls/NowPlaying4/images/IcnAhaPhone.png)";
+ this._phoneNumberIconFrame.className = "NowPlaying4CtrlPhoneNumberIconFrame";
+ this.divElt.appendChild(this._phoneNumberIconFrame);
+
+ // create span for phone number
+ this._phoneNumber = document.createElement("span");
+ this._phoneNumber.className = "NowPlaying4CtrlPhoneNumber";
+ this.divElt.appendChild(this._phoneNumber);
+
+ // create div for phone number's icon
+ this._distanceDirectionIconFrame = document.createElement('div');
+ this._distanceDirectionIconFrame.style.backgroundImage = "url(common/controls/NowPlaying4/images/IcnAhaGlobe.png)";
+ this._distanceDirectionIconFrame.className = "NowPlaying4CtrlDistanceDirectionIconFrame";
+ this.divElt.appendChild(this._distanceDirectionIconFrame);
+
+ // create span for distance & direction
+ this._distanceDirection = document.createElement("span");
+ this._distanceDirection.className = "NowPlaying4CtrlDistanceDirection";
+ this.divElt.appendChild(this._distanceDirection);
+
+ // create div for rating meter
+ this._ratingMeterFrame = document.createElement('div');
+ this._ratingMeterFrame.className = "NowPlaying4CtrlRatingMeterFrame";
+ this.divElt.appendChild(this._ratingMeterFrame);
+
+ // create alternate div for custom rating meter
+ this._customRatingDiv = document.createElement('div');
+ this._customRatingDiv.className = "NowPlaying4CtrlCustomRatingDiv";
+ this.divElt.appendChild(this._customRatingDiv);
+
+ // create div's for rating meter stars
+ for (var rmStarNum = 1; rmStarNum <= this._constants.MAX_RATING_METER_STAR_COUNT; rmStarNum++) {
+ this["_rmStarNum" + rmStarNum] = document.createElement('div');
+ this["_rmStarNum" + rmStarNum].style.left = ((rmStarNum - 1) * 29) + "px";
+ this._ratingMeterFrame.appendChild(this["_rmStarNum" + rmStarNum]);
+ }
+
+ // attach control to parent
+ this.parentDiv.appendChild(this.divElt);
+
+ log.debug("Instantiating umpCtrl...");
+ this.umpCtrl = framework.instantiateControl(this.uiaId,
+ this.divElt,
+ "Ump3Ctrl",
+ this.properties.umpConfig);
+ this._init();
};
-NowPlaying4Ctrl.prototype._updateTrackDisplay = function()
-{
- var trackDisplayStr = "" + this.properties.currentTrackNum;
+NowPlaying4Ctrl.prototype._updateTrackDisplay = function () {
+ var trackDisplayStr = "" + this.properties.currentTrackNum;
- if (this.properties.trackCount > 0)
- {
- trackDisplayStr += "/" + this.properties.trackCount;
- }
+ if (this.properties.trackCount > 0) {
+ trackDisplayStr += "/" + this.properties.trackCount;
+ }
- this._trackDisplay.innerText = trackDisplayStr;
+ this._trackDisplay.innerText = trackDisplayStr;
};
-NowPlaying4Ctrl.prototype._updateRatingMeter = function()
-{
- var rmStarClassName;
+NowPlaying4Ctrl.prototype._updateRatingMeter = function () {
+ var rmStarClassName;
- this._customRatingDiv.className = "NowPlaying4CtrlHidden";
- if (this.properties.rating === -1 || this.properties.ctrlStyle !== "Style5")
- {
- this._ratingMeterFrame.className = "NowPlaying4CtrlHidden";
- log.debug("Rating only visible in Style5");
- }
- else
- {
- this._ratingMeterFrame.className = "NowPlaying4CtrlRatingMeterFrame";
- for (var rmStarNum = 1; rmStarNum <= this._constants.MAX_RATING_METER_STAR_COUNT; rmStarNum++)
- {
- rmStarClassName = "NowPlaying4CtrlRmStar";
- if (this.properties.rating < rmStarNum - 0.5)
- {
- rmStarClassName += "Hollow";
- }
- else if (this.properties.rating < rmStarNum)
- {
- rmStarClassName += "Half";
- }
- else
- {
- rmStarClassName += "Filled";
- }
- log.debug("_updateRatingMeter(" + rmStarNum + "): " + rmStarClassName);
- this["_rmStarNum" + rmStarNum].className = rmStarClassName;
- }
+ this._customRatingDiv.className = "NowPlaying4CtrlHidden";
+ if (this.properties.rating === -1 || this.properties.ctrlStyle !== "Style5") {
+ this._ratingMeterFrame.className = "NowPlaying4CtrlHidden";
+ log.debug("Rating only visible in Style5");
+ } else {
+ this._ratingMeterFrame.className = "NowPlaying4CtrlRatingMeterFrame";
+ for (var rmStarNum = 1; rmStarNum <= this._constants.MAX_RATING_METER_STAR_COUNT; rmStarNum++) {
+ rmStarClassName = "NowPlaying4CtrlRmStar";
+ if (this.properties.rating < rmStarNum - 0.5) {
+ rmStarClassName += "Hollow";
+ } else if (this.properties.rating < rmStarNum) {
+ rmStarClassName += "Half";
+ } else {
+ rmStarClassName += "Filled";
+ }
+ log.debug("_updateRatingMeter(" + rmStarNum + "): " + rmStarClassName);
+ this["_rmStarNum" + rmStarNum].className = rmStarClassName;
}
+ }
};
-NowPlaying4Ctrl.prototype._updateHdSubstationStyles = function()
-{
- if (this.properties.hdConfigObj)
- {
- // Scan all of the substation configurations
- for (var i = 1; i <= this._constants.MAX_HD_SUBSTATION_COUNT; i++)
- {
- // Local copy of the current substation configuration
- var hdSubst = this.properties.hdConfigObj.hdSubstList[i - 1];
-
- // If the substation is active while the tuner is unlocked, ...
- if ((hdSubst === "Active") &&
- this.properties.hdConfigObj.hdStatus !== "Locked")
- {
- // ... override the configuation so it appears inactive
- hdSubst = "Inactive";
- }
-
- // Set the class name based on the substation configuration
- switch (hdSubst)
- {
- case "Active":
- // HD substation number is visible and highlighted
- this["_hdSubstNum" + i].className = "NowPlaying4CtrlHdSubst" + i + "Active";
- break;
- case "Inactive":
- // HD substation number is visible, but greyed out
- this["_hdSubstNum" + i].className = "NowPlaying4CtrlHdSubst" + i;
- break;
- default:
- // Anything else ("Unavailable" or "Undefined") is hidden (gap in display)
- this["_hdSubstNum" + i].className = "NowPlaying4CtrlHidden";
- break;
- }
- }
+NowPlaying4Ctrl.prototype._updateHdSubstationStyles = function () {
+ if (this.properties.hdConfigObj) {
+ // Scan all of the substation configurations
+ for (var i = 1; i <= this._constants.MAX_HD_SUBSTATION_COUNT; i++) {
+ // Local copy of the current substation configuration
+ var hdSubst = this.properties.hdConfigObj.hdSubstList[i - 1];
+
+ // If the substation is active while the tuner is unlocked, ...
+ if ((hdSubst === "Active") &&
+ this.properties.hdConfigObj.hdStatus !== "Locked") {
+ // ... override the configuation so it appears inactive
+ hdSubst = "Inactive";
+ }
+
+ // Set the class name based on the substation configuration
+ switch (hdSubst) {
+ case "Active":
+ // HD substation number is visible and highlighted
+ this["_hdSubstNum" + i].className = "NowPlaying4CtrlHdSubst" + i + "Active";
+ break;
+ case "Inactive":
+ // HD substation number is visible, but greyed out
+ this["_hdSubstNum" + i].className = "NowPlaying4CtrlHdSubst" + i;
+ break;
+ default:
+ // Anything else ("Unavailable" or "Undefined") is hidden (gap in display)
+ this["_hdSubstNum" + i].className = "NowPlaying4CtrlHidden";
+ break;
+ }
+ }
- // Adjust control title width to make room for HD display
- this._ctrlTitle.className = "NowPlaying4CtrlTitle";
+ // Adjust control title width to make room for HD display
+ this._ctrlTitle.className = "NowPlaying4CtrlTitle";
- // Make the HD display visible
- this._hdDisplayFrame.className = "NowPlaying4CtrlHdDisplayFrame";
+ // Make the HD display visible
+ this._hdDisplayFrame.className = "NowPlaying4CtrlHdDisplayFrame";
- // Make sure any branding image is hidden (without clearing its definition)
- this._ctrlTitleIconFrame.className = "NowPlaying4CtrlHidden";
+ // Make sure any branding image is hidden (without clearing its definition)
+ this._ctrlTitleIconFrame.className = "NowPlaying4CtrlHidden";
+ } else {
+ // Scan all of the substation configurations & hide the displays
+ for (var i = 1; i <= this._constants.MAX_HD_SUBSTATION_COUNT; i++) {
+ this["_hdSubstNum" + i].className = "NowPlaying4CtrlHidden";
}
- else
- {
- // Scan all of the substation configurations & hide the displays
- for (var i = 1; i <= this._constants.MAX_HD_SUBSTATION_COUNT; i++)
- {
- this["_hdSubstNum" + i].className = "NowPlaying4CtrlHidden";
- }
- // Hide the HD display
- this._hdDisplayFrame.className = "NowPlaying4CtrlHidden";
+ // Hide the HD display
+ this._hdDisplayFrame.className = "NowPlaying4CtrlHidden";
- // If there's a branding image available, ...
- if (this.properties.ctrlTitleObj &&
- this.properties.ctrlTitleObj.ctrlTitleIcon)
- {
- // ... re-display it
- this.setBrandImage(this.properties.ctrlTitleObj.ctrlTitleIcon);
- }
+ // If there's a branding image available, ...
+ if (this.properties.ctrlTitleObj &&
+ this.properties.ctrlTitleObj.ctrlTitleIcon) {
+ // ... re-display it
+ this.setBrandImage(this.properties.ctrlTitleObj.ctrlTitleIcon);
}
+ }
};
/* hides formatted text (song title, album name, artist name, genre name) to show unformatted text
*/
-NowPlaying4Ctrl.prototype._hideFormattedText = function()
-{
- this._audioTitleFrame.className = "NowPlaying4CtrlHidden";
- this._detailLine1Frame.className = "NowPlaying4CtrlHidden";
- this._detailLine2Frame.className = "NowPlaying4CtrlHidden";
- this._detailLine3Frame.className = "NowPlaying4CtrlHidden";
+NowPlaying4Ctrl.prototype._hideFormattedText = function () {
+ this._audioTitleFrame.className = "NowPlaying4CtrlHidden";
+ this._detailLine1Frame.className = "NowPlaying4CtrlHidden";
+ this._detailLine2Frame.className = "NowPlaying4CtrlHidden";
+ this._detailLine3Frame.className = "NowPlaying4CtrlHidden";
};
-NowPlaying4Ctrl.prototype.setNowPlayingConfig = function(config)
-{
- log.debug("setNowPlayingConfig() called...");
-
- // workaround for references, loadingIcon through setNowPlayingConfig
- var loadingIcon = false;
-
- // ---MZDMOD---
- // Add style8
- // Control style
- if (config.ctrlStyle &&
- ((config.ctrlStyle === "Style0") ||
- (config.ctrlStyle === "Style1") ||
- (config.ctrlStyle === "Style2") ||
- (config.ctrlStyle === "Style3") ||
- (config.ctrlStyle === "Style4") ||
- (config.ctrlStyle === "Style5") ||
- (config.ctrlStyle === "Style6") ||
- (config.ctrlStyle === "Style7") ||
- (config.ctrlStyle === "Style8")))
- {
- this.properties.ctrlStyle = config.ctrlStyle;
- loadingIcon = config.loadingIcon;
- }
- else
- {
- log.warn("Invalid control style \"" + config.ctrlStyle + "\" found -- defaulting to Style0!");
- this.properties.ctrlStyle = "Style0";
- }
-
- // Set control background
- if (this.properties.ctrlStyle === "Style0")
- {
- this.showBackgroundImage(false);
+NowPlaying4Ctrl.prototype.setNowPlayingConfig = function (config) {
+ log.debug("setNowPlayingConfig() called...");
+
+ // workaround for references, loadingIcon through setNowPlayingConfig
+ var loadingIcon = false;
+
+ // ---MZDMOD---
+ // Add style8
+ // Control style
+ if (config.ctrlStyle &&
+ ((config.ctrlStyle === "Style0") ||
+ (config.ctrlStyle === "Style1") ||
+ (config.ctrlStyle === "Style2") ||
+ (config.ctrlStyle === "Style3") ||
+ (config.ctrlStyle === "Style4") ||
+ (config.ctrlStyle === "Style5") ||
+ (config.ctrlStyle === "Style6") ||
+ (config.ctrlStyle === "Style7") ||
+ (config.ctrlStyle === "Style8"))) {
+ this.properties.ctrlStyle = config.ctrlStyle;
+ loadingIcon = config.loadingIcon;
+ } else {
+ log.warn("Invalid control style \"" + config.ctrlStyle + "\" found -- defaulting to Style0!");
+ this.properties.ctrlStyle = "Style0";
+ }
+
+ // Set control background
+ if (this.properties.ctrlStyle === "Style0") {
+ this.showBackgroundImage(false);
+ }
+
+ // Set control element styles
+ for (var i in this._styles[this.properties.ctrlStyle]) {
+ this[i].className = this._styles[this.properties.ctrlStyle][i];
+ }
+
+ // Control Title (playlist, folder, etc.)
+ this.setCtrlTitle(config.ctrlTitleObj);
+
+ // HD Substation List
+ this.setHdConfig(config.hdConfigObj);
+
+ // Subtitle (for Style7)
+ this.setCtrlSubtitle(config.ctrlSubtitleObj);
+
+ // Audio Title (song/track)
+ this.setAudioTitle(config.audioTitleObj);
+
+ // Detail lines (Artist, Album, etc.)
+ this.setDetailLine1(config.detailLine1Obj);
+ this.setDetailLine2(config.detailLine2Obj);
+ this.setDetailLine3(config.detailLine3Obj);
+
+ if (this.properties.ctrlStyle === "Style7") {
+ // No Album artwork div in this style
+ this.clearArtworkImage();
+
+ // restore config.loadingIcon, same as in properties
+ config.loadingIcon = loadingIcon;
+ // check for loading property
+ if (config.loadingIcon) {
+ this.setLoadingIcon(config.loadingIcon);
}
- // Set control element styles
- for (var i in this._styles[this.properties.ctrlStyle])
- {
- this[i].className = this._styles[this.properties.ctrlStyle][i];
+ if (config.unformattedTextObj) {
+ this.setUnformattedText(config.unformattedTextObj);
+ this._unformattedTextFrame.className = "NowPlaying4CtrlUnformattedTextFrame";
}
-
- // Control Title (playlist, folder, etc.)
- this.setCtrlTitle(config.ctrlTitleObj);
-
- // HD Substation List
- this.setHdConfig(config.hdConfigObj);
-
- // Subtitle (for Style7)
- this.setCtrlSubtitle(config.ctrlSubtitleObj);
-
- // Audio Title (song/track)
- this.setAudioTitle(config.audioTitleObj);
-
- // Detail lines (Artist, Album, etc.)
- this.setDetailLine1(config.detailLine1Obj);
- this.setDetailLine2(config.detailLine2Obj);
- this.setDetailLine3(config.detailLine3Obj);
-
- if (this.properties.ctrlStyle === "Style7")
- {
- // No Album artwork div in this style
- this.clearArtworkImage();
-
- // restore config.loadingIcon, same as in properties
- config.loadingIcon = loadingIcon;
- // check for loading property
- if(config.loadingIcon)
- {
- this.setLoadingIcon(config.loadingIcon);
- }
-
- if(config.unformattedTextObj)
- {
- this.setUnformattedText(config.unformattedTextObj);
- this._unformattedTextFrame.className = "NowPlaying4CtrlUnformattedTextFrame";
- }
- }
- else
- {
- // "No Artwork" Image
- // Set this before calling setArtworkImagePath() so
- // the default "no-artwork" image is properly configured
- this.setNoArtworkImagePath(config.noArtworkImagePath);
-
- // Artwork Image
- this.setArtworkImagePath(config.artworkImagePath);
- }
-
- // Track display
- if (config.currentTrackNum)
- {
- this.setCurrentTrackNum(config.currentTrackNum);
- }
- this.setTrackCount(config.trackCount);
-
- // Phone number
- this.setPhoneNumber(config.phoneNumber);
-
- // Distance & direction
- this.setDistanceDirection(config.distanceDirection);
-
- // Rating meter
- this.setRating(config.rating);
+ } else {
+ // "No Artwork" Image
+ // Set this before calling setArtworkImagePath() so
+ // the default "no-artwork" image is properly configured
+ this.setNoArtworkImagePath(config.noArtworkImagePath);
+
+ // Artwork Image
+ this.setArtworkImagePath(config.artworkImagePath);
+ }
+
+ // Track display
+ if (config.currentTrackNum) {
+ this.setCurrentTrackNum(config.currentTrackNum);
+ }
+ this.setTrackCount(config.trackCount);
+
+ // Phone number
+ this.setPhoneNumber(config.phoneNumber);
+
+ // Distance & direction
+ this.setDistanceDirection(config.distanceDirection);
+
+ // Rating meter
+ this.setRating(config.rating);
};
/*
@@ -920,36 +889,25 @@ NowPlaying4Ctrl.prototype.setNowPlayingConfig = function(config)
* elt - The DOM element whose text is being set
* txt - The text string being set.
*/
-NowPlaying4Ctrl.prototype._setInnerTextOrHTML = function(elt, txt)
-{
- if (elt)
- {
- if (txt)
- {
- if(utility.toType(txt) == 'string')
- {
- var spanCloseIdx = txt.search("");
- if (spanCloseIdx >= 0)
- {
- // String has some embedded HTML, so use the appropriate API to set it
- elt.innerHTML = txt;
- }
- else
- {
- // String has no embedded HTML -- use the original text-only API to set it
- elt.innerText = txt;
- }
- }
- else
- {
- elt.innerText = txt;
- }
- }
- else
- {
- elt.innerText = "";
+NowPlaying4Ctrl.prototype._setInnerTextOrHTML = function (elt, txt) {
+ if (elt) {
+ if (txt) {
+ if (utility.toType(txt) == 'string') {
+ var spanCloseIdx = txt.search("");
+ if (spanCloseIdx >= 0) {
+ // String has some embedded HTML, so use the appropriate API to set it
+ elt.innerHTML = txt;
+ } else {
+ // String has no embedded HTML -- use the original text-only API to set it
+ elt.innerText = txt;
}
+ } else {
+ elt.innerText = txt;
+ }
+ } else {
+ elt.innerText = "";
}
+ }
};
/*
@@ -962,26 +920,23 @@ NowPlaying4Ctrl.prototype._setInnerTextOrHTML = function(elt, txt)
* NOTE: According to the language team, the frequency units always appear in English and are never
* translated; therefore, we use the passed-in string as-is.
*/
-NowPlaying4Ctrl.prototype.getFrequencyAndUnitsText = function(frequency, units)
-{
- var frequencyAndUnitText = "";
-
- if (frequency && units)
- {
- frequencyAndUnitText = '' + frequency + ' ' +
- '' + units + '';
- }
+NowPlaying4Ctrl.prototype.getFrequencyAndUnitsText = function (frequency, units) {
+ var frequencyAndUnitText = "";
+
+ if (frequency && units) {
+ frequencyAndUnitText = '' + frequency + ' ' +
+ '' + units + '';
+ }
- return frequencyAndUnitText;
+ return frequencyAndUnitText;
};
/*
* Deprecated API
*/
-NowPlaying4Ctrl.prototype.getStyle15FrequencyAndUnitsText = function(frequency, units)
-{
- log.warn("Nowplaying4Ctrl : Deprecated function - use getFrequencyAndUnitsText API instead.")
- return this.getFrequencyAndUnitsText(frequency,units);
+NowPlaying4Ctrl.prototype.getStyle15FrequencyAndUnitsText = function (frequency, units) {
+ log.warn("Nowplaying4Ctrl : Deprecated function - use getFrequencyAndUnitsText API instead.")
+ return this.getFrequencyAndUnitsText(frequency, units);
};
/*
@@ -997,78 +952,60 @@ NowPlaying4Ctrl.prototype.getStyle15FrequencyAndUnitsText = function(frequency,
* station: The radio station string.
* relay: The relay station string (should be 'null' if using design studio option B).
*/
-NowPlaying4Ctrl.prototype.getStationAndRelayText = function(station, relay)
-{
- var stationAndRelayText = "";
-
- if (station && relay)
- {
- stationAndRelayText = '' + station + ' ' +
- '(' + relay + ')';
- }
- else if (station)
- {
- stationAndRelayText = '' + station + '';
- }
+NowPlaying4Ctrl.prototype.getStationAndRelayText = function (station, relay) {
+ var stationAndRelayText = "";
+
+ if (station && relay) {
+ stationAndRelayText = '' + station + ' ' +
+ '(' + relay + ')';
+ } else if (station) {
+ stationAndRelayText = '' + station + '';
+ }
- return stationAndRelayText;
+ return stationAndRelayText;
};
/*
* Deprecated API
*/
-NowPlaying4Ctrl.prototype.getStyle15StationAndRelayText = function(station, relay)
-{
- log.warn("Nowplaying4Ctrl : Deprecated function - use getStationAndRelayText API instead.")
- return this.getStationAndRelayText(station,relay);
+NowPlaying4Ctrl.prototype.getStyle15StationAndRelayText = function (station, relay) {
+ log.warn("Nowplaying4Ctrl : Deprecated function - use getStationAndRelayText API instead.")
+ return this.getStationAndRelayText(station, relay);
};
-NowPlaying4Ctrl.prototype.setCtrlTitle = function(ctrlTitleObj)
-{
- log.debug("setCtrlTitle() called...");
-
- if (ctrlTitleObj)
- {
- this.properties.ctrlTitleObj = new Object();
-
- if (ctrlTitleObj.ctrlTitleId)
- {
- this.properties.ctrlTitleObj.ctrlTitle = framework.localize.getLocStr(this.uiaId,
- ctrlTitleObj.ctrlTitleId,
- ctrlTitleObj.subMap);
- this._setInnerTextOrHTML(this._ctrlTitle, this.properties.ctrlTitleObj.ctrlTitle);
- }
- else if (ctrlTitleObj.ctrlTitleText)
- {
- this.properties.ctrlTitleObj.ctrlTitle = ctrlTitleObj.ctrlTitleText;
- this._setInnerTextOrHTML(this._ctrlTitle, this.properties.ctrlTitleObj.ctrlTitle);
- }
- else
- {
- this._ctrlTitle.innerText = "";
- }
-
- if (ctrlTitleObj.ctrlTitleIcon)
- {
- // ---MZDMOD---
-
- this.properties.ctrlTitleObj.ctrlTitleIcon = ctrlTitleObj.ctrlTitleIcon;
- //this.setBrandImage(this.properties.ctrlTitleObj.ctrlTitleIcon);
- //Style8 is only used for USB audio, this will set a left most icon
- if (this.properties.ctrlStyle === "Style8")
- {
- this._ctrlTitleIconFrameLeft.style.backgroundImage = "url(" + this.properties.ctrlTitleObj.ctrlTitleIcon + ")";
- }
- else
- {
- this.setBrandImage(this.properties.ctrlTitleObj.ctrlTitleIcon);
- }
- }
+NowPlaying4Ctrl.prototype.setCtrlTitle = function (ctrlTitleObj) {
+ log.debug("setCtrlTitle() called...");
+
+ if (ctrlTitleObj) {
+ this.properties.ctrlTitleObj = new Object();
+
+ if (ctrlTitleObj.ctrlTitleId) {
+ this.properties.ctrlTitleObj.ctrlTitle = framework.localize.getLocStr(this.uiaId,
+ ctrlTitleObj.ctrlTitleId,
+ ctrlTitleObj.subMap);
+ this._setInnerTextOrHTML(this._ctrlTitle, this.properties.ctrlTitleObj.ctrlTitle);
+ } else if (ctrlTitleObj.ctrlTitleText) {
+ this.properties.ctrlTitleObj.ctrlTitle = ctrlTitleObj.ctrlTitleText;
+ this._setInnerTextOrHTML(this._ctrlTitle, this.properties.ctrlTitleObj.ctrlTitle);
+ } else {
+ this._ctrlTitle.innerText = "";
}
- else
- {
- this._ctrlTitle.innerText = "";
+
+ if (ctrlTitleObj.ctrlTitleIcon) {
+ // ---MZDMOD---
+
+ this.properties.ctrlTitleObj.ctrlTitleIcon = ctrlTitleObj.ctrlTitleIcon;
+ //this.setBrandImage(this.properties.ctrlTitleObj.ctrlTitleIcon);
+ //Style8 is only used for USB audio, this will set a left most icon
+ if (this.properties.ctrlStyle === "Style8") {
+ this._ctrlTitleIconFrameLeft.style.backgroundImage = "url(" + this.properties.ctrlTitleObj.ctrlTitleIcon + ")";
+ } else {
+ this.setBrandImage(this.properties.ctrlTitleObj.ctrlTitleIcon);
+ }
}
+ } else {
+ this._ctrlTitle.innerText = "";
+ }
};
/*
@@ -1118,89 +1055,74 @@ NowPlaying4Ctrl.prototype.setCtrlTitle = function(ctrlTitleObj)
* setHdConfig(), once the HD tuner starts detecting substations normally (allowing
* multiple substations to appear, with gaps for unavailable substations).
*/
-NowPlaying4Ctrl.prototype.setHdConfig = function(hdConfigObj)
-{
- log.debug("setHdConfig() called...");
-
- if (hdConfigObj)
- {
- // Make sure the control style supports displaying HD substations
- if ((this.properties.ctrlStyle === "Style2") ||
- (this.properties.ctrlStyle === "Style4"))
- {
- // Initialize the internal HD configuration object
- this.properties.hdConfigObj = new Object();
- this.properties.hdConfigObj.hdSubstList = new Array();
-
- // If we have a valid HD substation preset number, ...
- if (hdConfigObj.hdSubstPresetNum &&
- (utility.toType(hdConfigObj.hdSubstPresetNum) == 'number') &&
- (hdConfigObj.hdSubstPresetNum >= 1) &&
- (hdConfigObj.hdSubstPresetNum <= this._constants.MAX_HD_SUBSTATION_COUNT))
- {
- // ... special initialization!
- // Set HD substation configuration for preset in first slot to "Active"
- this.properties.hdConfigObj.hdSubstList[0] = "Active";
- for (var i = 1; i < this._constants.MAX_HD_SUBSTATION_COUNT; i++)
- {
- // Other HD substations are unavailable
- this.properties.hdConfigObj.hdSubstList[i] = "Unavailable";
- }
-
- // Remember we've got a preset
- this.properties.hdConfigObj.hdSubstPresetNum = hdConfigObj.hdSubstPresetNum;
-
- // Update the displayed label to match the preset number
- this["_hdSubstNum1"].innerText = "" + hdConfigObj.hdSubstPresetNum;
- }
- else
- {
- var activeSubstNum = null;
-
- // No preset defined -- initialize the HD substation configuration normally
- // Configure the first 8 substation definitions (at most)
- for (var i = 0; i < this._constants.MAX_HD_SUBSTATION_COUNT; i++)
- {
- if (hdConfigObj.hdSubstList[i] &&
- ((hdConfigObj.hdSubstList[i] === "Active") ||
- (hdConfigObj.hdSubstList[i] === "Inactive") ||
- (hdConfigObj.hdSubstList[i] === "Unavailable")))
- {
- // Copy valid configurations as-is to internal array
- this.properties.hdConfigObj.hdSubstList[i] = hdConfigObj.hdSubstList[i];
- if (hdConfigObj.hdSubstList[i] === "Active")
- {
- // Track the new active HD substation (by number, not index)
- activeSubstNum = i + 1;
- }
- }
- else
- {
- // Anything else (incl. null) is unavailable
- this.properties.hdConfigObj.hdSubstList[i] = "Unavailable";
- }
- }
-
- if (activeSubstNum)
- {
- // We've got an active HD substation -- set it
- this.setActiveHdSubstation(activeSubstNum);
- }
-
- // Make sure the first slot's displayed label is correct
- // (if we're following a call to setHdConfig() for a preset)
- this["_hdSubstNum1"].innerText = "1";
- }
+NowPlaying4Ctrl.prototype.setHdConfig = function (hdConfigObj) {
+ log.debug("setHdConfig() called...");
- // Update the global HD tuner lock status
- // (also updates the appearance of all of the HD substation styles)
- this.setHdStatus(hdConfigObj.hdStatus);
+ if (hdConfigObj) {
+ // Make sure the control style supports displaying HD substations
+ if ((this.properties.ctrlStyle === "Style2") ||
+ (this.properties.ctrlStyle === "Style4")) {
+ // Initialize the internal HD configuration object
+ this.properties.hdConfigObj = new Object();
+ this.properties.hdConfigObj.hdSubstList = new Array();
+
+ // If we have a valid HD substation preset number, ...
+ if (hdConfigObj.hdSubstPresetNum &&
+ (utility.toType(hdConfigObj.hdSubstPresetNum) == 'number') &&
+ (hdConfigObj.hdSubstPresetNum >= 1) &&
+ (hdConfigObj.hdSubstPresetNum <= this._constants.MAX_HD_SUBSTATION_COUNT)) {
+ // ... special initialization!
+ // Set HD substation configuration for preset in first slot to "Active"
+ this.properties.hdConfigObj.hdSubstList[0] = "Active";
+ for (var i = 1; i < this._constants.MAX_HD_SUBSTATION_COUNT; i++) {
+ // Other HD substations are unavailable
+ this.properties.hdConfigObj.hdSubstList[i] = "Unavailable";
}
- else
- {
- log.warn("HD substation configuration not allowed in " + this.properties.ctrlStyle);
+
+ // Remember we've got a preset
+ this.properties.hdConfigObj.hdSubstPresetNum = hdConfigObj.hdSubstPresetNum;
+
+ // Update the displayed label to match the preset number
+ this["_hdSubstNum1"].innerText = "" + hdConfigObj.hdSubstPresetNum;
+ } else {
+ var activeSubstNum = null;
+
+ // No preset defined -- initialize the HD substation configuration normally
+ // Configure the first 8 substation definitions (at most)
+ for (var i = 0; i < this._constants.MAX_HD_SUBSTATION_COUNT; i++) {
+ if (hdConfigObj.hdSubstList[i] &&
+ ((hdConfigObj.hdSubstList[i] === "Active") ||
+ (hdConfigObj.hdSubstList[i] === "Inactive") ||
+ (hdConfigObj.hdSubstList[i] === "Unavailable"))) {
+ // Copy valid configurations as-is to internal array
+ this.properties.hdConfigObj.hdSubstList[i] = hdConfigObj.hdSubstList[i];
+ if (hdConfigObj.hdSubstList[i] === "Active") {
+ // Track the new active HD substation (by number, not index)
+ activeSubstNum = i + 1;
+ }
+ } else {
+ // Anything else (incl. null) is unavailable
+ this.properties.hdConfigObj.hdSubstList[i] = "Unavailable";
+ }
+ }
+
+ if (activeSubstNum) {
+ // We've got an active HD substation -- set it
+ this.setActiveHdSubstation(activeSubstNum);
}
+
+ // Make sure the first slot's displayed label is correct
+ // (if we're following a call to setHdConfig() for a preset)
+ this["_hdSubstNum1"].innerText = "1";
+ }
+
+ // Update the global HD tuner lock status
+ // (also updates the appearance of all of the HD substation styles)
+ this.setHdStatus(hdConfigObj.hdStatus);
+ } else {
+ log.warn("HD substation configuration not allowed in " + this.properties.ctrlStyle);
}
+ }
};
/*
@@ -1226,50 +1148,46 @@ NowPlaying4Ctrl.prototype.setHdConfig = function(hdConfigObj)
* number) to see the HD substation display again -- just setting the
* tuner status with this API will not be sufficient.
*/
-NowPlaying4Ctrl.prototype.setHdStatus = function(hdStatus)
-{
- log.debug("setHdStatus(" + hdStatus + ")");
-
- if (this.properties.hdConfigObj)
- {
- // Cache the status update
- this.properties.hdConfigObj.hdStatus = hdStatus;
-
- switch(this.properties.hdConfigObj.hdStatus)
- {
- case "Locked":
- // Configure the HD display with the enabled Airbiquity HD logo
- this._hdDisplayIconImage.src = "common/controls/NowPlaying4/images/Logo_HD.png";
- break;
-
- case "NoLock":
- // Configure the HD display with the disabled Airbiquity HD logo
- this._hdDisplayIconImage.src = "common/controls/NowPlaying4/images/Logo_HD_Gray.png";
- break;
-
- case "Disabled":
- // The HD tuner lock has timed out or been turned off --
- // discard all HD configuration information & hide everything
- this.properties.hdConfigObj = null;
-
- // Restore any configured branding image
- if (this.properties.ctrlTitleObj &&
- this.properties.ctrlTitleObj.ctrlTitleIcon)
- {
- this.setBrandImage(this.properties.ctrlTitleObj.ctrlTitleIcon);
- }
-
- break;
-
- default:
- log.warn("setHdStatus(): invalid status \"" + hdStatus +
- "\" received");
- break;
- }
-
- // Update the appearance of all of the HD substation styles
- this._updateHdSubstationStyles();
+NowPlaying4Ctrl.prototype.setHdStatus = function (hdStatus) {
+ log.debug("setHdStatus(" + hdStatus + ")");
+
+ if (this.properties.hdConfigObj) {
+ // Cache the status update
+ this.properties.hdConfigObj.hdStatus = hdStatus;
+
+ switch (this.properties.hdConfigObj.hdStatus) {
+ case "Locked":
+ // Configure the HD display with the enabled Airbiquity HD logo
+ this._hdDisplayIconImage.src = "common/controls/NowPlaying4/images/Logo_HD.png";
+ break;
+
+ case "NoLock":
+ // Configure the HD display with the disabled Airbiquity HD logo
+ this._hdDisplayIconImage.src = "common/controls/NowPlaying4/images/Logo_HD_Gray.png";
+ break;
+
+ case "Disabled":
+ // The HD tuner lock has timed out or been turned off --
+ // discard all HD configuration information & hide everything
+ this.properties.hdConfigObj = null;
+
+ // Restore any configured branding image
+ if (this.properties.ctrlTitleObj &&
+ this.properties.ctrlTitleObj.ctrlTitleIcon) {
+ this.setBrandImage(this.properties.ctrlTitleObj.ctrlTitleIcon);
+ }
+
+ break;
+
+ default:
+ log.warn("setHdStatus(): invalid status \"" + hdStatus +
+ "\" received");
+ break;
}
+
+ // Update the appearance of all of the HD substation styles
+ this._updateHdSubstationStyles();
+ }
};
/*
@@ -1280,455 +1198,360 @@ NowPlaying4Ctrl.prototype.setHdStatus = function(hdStatus)
* NOTE: Substation numbers are one-based (1-8),
* not zero-based (0-7)!
*/
-NowPlaying4Ctrl.prototype.setActiveHdSubstation = function(substNum)
-{
- log.debug("setActiveHdSubstation(" + substNum + ")");
-
- if (this.properties.hdConfigObj &&
- substNum &&
- (utility.toType(substNum) == 'number') &&
- (substNum >= 1) &&
- (substNum <= this._constants.MAX_HD_SUBSTATION_COUNT))
- {
- // Is there a preset active?
- if (this.properties.hdConfigObj.hdSubstPresetNum)
- {
- // Yes -- move the preset to its rightful position
- this.properties.hdConfigObj.hdSubstList[this.properties.hdConfigObj.hdSubstPresetNum - 1] =
- this.properties.hdConfigObj.hdSubstList[0];
-
- // Clean up the first slot
- this.properties.hdConfigObj.hdSubstList[0] = "Unavailable";
- this["_hdSubstNum1"].innerText = "1";
-
- // Discard the preset definition
- this.properties.hdConfigObj.hdSubstPresetNum = undefined;
- }
-
- for (var i = 0; i < this._constants.MAX_HD_SUBSTATION_COUNT; i++)
- {
- // Find other substation(s) that are currently active ...
- if ((substNum != (i + 1)) &&
- (this.properties.hdConfigObj.hdSubstList[i] === "Active"))
- {
- // ... and make sure they're inactive (only one active substation at a time)
- this.properties.hdConfigObj.hdSubstList[i] = "Inactive";
- }
- }
-
- // Set the indicated substation as active
- this.properties.hdConfigObj.hdSubstList[substNum - 1] = "Active";
-
- // Update the appearance of all of the HD substation styles
- this._updateHdSubstationStyles();
+NowPlaying4Ctrl.prototype.setActiveHdSubstation = function (substNum) {
+ log.debug("setActiveHdSubstation(" + substNum + ")");
+
+ if (this.properties.hdConfigObj &&
+ substNum &&
+ (utility.toType(substNum) == 'number') &&
+ (substNum >= 1) &&
+ (substNum <= this._constants.MAX_HD_SUBSTATION_COUNT)) {
+ // Is there a preset active?
+ if (this.properties.hdConfigObj.hdSubstPresetNum) {
+ // Yes -- move the preset to its rightful position
+ this.properties.hdConfigObj.hdSubstList[this.properties.hdConfigObj.hdSubstPresetNum - 1] =
+ this.properties.hdConfigObj.hdSubstList[0];
+
+ // Clean up the first slot
+ this.properties.hdConfigObj.hdSubstList[0] = "Unavailable";
+ this["_hdSubstNum1"].innerText = "1";
+
+ // Discard the preset definition
+ this.properties.hdConfigObj.hdSubstPresetNum = undefined;
}
-};
-NowPlaying4Ctrl.prototype.setLoadingIcon = function(loading)
-{
- if(this.properties.ctrlStyle == 'Style7')
- {
- this.properties.loadingIcon = loading;
- if (this.properties.loadingIcon === true)
- {
- this._loadingImageFrame.classList.add('loading');
- if(this._ctrlTitleIconFrame.className === "NowPlaying4CtrlHidden")
- {
- this._ctrlTitle.className = "NowPlaying4CtrlTitle";
- }
- else
- {
- this._ctrlTitleIconFrame.className = "NowPlaying4CtrlHidden";
- }
- }
- else
- {
- this._loadingImageFrame.classList.remove('loading');
-
- if (this._ctrlTitleIconImage.src != "")
- {
- this._ctrlTitleIconFrame.className = "NowPlaying4CtrlTitleIconFrame";
- }
- else
- {
- this._ctrlTitle.className = "NowPlaying4CtrlTitleFull";
- }
- }
+ for (var i = 0; i < this._constants.MAX_HD_SUBSTATION_COUNT; i++) {
+ // Find other substation(s) that are currently active ...
+ if ((substNum != (i + 1)) &&
+ (this.properties.hdConfigObj.hdSubstList[i] === "Active")) {
+ // ... and make sure they're inactive (only one active substation at a time)
+ this.properties.hdConfigObj.hdSubstList[i] = "Inactive";
+ }
}
-};
-
-NowPlaying4Ctrl.prototype.setCtrlSubtitle = function(ctrlSubtitleObj)
-{
- log.debug("setCtrlSubtitle() called...");
- if (this.properties.ctrlStyle === "Style7")
- {
- var styleName = this._styles[this.properties.ctrlStyle]["_ctrlSubtitle"];
+ // Set the indicated substation as active
+ this.properties.hdConfigObj.hdSubstList[substNum - 1] = "Active";
- if (ctrlSubtitleObj)
- {
- this.properties.ctrlSubtitleObj = new Object();
-
- if (ctrlSubtitleObj.ctrlSubtitleId)
- {
- this.properties.ctrlSubtitleObj.ctrlSubtitle = framework.localize.getLocStr(this.uiaId,
- ctrlSubtitleObj.ctrlSubtitleId,
- ctrlSubtitleObj.subMap);
- this._setInnerTextOrHTML(this._ctrlSubtitle, this.properties.ctrlSubtitleObj.ctrlSubtitle);
- }
- else if (ctrlSubtitleObj.ctrlSubtitleText)
- {
- this.properties.ctrlSubtitleObj.ctrlSubtitle = ctrlSubtitleObj.ctrlSubtitleText;
- this._setInnerTextOrHTML(this._ctrlSubtitle, this.properties.ctrlSubtitleObj.ctrlSubtitle);
- }
- else
- {
- this._ctrlSubtitle.innerText = "";
- styleName = "NowPlaying4CtrlHidden";
- }
-
- // No Icon allowed in this object
- }
- else
- {
- this._ctrlSubtitle.innerText = "";
- styleName = "NowPlaying4CtrlHidden";
- }
+ // Update the appearance of all of the HD substation styles
+ this._updateHdSubstationStyles();
+ }
+};
- // Update the style to show/hide the line (so missing lines collapse properly)
- this._ctrlSubtitle.className = styleName;
+NowPlaying4Ctrl.prototype.setLoadingIcon = function (loading) {
+ if (this.properties.ctrlStyle == 'Style7') {
+ this.properties.loadingIcon = loading;
+ if (this.properties.loadingIcon === true) {
+ this._loadingImageFrame.classList.add('loading');
+ if (this._ctrlTitleIconFrame.className === "NowPlaying4CtrlHidden") {
+ this._ctrlTitle.className = "NowPlaying4CtrlTitle";
+ } else {
+ this._ctrlTitleIconFrame.className = "NowPlaying4CtrlHidden";
+ }
+ } else {
+ this._loadingImageFrame.classList.remove('loading');
+
+ if (this._ctrlTitleIconImage.src != "") {
+ this._ctrlTitleIconFrame.className = "NowPlaying4CtrlTitleIconFrame";
+ } else {
+ this._ctrlTitle.className = "NowPlaying4CtrlTitleFull";
+ }
}
+ }
};
-NowPlaying4Ctrl.prototype.setAudioTitle = function(audioTitleObj)
-{
- log.debug("setAudioTitle() called...");
-
- var styleName = this._styles[this.properties.ctrlStyle]["_audioTitleFrame"];
-
- if (audioTitleObj && !this.properties.unformattedTextObj)
- {
- this.properties.audioTitleObj = new Object();
-
- if (audioTitleObj.audioTitleId)
- {
- this.properties.audioTitleObj.audioTitle = framework.localize.getLocStr(this.uiaId,
- audioTitleObj.audioTitleId,
- audioTitleObj.subMap);
- this._setInnerTextOrHTML(this._audioTitle, this.properties.audioTitleObj.audioTitle);
- }
- else if (audioTitleObj.audioTitleText)
- {
- this.properties.audioTitleObj.audioTitle = audioTitleObj.audioTitleText;
- this._setInnerTextOrHTML(this._audioTitle, this.properties.audioTitleObj.audioTitle);
- }
- else
- {
- this._audioTitle.innerText = "";
- styleName = "NowPlaying4CtrlHidden";
- }
-
- if (audioTitleObj.audioTitleIcon)
- {
- this.properties.audioTitleObj.audioTitleIcon = audioTitleObj.audioTitleIcon;
- this._audioTitleIconFrame.style.backgroundImage = "url(" + this.properties.audioTitleObj.audioTitleIcon + ")";
- }
- }
- else
- {
- this._audioTitle.innerText = "";
+NowPlaying4Ctrl.prototype.setCtrlSubtitle = function (ctrlSubtitleObj) {
+ log.debug("setCtrlSubtitle() called...");
+
+ if (this.properties.ctrlStyle === "Style7") {
+ var styleName = this._styles[this.properties.ctrlStyle]["_ctrlSubtitle"];
+
+ if (ctrlSubtitleObj) {
+ this.properties.ctrlSubtitleObj = new Object();
+
+ if (ctrlSubtitleObj.ctrlSubtitleId) {
+ this.properties.ctrlSubtitleObj.ctrlSubtitle = framework.localize.getLocStr(this.uiaId,
+ ctrlSubtitleObj.ctrlSubtitleId,
+ ctrlSubtitleObj.subMap);
+ this._setInnerTextOrHTML(this._ctrlSubtitle, this.properties.ctrlSubtitleObj.ctrlSubtitle);
+ } else if (ctrlSubtitleObj.ctrlSubtitleText) {
+ this.properties.ctrlSubtitleObj.ctrlSubtitle = ctrlSubtitleObj.ctrlSubtitleText;
+ this._setInnerTextOrHTML(this._ctrlSubtitle, this.properties.ctrlSubtitleObj.ctrlSubtitle);
+ } else {
+ this._ctrlSubtitle.innerText = "";
styleName = "NowPlaying4CtrlHidden";
+ }
+
+ // No Icon allowed in this object
+ } else {
+ this._ctrlSubtitle.innerText = "";
+ styleName = "NowPlaying4CtrlHidden";
}
// Update the style to show/hide the line (so missing lines collapse properly)
- this._audioTitleFrame.className = styleName;
-
+ this._ctrlSubtitle.className = styleName;
+ }
};
-NowPlaying4Ctrl.prototype.setDetailLine1 = function(detailLine1Obj)
-{
- log.debug("setDetailLine1() called...");
+NowPlaying4Ctrl.prototype.setAudioTitle = function (audioTitleObj) {
+ log.debug("setAudioTitle() called...");
+
+ var styleName = this._styles[this.properties.ctrlStyle]["_audioTitleFrame"];
+
+ if (audioTitleObj && !this.properties.unformattedTextObj) {
+ this.properties.audioTitleObj = new Object();
+
+ if (audioTitleObj.audioTitleId) {
+ this.properties.audioTitleObj.audioTitle = framework.localize.getLocStr(this.uiaId,
+ audioTitleObj.audioTitleId,
+ audioTitleObj.subMap);
+ this._setInnerTextOrHTML(this._audioTitle, this.properties.audioTitleObj.audioTitle);
+ } else if (audioTitleObj.audioTitleText) {
+ this.properties.audioTitleObj.audioTitle = audioTitleObj.audioTitleText;
+ this._setInnerTextOrHTML(this._audioTitle, this.properties.audioTitleObj.audioTitle);
+ } else {
+ this._audioTitle.innerText = "";
+ styleName = "NowPlaying4CtrlHidden";
+ }
- var styleName = this._styles[this.properties.ctrlStyle]["_detailLine1Frame"];
+ if (audioTitleObj.audioTitleIcon) {
+ this.properties.audioTitleObj.audioTitleIcon = audioTitleObj.audioTitleIcon;
+ this._audioTitleIconFrame.style.backgroundImage = "url(" + this.properties.audioTitleObj.audioTitleIcon + ")";
+ }
+ } else {
+ this._audioTitle.innerText = "";
+ styleName = "NowPlaying4CtrlHidden";
+ }
- if (detailLine1Obj && !this.properties.unformattedTextObj)
- {
- this.properties.detailLine1Obj = new Object();
+ // Update the style to show/hide the line (so missing lines collapse properly)
+ this._audioTitleFrame.className = styleName;
- if (detailLine1Obj.detailTextId)
- {
- this.properties.detailLine1Obj.detailLine1 = framework.localize.getLocStr(this.uiaId,
- detailLine1Obj.detailTextId,
- detailLine1Obj.subMap);
- this._setInnerTextOrHTML(this._detailLine1, this.properties.detailLine1Obj.detailLine1);
- }
- else if (detailLine1Obj.detailText)
- {
- this.properties.detailLine1Obj.detailLine1 = detailLine1Obj.detailText;
- this._setInnerTextOrHTML(this._detailLine1, this.properties.detailLine1Obj.detailLine1);
- }
- else
- {
- this._detailLine1.innerText = "";
- styleName = "NowPlaying4CtrlHidden";
- }
+};
- if (detailLine1Obj.detailIcon)
- {
- this.properties.detailLine1Obj.detailIcon = detailLine1Obj.detailIcon;
- this._detailLine1IconFrame.style.backgroundImage = "url(" + this.properties.detailLine1Obj.detailIcon + ")";
- }
+NowPlaying4Ctrl.prototype.setDetailLine1 = function (detailLine1Obj) {
+ log.debug("setDetailLine1() called...");
+
+ var styleName = this._styles[this.properties.ctrlStyle]["_detailLine1Frame"];
+
+ if (detailLine1Obj && !this.properties.unformattedTextObj) {
+ this.properties.detailLine1Obj = new Object();
+
+ if (detailLine1Obj.detailTextId) {
+ this.properties.detailLine1Obj.detailLine1 = framework.localize.getLocStr(this.uiaId,
+ detailLine1Obj.detailTextId,
+ detailLine1Obj.subMap);
+ this._setInnerTextOrHTML(this._detailLine1, this.properties.detailLine1Obj.detailLine1);
+ } else if (detailLine1Obj.detailText) {
+ this.properties.detailLine1Obj.detailLine1 = detailLine1Obj.detailText;
+ this._setInnerTextOrHTML(this._detailLine1, this.properties.detailLine1Obj.detailLine1);
+ } else {
+ this._detailLine1.innerText = "";
+ styleName = "NowPlaying4CtrlHidden";
}
- else
- {
- this._detailLine1.innerText = "";
- styleName = "NowPlaying4CtrlHidden";
+
+ if (detailLine1Obj.detailIcon) {
+ this.properties.detailLine1Obj.detailIcon = detailLine1Obj.detailIcon;
+ this._detailLine1IconFrame.style.backgroundImage = "url(" + this.properties.detailLine1Obj.detailIcon + ")";
}
+ } else {
+ this._detailLine1.innerText = "";
+ styleName = "NowPlaying4CtrlHidden";
+ }
- // Update the style to show/hide the line (so missing lines collapse properly)
- this._detailLine1Frame.className = styleName;
+ // Update the style to show/hide the line (so missing lines collapse properly)
+ this._detailLine1Frame.className = styleName;
};
-NowPlaying4Ctrl.prototype.setDetailLine2 = function(detailLine2Obj)
-{
- log.debug("setDetailLine2() called...");
-
- var styleName = this._styles[this.properties.ctrlStyle]["_detailLine2Frame"];
-
- if (detailLine2Obj && !this.properties.unformattedTextObj)
- {
- this.properties.detailLine2Obj = new Object();
-
- if (detailLine2Obj.detailTextId)
- {
- this.properties.detailLine2Obj.detailLine2 = framework.localize.getLocStr(this.uiaId,
- detailLine2Obj.detailTextId,
- detailLine2Obj.subMap);
- this._setInnerTextOrHTML(this._detailLine2, this.properties.detailLine2Obj.detailLine2);
- }
- else if (detailLine2Obj.detailText)
- {
- this.properties.detailLine2Obj.detailLine2 = detailLine2Obj.detailText;
- this._setInnerTextOrHTML(this._detailLine2, this.properties.detailLine2Obj.detailLine2);
- }
- else
- {
- this._detailLine2.innerText = "";
- styleName = "NowPlaying4CtrlHidden";
- }
-
- if (detailLine2Obj.detailIcon)
- {
- this.properties.detailLine2Obj.detailIcon = detailLine2Obj.detailIcon;
- this._detailLine2IconFrame.style.backgroundImage = "url(" + this.properties.detailLine2Obj.detailIcon + ")";
- }
+NowPlaying4Ctrl.prototype.setDetailLine2 = function (detailLine2Obj) {
+ log.debug("setDetailLine2() called...");
+
+ var styleName = this._styles[this.properties.ctrlStyle]["_detailLine2Frame"];
+
+ if (detailLine2Obj && !this.properties.unformattedTextObj) {
+ this.properties.detailLine2Obj = new Object();
+
+ if (detailLine2Obj.detailTextId) {
+ this.properties.detailLine2Obj.detailLine2 = framework.localize.getLocStr(this.uiaId,
+ detailLine2Obj.detailTextId,
+ detailLine2Obj.subMap);
+ this._setInnerTextOrHTML(this._detailLine2, this.properties.detailLine2Obj.detailLine2);
+ } else if (detailLine2Obj.detailText) {
+ this.properties.detailLine2Obj.detailLine2 = detailLine2Obj.detailText;
+ this._setInnerTextOrHTML(this._detailLine2, this.properties.detailLine2Obj.detailLine2);
+ } else {
+ this._detailLine2.innerText = "";
+ styleName = "NowPlaying4CtrlHidden";
}
- else
- {
- this._detailLine2.innerText = "";
- styleName = "NowPlaying4CtrlHidden";
+
+ if (detailLine2Obj.detailIcon) {
+ this.properties.detailLine2Obj.detailIcon = detailLine2Obj.detailIcon;
+ this._detailLine2IconFrame.style.backgroundImage = "url(" + this.properties.detailLine2Obj.detailIcon + ")";
}
+ } else {
+ this._detailLine2.innerText = "";
+ styleName = "NowPlaying4CtrlHidden";
+ }
- // Update the style to show/hide the line (so missing lines collapse properly)
- this._detailLine2Frame.className = styleName;
+ // Update the style to show/hide the line (so missing lines collapse properly)
+ this._detailLine2Frame.className = styleName;
};
-NowPlaying4Ctrl.prototype.setDetailLine3 = function(detailLine3Obj)
-{
- log.debug("setDetailLine3() called...");
-
- var styleName = this._styles[this.properties.ctrlStyle]["_detailLine3Frame"];
-
- if (detailLine3Obj && !this.properties.unformattedTextObj )
- {
- this.properties.detailLine3Obj = new Object();
-
- if (detailLine3Obj.detailTextId)
- {
- this.properties.detailLine3Obj.detailLine3 = framework.localize.getLocStr(this.uiaId,
- detailLine3Obj.detailTextId,
- detailLine3Obj.subMap);
- this._setInnerTextOrHTML(this._detailLine3, this.properties.detailLine3Obj.detailLine3);
- }
- else if (detailLine3Obj.detailText)
- {
- this.properties.detailLine3Obj.detailLine3 = detailLine3Obj.detailText;
- this._setInnerTextOrHTML(this._detailLine3, this.properties.detailLine3Obj.detailLine3);
- }
- else
- {
- this._detailLine3.innerText = "";
- styleName = "NowPlaying4CtrlHidden";
- }
-
- if (detailLine3Obj.detailIcon)
- {
- this.properties.detailLine3Obj.detailIcon = detailLine3Obj.detailIcon;
- this._detailLine3IconFrame.style.backgroundImage = "url(" + this.properties.detailLine3Obj.detailIcon + ")";
- }
+NowPlaying4Ctrl.prototype.setDetailLine3 = function (detailLine3Obj) {
+ log.debug("setDetailLine3() called...");
+
+ var styleName = this._styles[this.properties.ctrlStyle]["_detailLine3Frame"];
+
+ if (detailLine3Obj && !this.properties.unformattedTextObj) {
+ this.properties.detailLine3Obj = new Object();
+
+ if (detailLine3Obj.detailTextId) {
+ this.properties.detailLine3Obj.detailLine3 = framework.localize.getLocStr(this.uiaId,
+ detailLine3Obj.detailTextId,
+ detailLine3Obj.subMap);
+ this._setInnerTextOrHTML(this._detailLine3, this.properties.detailLine3Obj.detailLine3);
+ } else if (detailLine3Obj.detailText) {
+ this.properties.detailLine3Obj.detailLine3 = detailLine3Obj.detailText;
+ this._setInnerTextOrHTML(this._detailLine3, this.properties.detailLine3Obj.detailLine3);
+ } else {
+ this._detailLine3.innerText = "";
+ styleName = "NowPlaying4CtrlHidden";
}
- else
- {
- this._detailLine3.innerText = "";
- styleName = "NowPlaying4CtrlHidden";
+
+ if (detailLine3Obj.detailIcon) {
+ this.properties.detailLine3Obj.detailIcon = detailLine3Obj.detailIcon;
+ this._detailLine3IconFrame.style.backgroundImage = "url(" + this.properties.detailLine3Obj.detailIcon + ")";
}
+ } else {
+ this._detailLine3.innerText = "";
+ styleName = "NowPlaying4CtrlHidden";
+ }
- // Update the style to show/hide the line (so missing lines collapse properly)
- this._detailLine3Frame.className = styleName;
+ // Update the style to show/hide the line (so missing lines collapse properly)
+ this._detailLine3Frame.className = styleName;
};
-NowPlaying4Ctrl.prototype.setUnformattedText = function(unformattedTextObj)
-{
- log.debug("setUnformattedText() called...");
-
- var styleName = "NowPlaying4CtrlUnformattedTextFrame";
-
- if (unformattedTextObj && this.properties.ctrlStyle === 'Style7')
- {
- this.properties.unformattedTextObj = new Object();
- this._hideFormattedText();
-
- if (unformattedTextObj.unformattedTextId)
- {
- this.properties.unformattedTextObj.unformattedTextId = framework.localize.getLocStr(this.uiaId,
- unformattedTextObj.unformattedTextId,
- unformattedTextObj.subMap);
- this._setInnerTextOrHTML(this._unformattedText, this.properties.unformattedTextObj.unformattedTextId);
- }
- else if (unformattedTextObj.unformattedText)
- {
- this.properties.unformattedTextObj.unformattedText = unformattedTextObj.unformattedText;
- this._setInnerTextOrHTML(this._unformattedText, this.properties.unformattedTextObj.unformattedTextId);
- }
- else
- {
- this._unformattedText.innerText = "";
- styleName = "NowPlaying4CtrlHidden";
- }
- }
- else
- {
- this._unformattedText.innerText = "";
- styleName = "NowPlaying4CtrlHidden";
-
+NowPlaying4Ctrl.prototype.setUnformattedText = function (unformattedTextObj) {
+ log.debug("setUnformattedText() called...");
+
+ var styleName = "NowPlaying4CtrlUnformattedTextFrame";
+
+ if (unformattedTextObj && this.properties.ctrlStyle === 'Style7') {
+ this.properties.unformattedTextObj = new Object();
+ this._hideFormattedText();
+
+ if (unformattedTextObj.unformattedTextId) {
+ this.properties.unformattedTextObj.unformattedTextId = framework.localize.getLocStr(this.uiaId,
+ unformattedTextObj.unformattedTextId,
+ unformattedTextObj.subMap);
+ this._setInnerTextOrHTML(this._unformattedText, this.properties.unformattedTextObj.unformattedTextId);
+ } else if (unformattedTextObj.unformattedText) {
+ this.properties.unformattedTextObj.unformattedText = unformattedTextObj.unformattedText;
+ this._setInnerTextOrHTML(this._unformattedText, this.properties.unformattedTextObj.unformattedTextId);
+ } else {
+ this._unformattedText.innerText = "";
+ styleName = "NowPlaying4CtrlHidden";
}
+ } else {
+ this._unformattedText.innerText = "";
+ styleName = "NowPlaying4CtrlHidden";
- // Update the style to show/hide the line (so missing lines collapse properly)
- this._unformattedTextFrame.className = styleName;
- this.properties.unformattedTextObj = unformattedTextObj;
+ }
+
+ // Update the style to show/hide the line (so missing lines collapse properly)
+ this._unformattedTextFrame.className = styleName;
+ this.properties.unformattedTextObj = unformattedTextObj;
};
/*
* Sets whether the artwork image should be displayed
* @param flag Boolean true if the artwork image should be displayed
*/
-NowPlaying4Ctrl.prototype.showArtworkImage = function(flag)
-{
- log.debug("showArtworkImage() called: " + flag);
-
- // Make sure the control style supports artwork image display
- if (this.properties.ctrlStyle != "Style0")
- {
- if (flag)
- {
- this._artworkImageFrame.className = "NowPlaying4CtrlArtworkImageDiv";
- }
- else
- {
- this._artworkImageFrame.className = "NowPlaying4CtrlHidden";
- }
+NowPlaying4Ctrl.prototype.showArtworkImage = function (flag) {
+ log.debug("showArtworkImage() called: " + flag);
+
+ // Make sure the control style supports artwork image display
+ if (this.properties.ctrlStyle != "Style0") {
+ if (flag) {
+ this._artworkImageFrame.className = "NowPlaying4CtrlArtworkImageDiv";
+ } else {
+ this._artworkImageFrame.className = "NowPlaying4CtrlHidden";
}
+ }
};
/*
* Sets the path to the artwork image
* @param imagePath String for image path/file name
*/
-NowPlaying4Ctrl.prototype.setArtworkImagePath = function(imagePath)
-{
- log.debug("setArtworkImagePath() called: " + imagePath);
-
- // Album Image
- if (imagePath)
- {
- this.properties.artworkImagePath = imagePath;
- this._artworkImage.src = this.properties.artworkImagePath;
- }
- else
- {
- if (this.properties.ctrlStyle === "Style6")
- {
- // Control is in style "Style6", and no image is defined --
- // hide the image (no "no-artwork" image)
- this._artworkImageFrame.className = "NowPlaying4CtrlHidden";
- }
- else
- {
- // Show placeholder icon instead of album image art
- this.properties.artworkImagePath = "";
- this._artworkImage.src = this.properties.noArtworkImagePath;
- }
+NowPlaying4Ctrl.prototype.setArtworkImagePath = function (imagePath) {
+ log.debug("setArtworkImagePath() called: " + imagePath);
+
+ // Album Image
+ if (imagePath) {
+ this.properties.artworkImagePath = imagePath;
+ this._artworkImage.src = this.properties.artworkImagePath;
+ } else {
+ if (this.properties.ctrlStyle === "Style6") {
+ // Control is in style "Style6", and no image is defined --
+ // hide the image (no "no-artwork" image)
+ this._artworkImageFrame.className = "NowPlaying4CtrlHidden";
+ } else {
+ // Show placeholder icon instead of album image art
+ this.properties.artworkImagePath = "";
+ this._artworkImage.src = this.properties.noArtworkImagePath;
}
+ }
};
// This API is a shortcut method for clearing the Artwork Image. If the control is in
// a style supporting Now Artwork Image ("Style7", ONLY!), the image will be hidden
// and the "info box" text will be extended over the vacated real estate.
-NowPlaying4Ctrl.prototype.clearArtworkImage = function()
-{
- log.debug("clearArtworkImage() called...");
-
- // Remove any current branding image (all styles)
- this._artworkImage.src = "";
-
- // If we're in a style that supports no image, ...
- if (this.properties.ctrlStyle === "Style7")
- {
- // ... remove any branding image configuration
- if (this.properties.ctrlTitleObj &&
- this.properties.ctrlTitleObj.ctrlTitleIcon)
- {
- this.properties.ctrlTitleObj.ctrlTitleIcon = undefined;
- }
-
- // Hide the control title icon
- this._artworkImageFrame.className = "NowPlaying4CtrlHidden";
-
- // ... make sure the infobox is full-width
- // ex: this._ctrlTitle.className = "NowPlaying4CtrlTitleFull";
- this._infoBox.className = "NowPlaying4CtrlInfoBoxFull";
- this._audioTitle.className = "NowPlaying4CtrlAudioTitleFull";
- this._detailLine1.className = "NowPlaying4CtrlDetailLine1Full";
- this._detailLine2.className = "NowPlaying4CtrlDetailLine2Full";
- this._detailLine3.className = "NowPlaying4CtrlDetailLine3Full";
- this._unformattedText.className = "NowPlaying4CtrlUnformattedText";
+NowPlaying4Ctrl.prototype.clearArtworkImage = function () {
+ log.debug("clearArtworkImage() called...");
+
+ // Remove any current branding image (all styles)
+ this._artworkImage.src = "";
+
+ // If we're in a style that supports no image, ...
+ if (this.properties.ctrlStyle === "Style7") {
+ // ... remove any branding image configuration
+ if (this.properties.ctrlTitleObj &&
+ this.properties.ctrlTitleObj.ctrlTitleIcon) {
+ this.properties.ctrlTitleObj.ctrlTitleIcon = undefined;
}
+
+ // Hide the control title icon
+ this._artworkImageFrame.className = "NowPlaying4CtrlHidden";
+
+ // ... make sure the infobox is full-width
+ // ex: this._ctrlTitle.className = "NowPlaying4CtrlTitleFull";
+ this._infoBox.className = "NowPlaying4CtrlInfoBoxFull";
+ this._audioTitle.className = "NowPlaying4CtrlAudioTitleFull";
+ this._detailLine1.className = "NowPlaying4CtrlDetailLine1Full";
+ this._detailLine2.className = "NowPlaying4CtrlDetailLine2Full";
+ this._detailLine3.className = "NowPlaying4CtrlDetailLine3Full";
+ this._unformattedText.className = "NowPlaying4CtrlUnformattedText";
+ }
};
/*
* Sets the path to the "no-artwork" image (displayed when no artwork image is available)
* @param imagePath String for image path/file name
*/
-NowPlaying4Ctrl.prototype.setNoArtworkImagePath = function(imagePath)
-{
- log.debug("setNoArtworkImagePath() called: " + imagePath);
-
- // Album Image
- if (imagePath)
- {
- this.properties.noArtworkImagePath = imagePath;
- }
- else
- {
- this.properties.noArtworkImagePath = "common/images/no_artwork_icon.png";
- }
-
- if (!this.properties.artworkImagePath ||
- (this.properties.artworkImagePath == ""))
- {
- // Update the "no-artwork" image
- this._artworkImage.src = this.properties.noArtworkImagePath;
- }
+NowPlaying4Ctrl.prototype.setNoArtworkImagePath = function (imagePath) {
+ log.debug("setNoArtworkImagePath() called: " + imagePath);
+
+ // Album Image
+ if (imagePath) {
+ this.properties.noArtworkImagePath = imagePath;
+ } else {
+ this.properties.noArtworkImagePath = "common/images/no_artwork_icon.png";
+ }
+
+ if (!this.properties.artworkImagePath ||
+ (this.properties.artworkImagePath == "")) {
+ // Update the "no-artwork" image
+ this._artworkImage.src = this.properties.noArtworkImagePath;
+ }
};
// This API is a shortcut method for setting the control title icon. This appears above the
@@ -1736,293 +1559,235 @@ NowPlaying4Ctrl.prototype.setNoArtworkImagePath = function(imagePath)
// If the control is in a style supporting branding (e.g. "Style2", "Style4" "Style5", or "Style7"),
// the image will be displayed (if it wasn't already) and the title text will be truncated to
// make room for it.
-NowPlaying4Ctrl.prototype.setBrandImage = function(imagePath)
-{
- log.debug("setBrandImage() called: " + imagePath);
-
- //setting loading to false when brandImage available
- this.setLoadingIcon(false);
- if (imagePath)
- {
- // If we're in a style that allows branding, ...
- if (((this.properties.ctrlStyle === "Style2") ||
- (this.properties.ctrlStyle === "Style4") ||
- (this.properties.ctrlStyle === "Style5") ||
- (this.properties.ctrlStyle === "Style7")) &&
- this.properties.ctrlTitleObj)
- {
- // ... save the branding image
- this.properties.ctrlTitleObj.ctrlTitleIcon = imagePath;
-
- // If no HD configuration is in place (Style2 & Style4), ...
- if (this.properties.hdConfigObj == null)
- {
- // ... show the control title icon
- this._ctrlTitleIconImage.src = this.properties.ctrlTitleObj.ctrlTitleIcon;
- this._ctrlTitleIconFrame.className = "NowPlaying4CtrlTitleIconFrame";
-
- // Make sure control title is truncated
- this._ctrlTitle.className = "NowPlaying4CtrlTitle";
- }
- }
- }
- else
- {
- this.clearBrandImage();
+NowPlaying4Ctrl.prototype.setBrandImage = function (imagePath) {
+ log.debug("setBrandImage() called: " + imagePath);
+
+ //setting loading to false when brandImage available
+ this.setLoadingIcon(false);
+ if (imagePath) {
+ // If we're in a style that allows branding, ...
+ if (((this.properties.ctrlStyle === "Style2") ||
+ (this.properties.ctrlStyle === "Style4") ||
+ (this.properties.ctrlStyle === "Style5") ||
+ (this.properties.ctrlStyle === "Style7")) &&
+ this.properties.ctrlTitleObj) {
+ // ... save the branding image
+ this.properties.ctrlTitleObj.ctrlTitleIcon = imagePath;
+
+ // If no HD configuration is in place (Style2 & Style4), ...
+ if (this.properties.hdConfigObj == null) {
+ // ... show the control title icon
+ this._ctrlTitleIconImage.src = this.properties.ctrlTitleObj.ctrlTitleIcon;
+ this._ctrlTitleIconFrame.className = "NowPlaying4CtrlTitleIconFrame";
+
+ // Make sure control title is truncated
+ this._ctrlTitle.className = "NowPlaying4CtrlTitle";
+ }
}
+ } else {
+ this.clearBrandImage();
+ }
};
// This API is a shortcut method for clearing the control title icon. If the control is in
// a style supporting branding (e.g. "Style2", "Style4" or "Style5"), the image will be hidden
// and the title text will be extended over the album artwork image.
-NowPlaying4Ctrl.prototype.clearBrandImage = function()
-{
- log.debug("clearBrandImage() called...");
-
- // Remove any current branding image (all styles)
- this._ctrlTitleIconImage.src = "";
-
- // If we're in a style that supports branding, ...
- if ((this.properties.ctrlStyle === "Style2") ||
- (this.properties.ctrlStyle === "Style4") ||
- (this.properties.ctrlStyle === "Style5") ||
- (this.properties.ctrlStyle === "Style7"))
- {
- // ... remove any branding image configuration
- if (this.properties.ctrlTitleObj &&
- this.properties.ctrlTitleObj.ctrlTitleIcon)
- {
- this.properties.ctrlTitleObj.ctrlTitleIcon = undefined;
- }
-
- // Hide the control title icon
- this._ctrlTitleIconFrame.className = "NowPlaying4CtrlHidden";
+NowPlaying4Ctrl.prototype.clearBrandImage = function () {
+ log.debug("clearBrandImage() called...");
+
+ // Remove any current branding image (all styles)
+ this._ctrlTitleIconImage.src = "";
+
+ // If we're in a style that supports branding, ...
+ if ((this.properties.ctrlStyle === "Style2") ||
+ (this.properties.ctrlStyle === "Style4") ||
+ (this.properties.ctrlStyle === "Style5") ||
+ (this.properties.ctrlStyle === "Style7")) {
+ // ... remove any branding image configuration
+ if (this.properties.ctrlTitleObj &&
+ this.properties.ctrlTitleObj.ctrlTitleIcon) {
+ this.properties.ctrlTitleObj.ctrlTitleIcon = undefined;
+ }
- // If no HD configuration is in place, or HD isn't available (Style5), ...
- if ((this.properties.hdConfigObj == null) ||
- (this.properties.ctrlStyle === "Style5"))
- {
- if((this.properties.ctrlStyle === "Style7") && (this.properties.loadingIcon == false))
- // ... make sure the control title is full-width
- {
- this._ctrlTitle.className = "NowPlaying4CtrlTitleFull";
- }
- }
+ // Hide the control title icon
+ this._ctrlTitleIconFrame.className = "NowPlaying4CtrlHidden";
+
+ // If no HD configuration is in place, or HD isn't available (Style5), ...
+ if ((this.properties.hdConfigObj == null) ||
+ (this.properties.ctrlStyle === "Style5")) {
+ if ((this.properties.ctrlStyle === "Style7") && (this.properties.loadingIcon == false))
+ // ... make sure the control title is full-width
+ {
+ this._ctrlTitle.className = "NowPlaying4CtrlTitleFull";
+ }
}
+ }
};
-NowPlaying4Ctrl.prototype.setCurrentTrackNum = function(currentTrackNum)
-{
- log.debug("setCurrentTrackNum() called: " + currentTrackNum);
+NowPlaying4Ctrl.prototype.setCurrentTrackNum = function (currentTrackNum) {
+ log.debug("setCurrentTrackNum() called: " + currentTrackNum);
- if (currentTrackNum > 0)
- {
- this.properties.currentTrackNum = parseInt(currentTrackNum);
- this._updateTrackDisplay();
- }
- else
- {
- log.warn(this.uiaId + " setCurrentTrackNum() called with invalid parameter");
- }
+ if (currentTrackNum > 0) {
+ this.properties.currentTrackNum = parseInt(currentTrackNum);
+ this._updateTrackDisplay();
+ } else {
+ log.warn(this.uiaId + " setCurrentTrackNum() called with invalid parameter");
+ }
};
-NowPlaying4Ctrl.prototype.setTrackCount = function(trackCount)
-{
- log.debug("setTrackCount() called: " + trackCount);
+NowPlaying4Ctrl.prototype.setTrackCount = function (trackCount) {
+ log.debug("setTrackCount() called: " + trackCount);
- if (trackCount >= 0)
- {
- this.properties.trackCount = parseInt(trackCount);
- this._updateTrackDisplay();
- }
- else
- {
- log.warn(this.uiaId + " setTrackCount() called with invalid parameter");
- }
+ if (trackCount >= 0) {
+ this.properties.trackCount = parseInt(trackCount);
+ this._updateTrackDisplay();
+ } else {
+ log.warn(this.uiaId + " setTrackCount() called with invalid parameter");
+ }
};
-NowPlaying4Ctrl.prototype.setPhoneNumber = function(phoneNum)
-{
- log.debug("setPhoneNumber() called: " + phoneNum);
-
- if (this.properties.ctrlStyle !== "Style5")
- {
- this._phoneNumber.innerText = "";
- this._phoneNumber.className = "NowPlaying4CtrlHidden";
- this._phoneNumberIconFrame.className = "NowPlaying4CtrlHidden";
- log.debug("Phone number only visible in Style5");
- }
- else if (phoneNum)
- {
- this.properties.phoneNumber = phoneNum;
- this._phoneNumber.innerText = this.properties.phoneNumber;
- if (this.properties.phoneNumber != "")
- {
- this._phoneNumber.className = "NowPlaying4CtrlPhoneNumber";
- this._phoneNumberIconFrame.className = "NowPlaying4CtrlPhoneNumberIconFrame";
- }
- else
- {
- this._phoneNumber.className = "NowPlaying4CtrlHidden";
- this._phoneNumberIconFrame.className = "NowPlaying4CtrlHidden";
- }
- }
- else
- {
- this._phoneNumber.innerText = "";
- this._phoneNumber.className = "NowPlaying4CtrlHidden";
- this._phoneNumberIconFrame.className = "NowPlaying4CtrlHidden";
+NowPlaying4Ctrl.prototype.setPhoneNumber = function (phoneNum) {
+ log.debug("setPhoneNumber() called: " + phoneNum);
+
+ if (this.properties.ctrlStyle !== "Style5") {
+ this._phoneNumber.innerText = "";
+ this._phoneNumber.className = "NowPlaying4CtrlHidden";
+ this._phoneNumberIconFrame.className = "NowPlaying4CtrlHidden";
+ log.debug("Phone number only visible in Style5");
+ } else if (phoneNum) {
+ this.properties.phoneNumber = phoneNum;
+ this._phoneNumber.innerText = this.properties.phoneNumber;
+ if (this.properties.phoneNumber != "") {
+ this._phoneNumber.className = "NowPlaying4CtrlPhoneNumber";
+ this._phoneNumberIconFrame.className = "NowPlaying4CtrlPhoneNumberIconFrame";
+ } else {
+ this._phoneNumber.className = "NowPlaying4CtrlHidden";
+ this._phoneNumberIconFrame.className = "NowPlaying4CtrlHidden";
}
+ } else {
+ this._phoneNumber.innerText = "";
+ this._phoneNumber.className = "NowPlaying4CtrlHidden";
+ this._phoneNumberIconFrame.className = "NowPlaying4CtrlHidden";
+ }
};
-NowPlaying4Ctrl.prototype.setDistanceDirection = function(distanceDirection)
-{
- log.debug("setDistanceDirection() called: " + distanceDirection);
-
- if (this.properties.ctrlStyle !== "Style5")
- {
- this._distanceDirection.innerText = "";
- this._distanceDirection.className = "NowPlaying4CtrlHidden";
- this._distanceDirectionIconFrame.className = "NowPlaying4CtrlHidden";
- log.debug("Distance/direction only visible in Style5");
- }
- else if (distanceDirection)
- {
- this.properties.distanceDirection = distanceDirection;
- this._distanceDirection.innerText = this.properties.distanceDirection;
- if (this.properties.distanceDirection != "")
- {
- this._distanceDirection.className = "NowPlaying4CtrlDistanceDirection";
- this._distanceDirectionIconFrame.className = "NowPlaying4CtrlDistanceDirectionIconFrame";
- }
- else
- {
- this._distanceDirection.className = "NowPlaying4CtrlHidden";
- this._distanceDirectionIconFrame.className = "NowPlaying4CtrlHidden";
- }
- }
- else
- {
- this._distanceDirection.innerText = "";
- this._distanceDirection.className = "NowPlaying4CtrlHidden";
- this._distanceDirectionIconFrame.className = "NowPlaying4CtrlHidden";
+NowPlaying4Ctrl.prototype.setDistanceDirection = function (distanceDirection) {
+ log.debug("setDistanceDirection() called: " + distanceDirection);
+
+ if (this.properties.ctrlStyle !== "Style5") {
+ this._distanceDirection.innerText = "";
+ this._distanceDirection.className = "NowPlaying4CtrlHidden";
+ this._distanceDirectionIconFrame.className = "NowPlaying4CtrlHidden";
+ log.debug("Distance/direction only visible in Style5");
+ } else if (distanceDirection) {
+ this.properties.distanceDirection = distanceDirection;
+ this._distanceDirection.innerText = this.properties.distanceDirection;
+ if (this.properties.distanceDirection != "") {
+ this._distanceDirection.className = "NowPlaying4CtrlDistanceDirection";
+ this._distanceDirectionIconFrame.className = "NowPlaying4CtrlDistanceDirectionIconFrame";
+ } else {
+ this._distanceDirection.className = "NowPlaying4CtrlHidden";
+ this._distanceDirectionIconFrame.className = "NowPlaying4CtrlHidden";
}
+ } else {
+ this._distanceDirection.innerText = "";
+ this._distanceDirection.className = "NowPlaying4CtrlHidden";
+ this._distanceDirectionIconFrame.className = "NowPlaying4CtrlHidden";
+ }
};
-NowPlaying4Ctrl.prototype.setRating = function(rating)
-{
- if (rating >= 0 || rating == -1)
- {
- rating *= 2;
- this.properties.rating = parseInt(rating) / 2;
- this._updateRatingMeter();
- }
- else
- {
- log.warn(this.uiaId + " setRating() called with invalid parameter");
- }
+NowPlaying4Ctrl.prototype.setRating = function (rating) {
+ if (rating >= 0 || rating == -1) {
+ rating *= 2;
+ this.properties.rating = parseInt(rating) / 2;
+ this._updateRatingMeter();
+ } else {
+ log.warn(this.uiaId + " setRating() called with invalid parameter");
+ }
};
-NowPlaying4Ctrl.prototype.setCustomRatingImg = function(imgPath)
-{
+NowPlaying4Ctrl.prototype.setCustomRatingImg = function (imgPath) {
- if (this.properties.ctrlStyle !== "Style5")
- {
- this._customRatingDiv.className = "NowPlaying4CtrlHidden";
- log.debug("Custom rating only visible in Style5");
- }
- else
- {
- var tmpImage = new Image();
- tmpImage.src = imgPath;
- this._ratingMeterFrame.className = "NowPlaying4CtrlHidden";
- this._customRatingDiv.style.backgroundImage = "url(\"" + imgPath + "\")";
- this._customRatingDiv.className = "NowPlaying4CtrlCustomRatingDiv";
-
- if (tmpImage.width > this._constants.MAX_RATING_IMG_WIDTH || tmpImage.height > this._constants.MAX_RATING_IMG_HEIGHT)
- {
- this._customRatingDiv.style.backgroundSize = "contain";
- }
- else
- {
- this._customRatingDiv.style.backgroundSize = "";
- }
+ if (this.properties.ctrlStyle !== "Style5") {
+ this._customRatingDiv.className = "NowPlaying4CtrlHidden";
+ log.debug("Custom rating only visible in Style5");
+ } else {
+ var tmpImage = new Image();
+ tmpImage.src = imgPath;
+ this._ratingMeterFrame.className = "NowPlaying4CtrlHidden";
+ this._customRatingDiv.style.backgroundImage = "url(\"" + imgPath + "\")";
+ this._customRatingDiv.className = "NowPlaying4CtrlCustomRatingDiv";
+
+ if (tmpImage.width > this._constants.MAX_RATING_IMG_WIDTH || tmpImage.height > this._constants.MAX_RATING_IMG_HEIGHT) {
+ this._customRatingDiv.style.backgroundSize = "contain";
+ } else {
+ this._customRatingDiv.style.backgroundSize = "";
}
+ }
};
/*
* Sets whether the control background image should be displayed
* @param flag Boolean true if the background image should be displayed
*/
-NowPlaying4Ctrl.prototype.showBackgroundImage = function(flag)
-{
- log.debug("showBackgroundImage() called: " + flag);
-
- if (flag)
- {
- this.divElt.classList.remove("NowPlaying4CtrlNoBG");
- }
- else
- {
- this.divElt.classList.add("NowPlaying4CtrlNoBG");
- }
+NowPlaying4Ctrl.prototype.showBackgroundImage = function (flag) {
+ log.debug("showBackgroundImage() called: " + flag);
+
+ if (flag) {
+ this.divElt.classList.remove("NowPlaying4CtrlNoBG");
+ } else {
+ this.divElt.classList.add("NowPlaying4CtrlNoBG");
+ }
};
-NowPlaying4Ctrl.prototype.getNowPlayingConfig = function()
-{
- // extract the text from the fields and remove the unnecessary html tags
- var config = {
- "ctrlTitle": this._ctrlTitle,
- "audioTitle": this._audioTitle,
- "detailLine1": this._detailLine1,
- "detailLine2": this._detailLine2,
- "detailLine3": this._detailLine3,
- "unformattedText" : this._unformattedText
- };
-
- return config;
+NowPlaying4Ctrl.prototype.getNowPlayingConfig = function () {
+ // extract the text from the fields and remove the unnecessary html tags
+ var config = {
+ "ctrlTitle": this._ctrlTitle,
+ "audioTitle": this._audioTitle,
+ "detailLine1": this._detailLine1,
+ "detailLine2": this._detailLine2,
+ "detailLine3": this._detailLine3,
+ "unformattedText": this._unformattedText
+ };
+
+ return config;
};
-NowPlaying4Ctrl.prototype.handleControllerEvent = function(eventId)
-{
- log.debug("NowPlaying4Ctrl: handleControllerEvent() ", eventId);
- // Pass-through
- if (this.umpCtrl)
- {
- var response = this.umpCtrl.handleControllerEvent(eventId);
- return response;
- }
+NowPlaying4Ctrl.prototype.handleControllerEvent = function (eventId) {
+ log.debug("NowPlaying4Ctrl: handleControllerEvent() ", eventId);
+ // Pass-through
+ if (this.umpCtrl) {
+ var response = this.umpCtrl.handleControllerEvent(eventId);
+ return response;
+ }
};
-NowPlaying4Ctrl.prototype.getContextCapture = function()
-{
- log.debug("NowPlaying4Ctrl: getContextCapture() called...");
+NowPlaying4Ctrl.prototype.getContextCapture = function () {
+ log.debug("NowPlaying4Ctrl: getContextCapture() called...");
- var controlContextCapture = this.umpCtrl.getContextCapture();
- return controlContextCapture;
+ var controlContextCapture = this.umpCtrl.getContextCapture();
+ return controlContextCapture;
};
-NowPlaying4Ctrl.prototype.restoreContext = function(controlContextCapture)
-{
- log.debug("NowPlaying4Ctrl: restoreContext() ", controlContextCapture);
+NowPlaying4Ctrl.prototype.restoreContext = function (controlContextCapture) {
+ log.debug("NowPlaying4Ctrl: restoreContext() ", controlContextCapture);
- this.umpCtrl.restoreContext(controlContextCapture);
+ this.umpCtrl.restoreContext(controlContextCapture);
};
-NowPlaying4Ctrl.prototype.finishPartialActivity = function()
-{
- log.debug("NowPlaying4Ctrl: finishPartialActivity() called...");
+NowPlaying4Ctrl.prototype.finishPartialActivity = function () {
+ log.debug("NowPlaying4Ctrl: finishPartialActivity() called...");
- this.umpCtrl.finishPartialActivity();
+ this.umpCtrl.finishPartialActivity();
};
-NowPlaying4Ctrl.prototype.cleanUp = function(){
- log.debug("NowPlaying4Ctrl: cleanUp() called...");
- // Now Playing currently has no cleanup
- if (this.umpCtrl)
- {
- this.umpCtrl.cleanUp();
- }
+NowPlaying4Ctrl.prototype.cleanUp = function () {
+ log.debug("NowPlaying4Ctrl: cleanUp() called...");
+ // Now Playing currently has no cleanup
+ if (this.umpCtrl) {
+ this.umpCtrl.cleanUp();
+ }
};
framework.registerCtrlLoaded("NowPlaying4Ctrl");
diff --git a/app/files/tweaks/config/USBAudioMod/usbaudioApp.js b/app/files/tweaks/config/USBAudioMod/usbaudioApp.js
index 1d3854d..1591a56 100644
--- a/app/files/tweaks/config/USBAudioMod/usbaudioApp.js
+++ b/app/files/tweaks/config/USBAudioMod/usbaudioApp.js
@@ -2735,7 +2735,7 @@ usbaudioApp.prototype._PlaybackStatusMsgHandler = function (msg)
usbaudioApp.prototype._NowPlayingDataMsgHandler = function (msg)
{
- console.log("Inside _NowPlayingDataMsgHandler with msg : ", msg );
+ log.debug("Inside _NowPlayingDataMsgHandler with msg : ", msg );
if (!this._currentContext){
log.debug('No this._currentContext !!!');
}
@@ -2824,13 +2824,21 @@ usbaudioApp.prototype._ObjectInfoMsgHandler = function (msg)
this._currentContextTemplate.nowPlaying4Ctrl.setDetailLine3({detailText: AIO_gracenoteText});
this._gracenoteTimeout = setTimeout(this._removeGracenote.bind(this), this._gracenoteTimeoutTime);
}
+ else // ---MZDMOD--- setDetailLine3 to genre about 10 seconds
+ {
+ if (this._cachedSongDetails.genre)
+ {
+ this._currentContextTemplate.nowPlaying4Ctrl.setDetailLine3({detailText: this._cachedSongDetails.genre});
+ this._genreTimeout = setTimeout(this._removeGenre.bind(this), 10000);
+ }
+ }
}
- else // ---MZDMOD--- setDetailLine3 to genre for 20 seconds
+ else // ---MZDMOD--- setDetailLine3 to genre about 10 seconds
{
if (this._cachedSongDetails.genre)
{
this._currentContextTemplate.nowPlaying4Ctrl.setDetailLine3({detailText: this._cachedSongDetails.genre});
- this._genreTimeout = setTimeout(this._removeGenre.bind(this), 20000);
+ this._genreTimeout = setTimeout(this._removeGenre.bind(this), 10000);
}
}
}
@@ -2890,7 +2898,7 @@ usbaudioApp.prototype._PlayerStateMsgHandler = function (msg)
};
usbaudioApp.prototype._changePlayButton = function(nextButtonStatus)
{
- console.log("ENTER _changePlayButton, value:[" +nextButtonStatus+ "]");
+ log.debug("ENTER _changePlayButton, value:[" +nextButtonStatus+ "]");
if (this._currentContext && this._currentContextTemplate && this._currentContext.ctxtId == "NowPlaying")
{
this._currentContextTemplate.nowPlaying4Ctrl.umpCtrl.setButtonState("playpause", nextButtonStatus);
@@ -3188,13 +3196,16 @@ usbaudioApp.prototype._getItemsCallback = function (index, dataList, action, fro
// ---MZDMOD---
// Remove the '/' character off the folder string by cutting last char
var renamedItem = params.params.folder_inf.name;
- if (renamedItem.length > 1)
- {
- renamedItem = renamedItem.slice(0,-1);
- }
- else if (renamedItem.length === 1)
+ if (renamedItem.slice(-1) === '/')
{
- renamedItem = "";
+ if (renamedItem.length > 1)
+ {
+ renamedItem = renamedItem.slice(0,-1);
+ }
+ else if (renamedItem.length === 1)
+ {
+ renamedItem = "";
+ }
}
if (this._currentContext && this._currentContext.ctxtId == "NowPlaying" && this._currentContextTemplate)
{
@@ -3446,7 +3457,10 @@ usbaudioApp.prototype._populateFolders = function (tmplt, data, dataList, index,
var itemPress = "shortPressOnly";
if (items[j].type == 1 && renamedItem.length > 1)
{
- renamedItem = renamedItem.slice(0,-1);
+ if (renamedItem.slice(-1) === '/')
+ {
+ renamedItem = renamedItem.slice(0,-1);
+ }
itemPress = "shortAndLong";
}
listConfig.dataList.items[i] = {
diff --git a/app/files/tweaks/config/aio-app/data_persist/dev/system_restore/restore.sh b/app/files/tweaks/config/aio-app/data_persist/dev/system_restore/restore.sh
index 73df1da..f5ac7ba 100644
--- a/app/files/tweaks/config/aio-app/data_persist/dev/system_restore/restore.sh
+++ b/app/files/tweaks/config/aio-app/data_persist/dev/system_restore/restore.sh
@@ -1,5 +1,5 @@
#!/bin/sh
-# restore.sh - MZD-AIO-TI Version 2.7.6
+# restore.sh - MZD-AIO-TI Version 2.7.8
# The Full Restore script for the AIO Tweaks app
# For more information visit http://mazdatweaks.com
# By Trezdog44 - Trevelopment.com
@@ -8,8 +8,8 @@
hwclock --hctosys
# AIO Variables
-AIO_VER=0.4
-AIO_DATE=2018.01.01
+AIO_VER=0.6
+AIO_DATE=2018.01.31
# TO DELETE ALL BACKUP FILES CHENGE DEL_BAKUPS=0 TO DEL_BAKUPS=1
DEL_BAKUPS=0
@@ -170,7 +170,7 @@ then
log_message "=== Original data.zip is available as backup ==="
cp -a /jci/nng/data.zip.org /jci/nng/data.zip
log_message "=== Renamed data.zip.org back to data.zip ==="
- if [ "${DEL_BAKUPS}" = "1" ]
+ if [ $DEL_BAKUPS -eq 1 ]
then
rm -f /jci/nng/data.zip.org
log_message "=== Deleted backup: data.zip.org ==="
@@ -182,7 +182,7 @@ if [ -e /jci/nng/jci-linux_imx6_volans-release.org ]
then
mv /jci/nng/jci-linux_imx6_volans-release.org /jci/nng/jci-linux_imx6_volans-release
show_message "RESTORED JCI-LINUX_IMX6_VOLANS-RELEASE BACK TO ORIGINAL"
- if [ "${DEL_BAKUPS}" = "1" ]
+ if [ $DEL_BAKUPS -eq 1 ]
then
rm -f /jci/nng/jci-linux_imx6_volans-release.org
log_message "=== Deleted backup: jci-linux_imx6_volans-release.org ==="
@@ -212,7 +212,7 @@ fi
# rm -f /usr/lib/gstreamer-0.10/libgstflac.so
# rm -f /usr/lib/libFLAC.so.8.3.0
# rm -f /usr/lib/libFLAC.so.8
-# if [ "${DEL_BAKUPS}" = "1" ]
+# if [ $DEL_BAKUPS -eq 1 ]
# then
# rm -f /jci/lib/libmc_user.so.org
# log_message "=== Deleted backup: libmc_user.so.org ==="
@@ -231,7 +231,7 @@ then
rm -f /jci/gui/apps/system/js/systemApp.js.audio
rm -f /jci/gui/apps/system/js/systemApp.js.disclaimer
log_message "=== Removed systemApp.js.audio and systemApp.js.disclaimer flags ==="
- if [ "${DEL_BAKUPS}" = "1" ]
+ if [ $DEL_BAKUPS -eq 1 ]
then
rm -f /jci/gui/apps/system/js/systemApp.js.org
log_message "=== Deleted backup: systemApp.js.org ==="
@@ -249,7 +249,7 @@ then
log_message "============********** UNINSTALL MAIN-MENU-LOOP ... ********============="
cp -a /jci/gui/apps/system/controls/MainMenu/js/MainMenuCtrl.js.org /jci/gui/apps/system/controls/MainMenu/js/MainMenuCtrl.js
log_message "=== Restored Original MainMenuCtrl.js From Backup ==="
- if [ "${DEL_BAKUPS}" = "1" ]
+ if [ $DEL_BAKUPS -eq 1 ]
then
rm -f /jci/gui/apps/system/controls/MainMenu/js/MainMenuCtrl.js.org
log_message "=== Deleted backup: MainMenuCtrl.js.org ==="
@@ -265,7 +265,7 @@ then
log_message "=========******** UNINSTALL LIST_LOOP_MOD ... *********======="
cp -a /jci/gui/common/controls/List2/js/List2Ctrl.js.org /jci/gui/common/controls/List2/js/List2Ctrl.js
log_message "=== Restored List2Ctrl.js from backup ==="
- if [ "${DEL_BAKUPS}" = "1" ]
+ if [ $DEL_BAKUPS -eq 1 ]
then
rm -f /jci/gui/common/controls/List2/js/List2Ctrl.js.org
log_message "=== Deleted backup: List2Ctrl.js.org ==="
@@ -289,7 +289,7 @@ then
fi
if [ -e /jci/gui/apps/diag/js/diagApp.js.org ] || [ -e /jci/gui/apps/diag/js/diagApp.js.org2 ]
then
- if [ "${DEL_BAKUPS}" = "1" ]
+ if [ $DEL_BAKUPS -eq 1 ]
then
rm -f /jci/gui/apps/diag/js/diagApp.js.org
rm -f /jci/gui/apps/diag/js/diagApp.js.org2
@@ -325,7 +325,7 @@ then
fi
cp -a /jci/gui/common/js/Common.js.org /jci/gui/common/js/Common.js
log_message "=== Common.js Restored From Backup ==="
- if [ "${DEL_BAKUPS}" = "1" ]
+ if [ $DEL_BAKUPS -eq 1 ]
then
rm -f /jci/gui/common/js/Common.js.org
log_message "=== Deleted backup: Common.js.org ==="
@@ -344,7 +344,7 @@ then
log_message "========********** UNINSTALL BACKGROUND ROTATOR ... *******========"
cp -a /jci/gui/common/css/common.css.org /jci/gui/common/css/common.css
log_message "=== Restored /jci/gui/common/css/common.css from backup ==="
- if [ "${DEL_BAKUPS}" = "1" ]
+ if [ $DEL_BAKUPS -eq 1 ]
then
rm -f /jci/gui/common/css/common.css.org
log_message "=== Deleted backup: common.css.org ==="
@@ -359,7 +359,7 @@ then
log_message "=========********* UNINSTALL REMOVE MESSAGE REPLIES ... ********========="
cp -a /jci/settings/configurations/blm_msg-system.xml.org /jci/settings/configurations/blm_msg-system.xml
log_message "=== Message Replies Restored From Backup blm_msg-system.xml.org ==="
- if [ "${DEL_BAKUPS}" = "1" ]
+ if [ $DEL_BAKUPS -eq 1 ]
then
rm -f /jci/settings/configurations/blm_msg-system.xml.org
log_message "=== Deleted backup: blm_msg-system.xml.org ==="
@@ -375,7 +375,7 @@ then
log_message "========******** UNINSTALL DISABLE BOOT ANIMATION ... ********========"
cp -a /jci/resources/LoopLogo.ivf.org /jci/resources/LoopLogo.ivf
log_message "=== Restored original /jci/resources/LoopLogo.ivf ==="
- if [ "${DEL_BAKUPS}" = "1" ]
+ if [ $DEL_BAKUPS -eq 1 ]
then
rm -f /jci/resources/LoopLogo.ivf.org
log_message "=== Deleted backup: LoopLogo.ivf.org ==="
@@ -385,7 +385,7 @@ if [ -e /jci/resources/ExitLogo.ivf.org ]
then
cp -a /jci/resources/ExitLogo.ivf.org /jci/resources/ExitLogo.ivf
log_message "=== Restored original /jci/resources/ExitLogo.ivf ==="
- if [ "${DEL_BAKUPS}" = "1" ]
+ if [ $DEL_BAKUPS -eq 1 ]
then
rm -f /jci/resources/ExitLogo.ivf.org
log_message "=== Deleted backup: ExitLogo.ivf.org ==="
@@ -395,7 +395,7 @@ if [ -e /jci/resources/TranLogo.ivf.org ]
then
cp -a /jci/resources/TranLogo.ivf.org /jci/resources/TranLogo.ivf
log_message "=== Restored original /jci/resources/TranLogo.ivf ==="
- if [ "${DEL_BAKUPS}" = "1" ]
+ if [ $DEL_BAKUPS -eq 1 ]
then
rm -f /jci/resources/TranLogo.ivf.org
log_message "=== Deleted backup: TranLogo.ivf.org ==="
@@ -405,7 +405,7 @@ if [ -e /jci/resources/TranLogoEnd.ivf.org ]
then
cp -a /jci/resources/TranLogoEnd.ivf.org /jci/resources/TranLogoEnd.ivf
log_message "=== Restored original /jci/resources/TranLogoEnd.ivf ==="
- if [ "${DEL_BAKUPS}" = "1" ]
+ if [ $DEL_BAKUPS -eq 1 ]
then
rm -f /jci/resources/TranLogoEnd.ivf.org
log_message "=== Deleted backup: TranLogoEnd.ivf.org ==="
@@ -421,7 +421,7 @@ then
cp -a /jci/gui/common/controls/Sbn/css/SbnCtrl.css.org /jci/gui/common/controls/Sbn/css/SbnCtrl.css
log_message "=== Restored backup from SbnCtrl.css.org ==="
rm -f /jci/gui/common/controls/Sbn/css/SbnCtrl.all.css
- if [ "${DEL_BAKUPS}" = "1" ]
+ if [ $DEL_BAKUPS -eq 1 ]
then
rm -f /jci/gui/common/controls/Sbn/css/SbnCtrl.css.org
log_message "=== Deleted backup: SbnCtrl.css.org ==="
@@ -431,7 +431,7 @@ if [ -e /jci/gui/common/controls/StatusBar/css/StatusBarCtrl.css.org ]
then
cp -a /jci/gui/common/controls/StatusBar/css/StatusBarCtrl.css.org /jci/gui/common/controls/StatusBar/css/StatusBarCtrl.css
log_message "=== Restored backup from StatusBarCtrl.css.org ==="
- if [ "${DEL_BAKUPS}" = "1" ]
+ if [ $DEL_BAKUPS -eq 1 ]
then
rm -f /jci/gui/common/controls/StatusBar/css/StatusBarCtrl.css.org
log_message "=== Deleted backup: StatusBarCtrl.css.org ==="
@@ -447,7 +447,7 @@ then
fi
cp -a /jci/gui/common/controls/StatusBar/js/StatusBarCtrl.js.org /jci/gui/common/controls/StatusBar/js/StatusBarCtrl.js
log_message "=== Restored backup from StatusBarCtrl.js.org ==="
- if [ "${DEL_BAKUPS}" = "1" ]
+ if [ $DEL_BAKUPS -eq 1 ]
then
rm -f /jci/gui/common/controls/StatusBar/js/StatusBarCtrl.js.org
log_message "=== Deleted backup: StatusBarCtrl.js.org ==="
@@ -465,7 +465,7 @@ if [ -e /jci/gui/common/controls/StatusBar/images/StatusBarBg.png.org ]
then
cp -a /jci/gui/common/controls/StatusBar/images/StatusBarBg.png.org /jci/gui/common/controls/StatusBar/images/StatusBarBg.png
log_message "=== Restored backup from StatusBarBg.png.org ==="
- if [ "${DEL_BAKUPS}" = "1" ]
+ if [ $DEL_BAKUPS -eq 1 ]
then
rm -f /jci/gui/common/controls/StatusBar/images/StatusBarBg.png.org
log_message "=== Deleted backup: StatusBarBg.png.org ==="
@@ -475,7 +475,7 @@ if [ -e /jci/gui/framework/js/Utility.js.org ]
then
cp -a /jci/gui/framework/js/Utility.js.org /jci/gui/framework/js/Utility.js
log_message "=== Restored backup from Utility.js.org ==="
- if [ "${DEL_BAKUPS}" = "1" ]
+ if [ $DEL_BAKUPS -eq 1 ]
then
rm -f /jci/gui/framework/js/Utility.js.org
log_message "=== Deleted backup: Utility.js.org ==="
@@ -490,7 +490,7 @@ then
log_message "======********* UNINSTALL NO BUTTON BACKGROUND GRAPHICS ... ******======"
cp -a /jci/gui/common/controls/Ump3/css/Ump3Ctrl.css.org /jci/gui/common/controls/Ump3/css/Ump3Ctrl.css
log_message "=== Restored Ump3Ctrl.css from backup ==="
- if [ "${DEL_BAKUPS}" = "1" ]
+ if [ $DEL_BAKUPS -eq 1 ]
then
rm -f /jci/gui/common/controls/Ump3/css/Ump3Ctrl.css.org
log_message "=== Deleted backup: Ump3Ctrl.css.org ==="
@@ -524,7 +524,7 @@ then
log_message "========******** UNINSTALL UI TEXT STYLE TWEAKS ... ********========"
cp -a /jci/gui/common/controls/List2/css/List2Ctrl.css.org /jci/gui/common/controls/List2/css/List2Ctrl.css
log_message "=== Restored backup from List2Ctrl.css.org ==="
- if [ "${DEL_BAKUPS}" = "1" ]
+ if [ $DEL_BAKUPS -eq 1 ]
then
rm -f /jci/gui/common/controls/List2/css/List2Ctrl.css.org
log_message "=== Deleted backup: List2Ctrl.css.org ==="
@@ -534,7 +534,7 @@ if [ -e /jci/gui/common/controls/NowPlaying4/css/NowPlaying4Ctrl.css.org ]
then
cp -a /jci/gui/common/controls/NowPlaying4/css/NowPlaying4Ctrl.css.org /jci/gui/common/controls/NowPlaying4/css/NowPlaying4Ctrl.css
log_message "=== Restored backup from NowPlaying4Ctrl.css.org ==="
- if [ "${DEL_BAKUPS}" = "1" ]
+ if [ $DEL_BAKUPS -eq 1 ]
then
rm -f /jci/gui/common/controls/NowPlaying4/css/NowPlaying4Ctrl.css.org
log_message "=== Deleted backup: NowPlaying4Ctrl.css.org ==="
@@ -544,7 +544,7 @@ if [ -e /jci/gui/apps/system/controls/MainMenu/css/MainMenuCtrl.css.org ]
then
cp -a /jci/gui/apps/system/controls/MainMenu/css/MainMenuCtrl.css.org /jci/gui/apps/system/controls/MainMenu/css/MainMenuCtrl.css
log_message "=== Restored backup from MainMenuCtrl.css.org ==="
- if [ "${DEL_BAKUPS}" = "1" ]
+ if [ $DEL_BAKUPS -eq 1 ]
then
rm -f /jci/gui/apps/system/controls/MainMenu/css/MainMenuCtrl.css.org
log_message "=== Deleted backup: MainMenuCtrl.css.org ==="
@@ -559,7 +559,7 @@ then
log_message "========********* UNINSTALL FUEL CONSUMPTION TWEAK ... *********========"
cp -a /jci/gui/apps/ecoenergy/controls/FuelConsumption/css/FuelConsumptionCtrl.css.org /jci/gui/apps/ecoenergy/controls/FuelConsumption/css/FuelConsumptionCtrl.css
log_message "=== Restored original FuelConsumptionCtrl.css from backup ==="
- if [ "${DEL_BAKUPS}" = "1" ]
+ if [ $DEL_BAKUPS -eq 1 ]
then
rm -f /jci/gui/apps/ecoenergy/controls/FuelConsumption/css/FuelConsumptionCtrl.css.org
log_message "=== Deleted backup: FuelConsumptionCtrl.css.org ==="
@@ -569,7 +569,7 @@ if [ -e /jci/gui/apps/ecoenergy/controls/FuelConsumption/images/FuelConsBG.png.o
then
cp -a /jci/gui/apps/ecoenergy/controls/FuelConsumption/images/FuelConsBG.png.org /jci/gui/apps/ecoenergy/controls/FuelConsumption/images/FuelConsBG.png
log_message "=== Restored original FuelConsumptionCtrl.png from backup ==="
- if [ "${DEL_BAKUPS}" = "1" ]
+ if [ $DEL_BAKUPS -eq 1 ]
then
rm -f /jci/gui/apps/ecoenergy/controls/FuelConsumption/images/FuelConsBG.png.org
log_message "=== Deleted backup: FuelConsBG.png.org ==="
@@ -579,7 +579,7 @@ if [ -e /jci/gui/apps/ecoenergy/controls/FuelConsumption/js/FuelConsumptionCtrl.
then
cp -a /jci/gui/apps/ecoenergy/controls/FuelConsumption/js/FuelConsumptionCtrl.js.org /jci/gui/apps/ecoenergy/controls/FuelConsumption/js/FuelConsumptionCtrl.js
log_message "=== Restored original FuelConsBG.png from backup ==="
- if [ "${DEL_BAKUPS}" = "1" ]
+ if [ $DEL_BAKUPS -eq 1 ]
then
rm -f /jci/gui/apps/ecoenergy/controls/FuelConsumption/js/FuelConsumptionCtrl.js.org
log_message "=== Deleted backup: FuelConsumptionCtrl.js.org ==="
@@ -594,7 +594,7 @@ then
log_message "========******* UNINSTALL OFF SCREEN BACKGROUND IMAGE ... *******========"
cp -a /jci/gui/apps/system/controls/OffScreen/images/OffScreenBackground.png.org /jci/gui/apps/system/controls/OffScreen/images/OffScreenBackground.png
log_message "=== Reverting From Backup OffScreenBackground.png.org ==="
- if [ "${DEL_BAKUPS}" = "1" ]
+ if [ $DEL_BAKUPS -eq 1 ]
then
rm -f /jci/gui/apps/system/controls/OffScreen/images/OffScreenBackground.png.org
log_message "=== Deleted backup: OffScreenBackground.png.org ==="
@@ -608,7 +608,7 @@ then
log_message "==========************ UNINSTALL USB AUDIO MOD ... ************=========="
cp -a /jci/gui/apps/usbaudio/js/usbaudioApp.js.org /jci/gui/apps/usbaudio/js/usbaudioApp.js
log_message "=== /jci/gui/apps/usbaudio/js/usbaudioApp.js Restored from backup ==="
- if [ "${DEL_BAKUPS}" = "1" ]
+ if [ $DEL_BAKUPS -eq 1 ]
then
rm -f /jci/gui/apps/usbaudio/js/usbaudioApp.js.org
log_message "=== Deleted backup: usbaudioApp.js.org ==="
@@ -618,7 +618,7 @@ if [ -e /jci/gui/common/controls/NowPlaying4/js/NowPlaying4Ctrl.js.org ]
then
cp -a /jci/gui/common/controls/NowPlaying4/js/NowPlaying4Ctrl.js.org /jci/gui/common/controls/NowPlaying4/js/NowPlaying4Ctrl.js
log_message "=== Restored NowPlaying4Ctrl.js from backup ==="
- if [ "${DEL_BAKUPS}" = "1" ]
+ if [ $DEL_BAKUPS -eq 1 ]
then
rm -f /jci/gui/common/controls/NowPlaying4/js/NowPlaying4Ctrl.js.org
log_message "=== Deleted backup: NowPlaying4Ctrl.js.org ==="
@@ -712,7 +712,7 @@ if [ -e /jci/scripts/jci-fw.sh.org ]
then
log_message "=== Restoring /jci/scripts/jci-fw.sh ==="
cp -a /jci/scripts/jci-fw.sh.org /jci/scripts/jci-fw.sh
- if [ "${DEL_BAKUPS}" = "1" ]
+ if [ $DEL_BAKUPS -eq 1 ]
then
rm -f /jci/scripts/jci-fw.sh.org
log_message "=== Deleted backup: jci-fw.sh.org ==="
@@ -725,24 +725,119 @@ log_message "=======***** END UNINSTALLATION OF ANDROID AUTO HEADUNIT APP ****=
log_message " "
# restore safety warning from reverse camera
-show_message "RESTORE SAFETY WARNING FROM REVERSE CAMERA ..."
-log_message "===***** UNINSTALL REMOVE SAFETY WARNING FROM REVERSE CAMERA ... *****==="
+#show_message "RESTORE SAFETY WARNING FROM REVERSE CAMERA ..."
+#log_message "===***** UNINSTALL REMOVE SAFETY WARNING FROM REVERSE CAMERA ... *****==="
# Copy reverse camera safety warning images
-cp -a ${MYDIR}/config_org/safety-warning-reverse-camera/jci/nativegui/images/*.png /jci/nativegui/images/
-log_message "=== Reverse Camera Safety Warning Restored ==="
+#cp -a ${MYDIR}/config_org/safety-warning-reverse-camera/jci/nativegui/images/*.png /jci/nativegui/images/
+#log_message "=== Reverse Camera Safety Warning Restored ==="
-log_message "===*** END UNINSTALLATION OF REMOVE REVERSE CAMERA SAFETY WARNING ***==="
-log_message " "
+#log_message "===*** END UNINSTALLATION OF REMOVE REVERSE CAMERA SAFETY WARNING ***==="
+#log_message " "
-log_message " "
-cp -a "${MYDIR}/config_org/blank-album-art-frame/jci/gui/common/controls/InCall2/images/NowPlayingImageFrame.png" /jci/gui/common/controls/InCall2/images
-cp -a "${MYDIR}/config_org/blank-album-art-frame/jci/gui/common/controls/NowPlaying4/images/NowPlayingImageFrame.png" /jci/gui/common/controls/NowPlaying4/images
-cp -a "${MYDIR}/config_org/blank-album-art-frame/jci/gui/common/images/no_artwork_icon.png" /jci/gui/common/images
+#log_message " "
+#cp -a "${MYDIR}/config_org/blank-album-art-frame/jci/gui/common/controls/InCall2/images/NowPlayingImageFrame.png" /jci/gui/common/controls/InCall2/images
+#cp -a "${MYDIR}/config_org/blank-album-art-frame/jci/gui/common/controls/NowPlaying4/images/NowPlayingImageFrame.png" /jci/gui/common/controls/NowPlaying4/images
+#cp -a "${MYDIR}/config_org/blank-album-art-frame/jci/gui/common/images/no_artwork_icon.png" /jci/gui/common/images
cp -a "${MYDIR}/config_org/background.png" /jci/gui/common/images
log_message "============******** RESTORED ORIGINAL BACKGROUND ***********============"
log_message " "
+# uninstall CASDK
+if [ -e /jci/casdk/casdk.aio ]
+then
+ show_message "===****** UNINSTALLING CASDK ******==="
+ log_message "==========************ BEGIN UNINSTALLING CASDK ************==========="
+ log_message " "
+
+ # mount resources
+ mount -o rw,remount /tmp/mnt/resources
+
+ # kill all watch processes
+ log_message "- Removing watch processes"
+ pkill -f watch
+ pkill -f 'watch -n 1'
+ pkill -f 'watch -n 60'
+ pkill -f 'watch -n 300'
+ pkill -f 'mzd-casdk.start'
+
+ # reset storage
+ if [ -e /tmp/mnt/data_persist/storage ]
+ then
+ log_message "- Removing storage folder"
+ rm -rf /tmp/mnt/data_persist/storage
+ fi
+ if [ -e /jci/opera/opera_home/pstorage/psindex.dat ]
+ then
+ if [ -f /jci/opera/opera_home/pstorage/psindex.dat.org ]
+ then
+ log_message "- Removing local storage settings"
+ cp -a /jci/opera/opera_home/pstorage/psindex.dat.org /jci/opera/opera_home/pstorage/psindex.dat
+ rm /jci/opera/opera_home/pstorage/psindex.dat.org
+ else
+ log_message "- Removing local storage settings and pstorage"
+ rm -rf /jci/opera/opera_home/pstorage
+ fi
+ fi
+
+ # remove data reader files
+ if [ -e /jci/casdk ]
+ then
+ log_message "- Removing data script folder /jci/casdk"
+ rm /jci/casdk/*
+ rmdir --ignore-fail-on-non-empty /jci/casdk
+ else
+ log_message "- CASDK Data script folder '/jci/casdk' not found"
+ fi
+
+ # remove initialization file
+ if grep -q "# CASDK" /jci/scripts/stage_wifi.sh
+ then
+ log_message "- Removing staging scripts"
+ # echo '#!/bin/sh' > /jci/scripts/stage_wifi.sh
+ sed -i '/# CASDK/d' /jci/scripts/stage_wifi.sh
+ sed -i '/casdk/d' /jci/scripts/stage_wifi.sh
+ sed -i '/################/d' /jci/scripts/stage_wifi.sh
+ sed -i '/# one time/d' /jci/scripts/stage_wifi.sh
+ sed -i '/# 1s update/d' /jci/scripts/stage_wifi.sh
+ sed -i '/# 60s update/d' /jci/scripts/stage_wifi.sh
+ sed -i '/# 300s update/d' /jci/scripts/stage_wifi.sh
+ sed -i '/mzd-casdk.start/d' /jci/scripts/stage_wifi.sh
+ else
+ log_message "- No staging scripts fouund in /jci/scripts/stage_wifi.sh"
+ fi
+
+ # remove proxy
+ if [ -f /jci/opera/opera_dir/userjs/CustomApplicationsProxy.js ]
+ then
+ log_message "- Removing proxys & startups"
+ rm -f /jci/opera/opera_dir/userjs/CustomApplicationsProxy.js
+ rm -f /jci/opera/opera_dir/userjs/nativeApps.js
+ fi
+
+ if [ -f /jci/opera/opera_dir/userjs/additionalApps.js.org ]
+ then
+ log_message "- Restoring additionalApps.js"
+ mv /jci/opera/opera_dir/userjs/additionalApps.js.org /jci/opera/opera_dir/userjs/additionalApps.js
+ fi
+
+ # delete custom
+ if [ -e /jci/gui/apps/custom ]
+ then
+ log_message "- Removing custom application folder"
+ rm -rf /jci/gui/apps/custom||true
+ else
+ log_message "- Custom application folder does not exist"
+ fi
+
+ if [ -e /tmp/mnt/resources/aio ]
+ then
+ log_message "- Removing custom runtime & apps"
+ rm -rf /resources/aio/mzd-casdk||true
+ else
+ log_message "- CASDK runtime & apps do not exist"
+ fi
+fi
sleep 2
log_message "************************ DELETING RESTORE FILES *************************"
rm -fr /tmp/mnt/data_persist/dev/system_restore
diff --git a/app/files/tweaks/config/aio-app/jci/gui/apps/_aiotweaks/css/_aiotweaksApp.css b/app/files/tweaks/config/aio-app/jci/gui/apps/_aiotweaks/css/_aiotweaksApp.css
index d3e80c4..3fd917a 100644
--- a/app/files/tweaks/config/aio-app/jci/gui/apps/_aiotweaks/css/_aiotweaksApp.css
+++ b/app/files/tweaks/config/aio-app/jci/gui/apps/_aiotweaks/css/_aiotweaksApp.css
@@ -1,75 +1,60 @@
-.showBg * {
- visibility: hidden;
+.showBg * {
+ visibility: hidden;
}
.showBg div#CommonBgImg1 {
- visibility: visible;
+ visibility: visible;
}
body.ellipse .MainMenuCtrlEllipse {
- background-image: none!important;
+ background-image: none !important;
}
/* Remove Button Backgrounds */
-body.no-btn-bg .Ump3CtrlBgArch,
-body.no-btn-bg .Ump3CtrlBackground,
-body.no-btn-bg .Ump3CtrlSeparator {
- background:none!important;
+
+body.no-btn-bg .Ump3CtrlBgArch, body.no-btn-bg .Ump3CtrlBackground, body.no-btn-bg .Ump3CtrlSeparator {
+ background: none !important;
}
/* CSS For Bigger Album Art */
-body.bgrAlbmArt .NowPlaying4CtrlTitle,
-body.bgrAlbmArt .NowPlaying4CtrlTitleFull {
+
+body.bgrAlbmArt .NowPlaying4CtrlTitle, body.bgrAlbmArt .NowPlaying4CtrlTitleFull {
top: 0px;
left: 14px;
- width: 720px;
+ width: 720px;
}
body.bgrAlbmArt .NowPlaying4CtrlArtworkImageDiv {
- top: 61px!important;
- left: 580px!important;
- width: 210px!important;
- height: 210px!important;
+ top: 61px !important;
+ left: 580px !important;
+ width: 210px !important;
+ height: 210px !important;
}
body.bgrAlbmArt .NowPlaying4CtrlArtworkImage {
- width: 210px!important;
- max-width: 210px!important;
- height: 210px!important;
- max-height: 210px!important;
+ width: 210px !important;
+ max-width: 210px !important;
+ height: 210px !important;
+ max-height: 210px !important;
}
body.bgrAlbmArt .NowPlaying4CtrlArtworkImageBorder {
- width: 210px!important;
- height: 210px!important;
+ width: 210px !important;
+ height: 210px !important;
}
-body.bgrAlbmArt .NowPlaying4CtrlInfoBox,
-body.bgrAlbmArt .NowPlaying4CtrlInfoBoxFull {
+body.bgrAlbmArt .NowPlaying4CtrlInfoBox, body.bgrAlbmArt .NowPlaying4CtrlInfoBoxFull {
top: 61px;
left: 14px;
- width: 780px;
-}
-body.bgrAlbmArt .NowPlaying4CtrlAudioTitle,
-body.bgrAlbmArt .NowPlaying4CtrlAudioTitleStyle3,
-body.bgrAlbmArt .NowPlaying4CtrlAudioTitleBlock,
-body.bgrAlbmArt .NowPlaying4CtrlDetailLine1Block,
-body.bgrAlbmArt .NowPlaying4CtrlDetailLine1,
-body.bgrAlbmArt .NowPlaying4CtrlDetailLine2,
-body.bgrAlbmArt .NowPlaying4CtrlDetailLine3 {
- width: 550px;
-}
-body.bgrAlbmArt .NowPlaying4CtrlAudioTitleBlockFrame,
-body.bgrAlbmArt .NowPlaying4CtrlDetailLine1BlockFrame,
-body.bgrAlbmArt .NowPlaying4CtrlAudioTitleStyle3Full,
-body.bgrAlbmArt .NowPlaying4CtrlAudioTitleFull,
-body.bgrAlbmArt .NowPlaying4CtrlDetailLine1Full,
-body.bgrAlbmArt .NowPlaying4CtrlDetailLine2Full,
-body.bgrAlbmArt .NowPlaying4CtrlDetailLine3Full {
- width: 740px;
+ width: 780px;
+}
+body.bgrAlbmArt .NowPlaying4CtrlAudioTitle, body.bgrAlbmArt .NowPlaying4CtrlAudioTitleStyle3, body.bgrAlbmArt .NowPlaying4CtrlAudioTitleBlock, body.bgrAlbmArt .NowPlaying4CtrlDetailLine1Block, body.bgrAlbmArt .NowPlaying4CtrlDetailLine1, body.bgrAlbmArt .NowPlaying4CtrlDetailLine2, body.bgrAlbmArt .NowPlaying4CtrlDetailLine3 {
+ width: 550px;
+}
+body.bgrAlbmArt .NowPlaying4CtrlAudioTitleBlockFrame, body.bgrAlbmArt .NowPlaying4CtrlDetailLine1BlockFrame, body.bgrAlbmArt .NowPlaying4CtrlAudioTitleStyle3Full, body.bgrAlbmArt .NowPlaying4CtrlAudioTitleFull, body.bgrAlbmArt .NowPlaying4CtrlDetailLine1Full, body.bgrAlbmArt .NowPlaying4CtrlDetailLine2Full, body.bgrAlbmArt .NowPlaying4CtrlDetailLine3Full {
+ width: 740px;
}
-
body.txtShadow {
text-shadow: 2px 2px .5px #000;
}
body.hideSbn .SbnCtrl {
- background-image: none;
- font-size: 30px;
+ background-image: none;
+ font-size: 30px;
}
body.hideStatus .StatusBarCtrl {
- background-image: none;
+ background-image: none;
}
body.star1 .MainMenuCtrlComDiv {
top: 30px;
@@ -108,13 +93,12 @@ body.star1 .MainMenuCtrlSetHighlight {
top: 40px;
}
body.star1 .MainMenuCtrlIconName {
- top:345px;
+ top: 345px;
}
body.star1 .MainMenuCtrl {
overflow: visible;
}
-body.star1 .MainMenuCtrlSetDiv.MainMenuCtrlCoinFocus,
-body.star1 .MainMenuCtrlAppDiv.MainMenuCtrlCoinFocus {
+body.star1 .MainMenuCtrlSetDiv.MainMenuCtrlCoinFocus, body.star1 .MainMenuCtrlAppDiv.MainMenuCtrlCoinFocus {
-o-transform: scale(1.2, 1.2) translate(0px, -20px);
transform: scale(1.2, 1.2) translate(0px, -20px);
}
@@ -167,12 +151,12 @@ body.star2 .MainMenuCtrlSetHighlight {
top: -110px;
}
body.star2 .MainMenuCtrlIconName {
- top:5px;
+ top: 5px;
}
body.star2 .MainMenuCtrl {
overflow: visible;
}
-body.star2 .MainMenuCtrlSetDiv.MainMenuCtrlCoinFocus{
+body.star2 .MainMenuCtrlSetDiv.MainMenuCtrlCoinFocus {
-o-transform: scale(1.2, 1.2) translate(-20px, 20px);
transform: scale(1.2, 1.2) translate(-20px, 20px);
}
@@ -197,6 +181,7 @@ body.star2 .MainMenuCtrlComDiv.MainMenuCtrlCoinFocus {
transform: scale(1.2, 1.2) translate(0px, -10px);
}
/* Alternate Layout Large Star */
+
body.star3 .MainMenuCtrlComDiv {
top: 30px;
}
@@ -260,105 +245,91 @@ body.star3 .MainMenuCtrlNavDiv.MainMenuCtrlCoinFocus {
transform: scale(1.2, 1.2) translate(25px, -50px);
}
/* Alternate Layout Flatline */
+
body.star4 .MainMenuCtrlComDiv {
-top: 280px;
+ top: 280px;
}
body.star4 .MainMenuCtrlEntDiv {
-top: 280px;
-left:160px;
+ top: 280px;
+ left: 160px;
}
body.star4 .MainMenuCtrlNavDiv {
-top: 280px;
-left: 500px
+ top: 280px;
+ left: 500px
}
body.star4 .MainMenuCtrlAppDiv {
-left: 15px;
-top: 295px;
-transform: scale(1.25, 1.25);
+ left: 15px;
+ top: 295px;
+ transform: scale(1.25, 1.25);
}
body.star4 .MainMenuCtrlSetDiv {
-top: 295px;
-left: 670px;
-transform: scale(1.25, 1.25);
+ top: 295px;
+ left: 670px;
+ transform: scale(1.25, 1.25);
}
body.star4 .MainMenuCtrlAppHighlight {
-top: 80px;
-left: -110px;
+ top: 80px;
+ left: -110px;
}
body.star4 .MainMenuCtrlComHighlight {
-top: 70px;
+ top: 70px;
}
body.star4 .MainMenuCtrlNavHighlight {
-top: 75px;
-left: 390px;
+ top: 75px;
+ left: 390px;
}
body.star4 .MainMenuCtrlEntHighlight {
-top: 75px;
-left: 50px;
+ top: 75px;
+ left: 50px;
}
body.star4 .MainMenuCtrlSetHighlight {
-left: 550px;
-top: 80px;
+ left: 550px;
+ top: 80px;
}
body.star4 .MainMenuCtrlIconName {
-top:5px;
+ top: 5px;
}
body.star4 .MainMenuCtrl {
-overflow: visible;
+ overflow: visible;
}
-body.star4 .MainMenuCtrlSetDiv.MainMenuCtrlCoinFocus{
--o-transform: scale(1.4, 1.4) translate(0px, -50px);
-transform: scale(1.4, 1.4) translate(0px, -50px);
+body.star4 .MainMenuCtrlSetDiv.MainMenuCtrlCoinFocus {
+ -o-transform: scale(1.4, 1.4) translate(0px, -50px);
+ transform: scale(1.4, 1.4) translate(0px, -50px);
}
body.star4 .MainMenuCtrlAppDiv.MainMenuCtrlCoinFocus {
--o-transform: scale(1.4, 1.4) translate(0px, -50px);
-transform: scale(1.4, 1.4) translate(0px, -50px);
+ -o-transform: scale(1.4, 1.4) translate(0px, -50px);
+ transform: scale(1.4, 1.4) translate(0px, -50px);
}
body.star4 .MainMenuCtrlComDiv.MainMenuCtrlCoinFocus {
--o-transform: scale(1.2, 1.2) translate(0px, -50px);
-transform: scale(1.2, 1.2) translate(0px, -50px);
+ -o-transform: scale(1.2, 1.2) translate(0px, -50px);
+ transform: scale(1.2, 1.2) translate(0px, -50px);
}
body.star4 .MainMenuCtrlEntDiv.MainMenuCtrlCoinFocus {
--o-transform: scale(1.2, 1.2) translate(0px, -50px);
-transform: scale(1.2, 1.2) translate(0px, -50px);
+ -o-transform: scale(1.2, 1.2) translate(0px, -50px);
+ transform: scale(1.2, 1.2) translate(0px, -50px);
}
body.star4 .MainMenuCtrlNavDiv.MainMenuCtrlCoinFocus {
--o-transform: scale(1.2, 1.2) translate(0px, -50px);
-transform: scale(1.2, 1.2) translate(0px, -50px);
+ -o-transform: scale(1.2, 1.2) translate(0px, -50px);
+ transform: scale(1.2, 1.2) translate(0px, -50px);
}
body.star4 .MainMenuCtrlComDiv.MainMenuCtrlCoinFocus {
--o-transform: scale(1.2, 1.2) translate(0px, -60px);
-transform: scale(1.2, 1.2) translate(0px, -60px);
+ -o-transform: scale(1.2, 1.2) translate(0px, -60px);
+ transform: scale(1.2, 1.2) translate(0px, -60px);
}
/* Small Main Menu Coins */
-body.minicoins .MainMenuCtrlAppDiv,
-body.minicoins .MainMenuCtrlNavDiv,
-body.minicoins .MainMenuCtrlComDiv,
-body.minicoins .MainMenuCtrlSetDiv,
-body.minicoins .MainMenuCtrlEntDiv {
+
+body.minicoins .MainMenuCtrlAppDiv, body.minicoins .MainMenuCtrlNavDiv, body.minicoins .MainMenuCtrlComDiv, body.minicoins .MainMenuCtrlSetDiv, body.minicoins .MainMenuCtrlEntDiv {
-o-transform: scale(.5, .5);
transform: scale(.5, .5);
}
-
/* 3D MAIN MENU TEXT! */
+
body.label3d .MainMenuCtrlIconName.Visible {
- text-shadow: 0 1px 0 #ccc,
- 0 2px 0 #c9c9c9,
- 0 3px 0 #bbb,
- 0 4px 0 #b9b9b9,
- 0 5px 0 #aaa,
- 0 6px 1px rgba(0,0,0,.1),
- 0 0 5px rgba(0,0,0,.1),
- 0 1px 3px rgba(0,0,0,.3),
- 0 3px 5px rgba(0,0,0,.2),
- 0 5px 10px rgba(0,0,0,.25),
- 0 10px 10px rgba(0,0,0,.2),
- 0 20px 20px rgba(0,0,0,.15)!important;
+ text-shadow: 0 1px 0 #ccc, 0 2px 0 #c9c9c9, 0 3px 0 #bbb, 0 4px 0 #b9b9b9, 0 5px 0 #aaa, 0 6px 1px rgba(0, 0, 0, .1), 0 0 5px rgba(0, 0, 0, .1), 0 1px 3px rgba(0, 0, 0, .3), 0 3px 5px rgba(0, 0, 0, .2), 0 5px 10px rgba(0, 0, 0, .25), 0 10px 10px rgba(0, 0, 0, .2), 0 20px 20px rgba(0, 0, 0, .15) !important;
}
body.hidelabel .MainMenuCtrlIconName.Visible {
- display:none;
+ display: none;
}
-body.hideMusicBg .NowPlaying4Ctrl,
-body.hideListBg .List2Ctrl {
- background:none!important;
+body.hideMusicBg .NowPlaying4Ctrl, body.hideListBg .List2Ctrl {
+ background: none !important;
}
diff --git a/app/files/tweaks/config/aio-app/jci/gui/apps/_aiotweaks/js/AIO-startup.js b/app/files/tweaks/config/aio-app/jci/gui/apps/_aiotweaks/js/AIO-startup.js
index 9f097a9..cd661e6 100644
--- a/app/files/tweaks/config/aio-app/jci/gui/apps/_aiotweaks/js/AIO-startup.js
+++ b/app/files/tweaks/config/aio-app/jci/gui/apps/_aiotweaks/js/AIO-startup.js
@@ -1,11 +1,11 @@
-function applyTweaks(){
+function applyTweaks() {
var head = document.querySelector("head");
var body = document.getElementsByTagName("body")[0];
if (!window.jQuery) {
utility.loadScript("addon-common/jquery.min.js");
}
var tweaks = localStorage.getItem("aio.tweaks") || "";
- if(tweaks.length > 0) {
+ if (tweaks.length > 0) {
var AIOcss = document.createElement("link");
AIOcss.href = "apps/_aiotweaks/css/_aiotweaksApp.css";
AIOcss.rel = "stylesheet";
@@ -18,3 +18,10 @@ function applyTweaks(){
framework.transitionsObj._genObj._TEMPLATE_CATEGORIES_TABLE.AIOTweaksTmplt = "Detail with UMP";
applyTweaks();
+/* ** Attempt to start speedometer app on boot **
+ ** Works in the emulator but not in the car ** * /
+setTimeout(function(){
+ framework.sendEventToMmui("system","SelectApplications");
+ setTimeout(function(){aioMagicRoute("_speedometer","Start");}, 4000);
+}, 30000);
+*/
diff --git a/app/files/tweaks/config/aio-app/jci/gui/apps/_aiotweaks/js/_aiotweaksApp.js b/app/files/tweaks/config/aio-app/jci/gui/apps/_aiotweaks/js/_aiotweaksApp.js
index aacf983..8243989 100644
--- a/app/files/tweaks/config/aio-app/jci/gui/apps/_aiotweaks/js/_aiotweaksApp.js
+++ b/app/files/tweaks/config/aio-app/jci/gui/apps/_aiotweaks/js/_aiotweaksApp.js
@@ -8,16 +8,14 @@ Copyright 2017 Trez
/* jshint -W117 */
log.addSrcFile("_aiotweaksApp.js", "_aiotweaks");
-function _aiotweaksApp(uiaId)
-{
- log.debug("Constructor called.");
+function _aiotweaksApp(uiaId) {
+ log.debug("Constructor called.");
- // Base application functionality is provided in a common location via this call to baseApp.init().
- // See framework/js/BaseApp.js for details.
- baseApp.init(this, uiaId);
+ // Base application functionality is provided in a common location via this call to baseApp.init().
+ // See framework/js/BaseApp.js for details.
+ baseApp.init(this, uiaId);
}
-
/*********************************
* App Init is standard function *
* called by framework *
@@ -27,31 +25,29 @@ function _aiotweaksApp(uiaId)
* Called just after the app is instantiated by framework.
* All variables local to this app should be declared in this function
*/
-_aiotweaksApp.prototype.appInit = function()
-{
- log.debug("_aiotweaksApp appInit called...");
+_aiotweaksApp.prototype.appInit = function () {
+ log.debug("_aiotweaksApp appInit called...");
- //Context table
- //@formatter:off
- this._contextTable = {
- "Start": { // initial context must be called "Start"
- "sbName": "AIO Tweaks",
- "template": "AIOTweaksTmplt",
- "templatePath": "apps/_aiotweaks/templates/AIOTweaks", //only needed for app-specific templates
- "readyFunction": this._StartContextReady.bind(this),
- "contextOutFunction" : this._StartContextOut.bind(this)
- } // end of "AIOTweaks"
- }; // end of this.contextTable object
- //@formatter:on
+ //Context table
+ //@formatter:off
+ this._contextTable = {
+ "Start": { // initial context must be called "Start"
+ "sbName": "AIO Tweaks",
+ "template": "AIOTweaksTmplt",
+ "templatePath": "apps/_aiotweaks/templates/AIOTweaks", //only needed for app-specific templates
+ "readyFunction": this._StartContextReady.bind(this),
+ "contextOutFunction": this._StartContextOut.bind(this)
+ } // end of "AIOTweaks"
+ }; // end of this.contextTable object
+ //@formatter:on
- //@formatter:off
- this._messageTable =
- {
- //Speed Handlers
- "Global.AtSpeed" : this._AtSpeedMsgHandler.bind(this),
- "Global.NoSpeed" : this._NoSpeedMsgHandler.bind(this),
- "TimedSbn_CurrentSong": this._TimedSbn_CurrentSongMsgHandler.bind(this)
- };
+ //@formatter:off
+ this._messageTable = {
+ //Speed Handlers
+ "Global.AtSpeed": this._AtSpeedMsgHandler.bind(this),
+ "Global.NoSpeed": this._NoSpeedMsgHandler.bind(this),
+ "TimedSbn_CurrentSong": this._TimedSbn_CurrentSongMsgHandler.bind(this)
+ };
};
/**
@@ -67,23 +63,21 @@ _aiotweaksApp.prototype._NoSpeedMsgHandler = function (msg) {
}
// from usbaudioApp - test to see if this works
_aiotweaksApp.prototype._TimedSbn_CurrentSongMsgHandler = function (msg) {
- framework.common.startTimedSbn(this.uiaId, 'TimedSbn_UsbAudio_CurrentSong', 'typeE', {
- sbnStyle : 'Style02',
- imagePath1 : 'IcnSbnEnt.png',
- text1 : "USB",
- text2 : msg.params.payload.title,
- });
+ framework.common.startTimedSbn(this.uiaId, 'TimedSbn_UsbAudio_CurrentSong', 'typeE', {
+ sbnStyle: 'Style02',
+ imagePath1: 'IcnSbnEnt.png',
+ text1: "USB",
+ text2: msg.params.payload.title,
+ });
};
-_aiotweaksApp.prototype._StartContextReady = function ()
-{
+_aiotweaksApp.prototype._StartContextReady = function () {
framework.common.setSbDomainIcon("apps/_aiotweaks/app.png");
};
-_aiotweaksApp.prototype._StartContextOut = function ()
-{
+_aiotweaksApp.prototype._StartContextOut = function () {
var currTwks = document.getElementsByTagName("body")[0].className;
- if(currTwks.length > 0) {
- localStorage.setItem("aio.tweaks",currTwks);
+ if (currTwks.length > 0) {
+ localStorage.setItem("aio.tweaks", currTwks);
}
};
/**
diff --git a/app/files/tweaks/config/aio-app/jci/gui/apps/_aiotweaks/js/aio.js b/app/files/tweaks/config/aio-app/jci/gui/apps/_aiotweaks/js/aio.js
index c937cab..5dd986e 100644
--- a/app/files/tweaks/config/aio-app/jci/gui/apps/_aiotweaks/js/aio.js
+++ b/app/files/tweaks/config/aio-app/jci/gui/apps/_aiotweaks/js/aio.js
@@ -1,6 +1,11 @@
+#!/usr/bin/env node
+
+// A test for NodeJS
var fs = require('fs');
-function fsTest(){
- var contents = fs.readFileSync('/jci/gui/apps/_aiotweaks/test.txt').toString();
- console.log(contents);
+function fsTest() {
+ var contents = fs.readFileSync('/jci/gui/apps/_aiotweaks/test.txt').toString();
+ console.log(contents);
}
+
+fsTest();
diff --git a/app/files/tweaks/config/aio-app/jci/gui/apps/_aiotweaks/js/backgrounds.js b/app/files/tweaks/config/aio-app/jci/gui/apps/_aiotweaks/js/backgrounds.js
index e1a1313..fe3e2b4 100644
--- a/app/files/tweaks/config/aio-app/jci/gui/apps/_aiotweaks/js/backgrounds.js
+++ b/app/files/tweaks/config/aio-app/jci/gui/apps/_aiotweaks/js/backgrounds.js
@@ -3,9 +3,9 @@ var fs = require('fs');
var apps = '';
fs.readdir(testFolder, (err, files) => {
- if(err){console.error(err)}
+ if (err) { console.error(err) }
files.forEach(file => {
- apps += file + ' ';
+ apps += file + ' ';
});
console.log(apps);
})
diff --git a/app/files/tweaks/config/aio-app/jci/gui/apps/_aiotweaks/js/mzd.js b/app/files/tweaks/config/aio-app/jci/gui/apps/_aiotweaks/js/mzd.js
index 2bb2e19..7a2a18c 100644
--- a/app/files/tweaks/config/aio-app/jci/gui/apps/_aiotweaks/js/mzd.js
+++ b/app/files/tweaks/config/aio-app/jci/gui/apps/_aiotweaks/js/mzd.js
@@ -1,23 +1,21 @@
// *****************************
-// ** AIO Tweaks App v0.4a - mzd.js
+// ** AIO Tweaks App v0.6 - mzd.js
// ** All the functions for Buttons in AIO Tweaks App
// ** By Trezdog44
// *****************************
/* jshint -W117 */
-
+var aioTweaksVer = 0;
var AArunning = false;
var appListData = [];
+
//var wsAIO = null;
//var aioWsVideo = null;
//var AIOvideo = false;
-$(document).ready(function(){
- try
- {
+$(document).ready(function () {
+ try {
$("#SbSpeedo").fadeOut();
//framework.sendEventToMmui("common", "SelectBTAudio");
- }
- catch(err)
- {
+ } catch (err) {
}
// *****************************
@@ -25,74 +23,92 @@ $(document).ready(function(){
// *****************************
// AIO info
getAppListData();
- $('button').on('click',function(){$('button').removeClass('selectedItem');$(this).addClass('selectedItem')});
- $("#aioInfo").on("click",function(){showAioInfo("
AIO Tweaks App v0.4a
This is an experimental app by Trezdog44 made to test the capabilities, functionalities, and limitations of apps in the MZD Infotainment System. This app has some useful and fun functions although it is not guaranteed that everything works. There may be non-functioning or experimental features.
");});
- $("#aioReboot").on("click",myRebootSystem);
+ $('button').on('click', function () {
+ $('button').removeClass('selectedItem');
+ $(this).addClass('selectedItem')
+ });
+ $("#aioInfo").on("click", function () { showAioInfo("
AIO Tweaks App v" + aioTweaksVer + "
This is an experimental app by Trezdog44 made to test the capabilities, functionalities, and limitations of apps in the MZD Infotainment System. This app has some useful and fun functions although it is not guaranteed that everything works. There may be non-functioning or experimental features.
My good friend Siutsch copied files from many different tweaks for his infotainment system and thought, it would be helpful if you could choose what tweaks you wanted to install or uninstall. He went on to develop a CMD based program to accomplish this and it worked well but had reached certain limitations and lacked that modern app feel. I contacted Siutsch and proposed we make the next AIO desktop app style starting with the same tweaks from AIO v1.5.x that we all know and love. I went on to develop MZD-AIO-TI. \n\n##### I personallty tested all the tweaks in my 2016 Mazda3 FW:55.00.753A-NA\n\n##### I can offer no warranty but I did include every safety precaution I know about.\n\n###### **So please, be mindful when performing tweak installs.** \n\nThis app will automatically update.\n\nThis program is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version.\n\nThis program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the Copyleft Under The GNU General Public License for more details.",
- "t2": "",
- "msg2": ""
- },
- {
- "id": 1,
- "title": "Tweaking",
- "msg": "
All changes happen at your own risk!
\n Please understand that you can damage or brick your infotainment system running these tweaks! \n Anyone who is unsure should leave it alone, ask someone with experience to help or ask in the forum.
I am not responsible for damages that may incur from the use.
Having said that, MZD-AIO-TI was built with Safety in mind so there are 3 compatibility levels: \n\n - AllAll Compatible - Compatible with all known firmware versions \n - Warning - Only compatible with specific firmware versions. \n - Development - These are tweaks that are still under development, or do not work yet. Android Auto is getting bumped up to yellow very soon, maybe even green.",
- "t2": "Compatible Firmware Versions:",
- "msg2": "
**AIO IS COMPATIBLE WITH ALL FW V55, V56, V58, AND V59 UP TO V59.00.502**
\n\n###### Only use with FirmWare Versions >= v55. DO NOT USE with V30/31/33 OR YOU WILL BRICK YOUR SYSTEM IT WILL FOREVER STAY LOOPING THE MAZDA BOOT LOGO! \n\nTo Be Safe, For now AIO-TI Will Automatically Abort The Installation If No Compadible Firmware Version Is Found. \n\nTo override this you have to be comfortable editing tweaks.sh directly, find the code that performs the firmware check and disable or add your version to the list of Compatible firmwares. **Do This At Your Own Risk!**"
- },
- {
- "id": 2,
- "title": "Reverting",
- "msg": "**Almost all the tweaks** can be uninstalled to revert to the system default state.
Default Background:
\n\n - AIO creates backups of all the files that it modifies and uses those backups when reverting. If no backup is found for a file AIO will assume that it is the original file and move on.",
- "t2": "What Parts Of The System Are Not Reverted By AIO?",
- "msg2": "
MZD-AIO-TI modifies some files in the system that cannot be reverted back using this app.
\n\nThese first 3 files honestly should never be reverted because a mistake in one of these files will result in a unrecoverable bootloop. They are only modified to disable the system from triggering a reboot on error and consequently creating a bootloop, so reverting them would put your system at a high risk. **Only the first time** the installer runs on your system they are backed up and modified.\n\n**DO NOT MODIFY ANY OF THESE FILES YOURSELF, YOU WILL BREAK YOUR SYSTEM IF YOU DO**\n\n- /jci/sm/sm.conf (Also modified by the Android Auto Tweak)\n- /jci/opera/opera_home/opera.ini \n- /jci/opera/opera_dir/userjs/fps.js\n\n##### These 2 tweaks have no uninstall because the system should have had these enabled by default.\n\n- Wifi (NA Region)\n- SSH_Bringback"
- },
- {
- "id": 3,
- "title": "Troubleshooting",
- "msg": "Here are some common errors with ways to avoid them. \n#### If you keep hitting errors and/or hang ups:\n - The most common issue is a file system access error: resource busy or locked. This occurs when a file or directory cannot be modified becasue it is open or being used by another program. While compiling, close all folders and documents especially files that are actively being used by MZD-AIO-TI (*ex: '_copy_to_usb'*)\n - If the installer does not start in the car try reformatting your USB drive as FAT32 and make sure all other USB devices are disconnected. It helps to turn bluetooth off too. NAV SD card should be left in.",
- "t2": "If you are having Video Player Issues",
- "msg2": " Try:\n\n- Place your videos in a folder named 'Movies'! \n\n- Use H264 video codec and MPEG-4 AAC audio codec in video files\n\n- Unplug all other USB drives, especially one, with many MP3s on it \n\n- Copy only one mp3 on your video USB drive \n\n- Copy only a few videos on your stick (you don't have to delete, rename to *._mp4 is OK too, so that they will not be found anymore) \n\n- Reboot your system and try to play a video right after that \n\n- Close the player and start again \n\n- If that doesn't work, then change the audio input.\n\n- Sometimes the first video selected lags or fails to start but pressing 'next' will sometimes start the next video.\n\n- Videos can be: MP4, AVI, FLV, WMV"
- },
- {
- "id": 4,
- "title": "Issues",
- "msg": "\n- If there is not enough space free on the USB drive, you will hang up while copying to USB drive. This may happen if you are copying the swapfile on a drive that is almost full. I plan to fix this in a future version and have an error message pop up. \n- The Google Translator will try to translate certain parts of the code resulting in unexpected effects. Try to use it to make a translated file with the translator to include in the next version so everything will still work when others use the language.",
- "t2": "Contributing",
- "msg2": "Though I did build this user interface, the more valuable aspects of this project are the tweak files. Communities like Mazda3Revolution Forum out there and many developers laid down the groundwork from which this app is built and will continue to play an important role in future developments.\n\nIf you want to contributes a tweak, make sure you test your tweak thouroughly.
If you are an expert in javascript or AngularJS then feel free to fix up my code or implement more of the ui 'The Angular Way'
First of all uninstall Android Auto from your system. Click the CMU-Autorun link above and download the repository (download button is on the top right next to \"Find File\"). Copy the \"installer\" Folder to a blank USB drive to install the autorun script, this script will run every time the system boots up. The script looks at the root of the SD card (if available) for a file called \"run.sh\" and if found, executes the file. After installing, copy the \"dryrun\" folder onto an SD card to test that the installation worked correctly.
AA - Copy the contents of the \"headunit\" folder to the root of a blank SD card, connect before booting up infotanment system, a message will show the first time to confirm it is running. \nPlug in an Android Auto compatible phone to start.
Caveats: The device with the headunit files must be connected before booting up the infotainment system to run. Once the headunit app is running it is loaded into memory and will silently run in the background, this means that even if you remove the SD card the headunit app will still be running in memory. To stop the process you can do one of these things:
Turn off the vehicle for about 5-10 minutes
Hard reset (hold: mute + nav + back)
Login SSH, enter command 'killall headunit'
Want to run tweaks from an SD card?
With autorun script installed copy tweak files to an SD card. Rename \"tweaks.sh\" to \"run.sh\". Boot up the system and tweaks will run as expected. NOTE: I/O to SD card is slower than USB so installation will take longer.",
- "t2": "Technical Talk",
- "msg2": "This app is built with Electron and AngularJS"
- },
- {
- "id": 6,
- "title": "Help & Settings",
- "msg": "
",
- "t2": "",
- "msg2": ""
- }
- ],
- "FAQs": {
- "title": "FAQ",
- "msg": "Frequently Asked Questions: ",
- "q1": "Is AIO compatible with my FW version?",
- "a1": "All compatible FW versions are listed in the 'Tweaking > Compatible Firmware Versions' section to the left in this help panel. MZD-AIO-TI will read out your FW version at beginning of installation and show if it’s not compatible (or not yet tested) and you will abort the installation at this point, for Safety.",
- "q2": "How long does it take till the installation starts?",
- "a2": "Typically installation will start within 30 seconds to 2 minutes but it can take up to 10 minutes to begin.",
- "q3": "If something goes wrong, how can I help you to help me?",
- "a3": "During installation/uninstallation, a log file is created (AIO log.txt & MZD-AIO-TI info.txt) and some additional files will be copied on the USB drive. Please make a ZIP file of them (complete root of USB drive) and send that to me or upload it somewhere (e.g. google drive or so) and send me the link. Or you can download this tweak that will copy some files from your MZD system to the USB drive and send those.",
- "q4": "Do I have to uninstall a tweak with AIO 1.x before installing it again?",
- "a4": "No, You can install every tweak with AIO, you never have to uninstall before. MZD-AIO-TI 2.x use the same tweaks AIO 1.x and compatibility was taken into consideration.",
- "q5": "How long does the installation/uninstallation take?",
- "a5": "Up to 10 minutes if every tweak has been selected (especially custom colors and speedcam-patch). performing a backup of your JCI folder can also take up to 10 minutes by itself so with everything up to 20 minutes.",
- "q6": "What if I want to revert my system but I forgot the tweaks I've installed?",
- "a6": "Uninstalling tweaks is safe in general, if the uninstaller does not find a backup, it will copy the original files from USB drive over your original files of your MZD system BUT: YOU SHOULD NOT DO THIS FOR NEW AND UNKNOWN FW VERSIONS! See: 'Reverting' section of this help panel.",
- "q7": "I want to change the order of the audio sources?",
- "a7": "Edit: /jci/gui/apps/system/js/systemApp.js on lines 624 - 637
* Be careful, the last line must not end with a comma, or you run in to boot loop! * I am working on modifying the tweak to give the option to make your own order without manually modifying any files.",
- "q8": "Can I install AIO from an SD card?",
- "a8": "No. SD card slot in the car is ONLY for satnav maps. You need to use USB port in the car, so either USB stick or USB-SD card reader with your card in it.",
- "q9": "How do I a reboot the MZD system? ",
- "a9": "Press NAV+MUTE for 10 seconds.",
- "q10": "Can you write this or that tweak for us?",
- "a10": "I have improved on many of the existing tweaks and tweaks.sh as a whole but I do have a job and Developing the GUI for this app is a pretty hefty task. That being said, I do have ideas for future tweaks and I will take suggestions but no promises. You can contact me with the contact form on the bottom right of the app."
- },
- "tourMsgs": [
- {
- "id": 0,
- "msg": "
Welcome to MZD-AIO-TI!
Mazda All In One Tweaks Installer
An Installer And Uninstaller for 40+ 'Tweaks' For the Mazda MZD Infotainment System."
- },
- {
- "id": 1,
- "msg": "These are the main Tweaks. You can choose to install or uninstall for each."
- },
- {
- "id": 2,
- "msg": "This sidebar will list all the tweaks currently selected. Here will appear extra options and you can also click any item in this list for help information."
- },
- {
- "id": 3,
- "msg": "Additional actions such as backup jci folder & enable wifi for North American versions."
- },
- {
- "id": 4,
- "msg": "These options can be restored to original state by selecting their default options."
- },
- {
- "id": 5,
- "msg": "The menus have more help topics and links to resources and documentation."
- },
- {
- "id": 6,
- "msg": "When all your tweaks have been selected, click this button to compile and go!"
- },
- {
- "id": 7,
- "msg": "Copy the entire contents of the \"_copy_to_usb\" folder onto a blank, FAT32 format USB Flash Drive. Plug the drive into the car's usb port, the installer will start automatically after a few minutes. Remove any other USB devices but The NAV SD card should remain plugged into the car. Turning off bluetooth and wifi help as well. After the installation is complete the system will reboot, then you can remove the USB drive and your changes will be applied."
- },
- {
- "id": 8,
- "msg": "For more information visit MazdaTweaks.com!"
- }
- ],
- "popupMsgs": [
- {
- "id": 0,
- "msg": "Compiling... Please Wait..."
- },
- {
- "id": 1,
- "msg": "Location of Tweak Files"
- },
- {
- "id": 2,
- "msg": "(For best results, erase USB drive prior to copying)"
- },
- {
- "id": 3,
- "msg": "Copy to USB Drive"
- },
- {
- "id": 4,
- "msg": "Not Yet"
- },
- {
- "id": 5,
- "msg": "Open USB Drive"
- },
- {
- "id": 6,
- "msg": "USB drives Found"
- },
- {
- "id": 7,
- "msg": "Do you want to copy files to USB drive"
- },
- {
- "id": 8,
- "msg": "Choose a USB drive to copy files onto"
- },
- {
- "id": 9,
- "msg": "No available USB drives found. Copy the entire contents of"
- },
- {
- "id": 10,
- "msg": "onto a blank, FAT32 formatted USB flash drive"
- },
- {
- "id": 11,
- "msg": "Copying to USB Drive"
- },
- {
- "id": 12,
- "msg": "Please Wait"
- },
- {
- "id": 13,
- "msg": "Unzipping Swapfile To"
- },
- {
- "id": 14,
- "msg": "This takes a few minutes... be patient."
- },
- {
- "id": 15,
- "msg": "Swapfile size is 1 GB."
- },
- {
- "id": 16,
- "msg": "While you wait, here is some information"
- },
- {
- "id": 17,
- "msg": "Start Over"
- },
- {
- "id": 18,
- "msg": "View AIO Compile Log"
- },
- {
- "id": 19,
- "msg": "Exit"
- },
- {
- "id": 20,
- "msg": "Success!"
- },
- {
- "id": 21,
- "msg": "Delete _copy_to_usb Folder After Copying"
- }
- ],
- "mainOps": {
- "wifi": {
- "id": 0,
- "label": "Enable WIFI",
- "safetylvl": "safe",
- "toolTip": "
WIFI
Enables WIFI for North America and Japan Regions"
- },
- "backup": {
- "id": 1,
- "label": "Backup JCI Folder",
- "safetylvl": "safe",
- "toolTip": "
Backup JCI
Do backup of JCI folder before installing tweaks."
- },
- "background": {
- "id": 2,
- "label": "Background Image",
- "safetylvl": "safe",
- "toolTip": "
Background
Change your Infotainment background to your own custom image. Supported image formats are: jpg, jpeg, and png (any size). Note: If single img is chosen, the image will be resized to 800px x 480px BUT NOT CROPPED and converted to .png format. To change the background image back to original, choose 'Default Background.",
- "img": "cic.jpg"
- },
- "colors": {
- "id": 3,
- "label": "Custom Infotainment Colors",
- "safetylvl": "safe",
- "toolTip": "
Custom Color Schemes:
Changes your Infotainment color scheme from Red (default) to one of the following colors:
Blue
Green
Orange
Pink
Purple
Silver
Yellow
Smooth Red
Themes: Themes only replace the main menu coins. When installed over a color scheme, the custom colors will remain with the theme. Included Themes:
carOS
Storm Troopers
Poker
Mazda Logos
Floating Logo
X-Men
PROTIP: Delete all the images that you do not want to change. It can be as little as deleting one folder or as much as deleting every image except one. ",
- "toolTip2":"
The Custom Theme Option:
Use any theme designed for the MZD Infotainment System or easily apply your own Custom Made Theme.
To use any theme: download and unzip the theme
Import the config/jci/ folder from the theme into AIO.
NOTE: Using This Method Will Copy Only .png Files For Themes
Using Your Own Custom Made Theme:
If no theme is chosen: a folder will be generated here: _copy_to_usb/config/color-schemes/theme/jci/
After compiling tweaks, copy your files into the generated jci folder in the same directory location of the images you want to replace.
WARNING: WHEN USING THIS METHOD EVERYTHING IN THE JCI FOLDER WILL BE COPIED ONTO YOUR SYSTEM IN THE SAME LOCATION. USE RESPONSIBLY.
**No removing possible!** With FW 56.00.511+ Mazda has removed SSH access. With SSH_bringback this will be reinstalled."
- },
- "sdcid": {
- "id": 5,
- "label": "SD CID",
- "safetylvl": "safe",
- "toolTip": "
SD CID
Gets the CID from the Nav SD card if available."
- },
- "backgroundrotator": {
- "id": 6,
- "label": "Background Rotator",
- "btntxt": "Join Images",
- "button": "Click To Join Images For Your Background To Rotate Through",
- "safetylvl": "safe",
- "toolTip": "
Background Rotator Tweak.
Cycles through some Backgrounds showing for a variable number of seconds each. Using more than about 40-50 backgrounds can start to cause some system lagging. To Revert back to a single background uninstall this tweak."
- },
- "retain": {
- "id": 7,
- "label": "Copy Backups",
- "testlabel": "Test Backups",
- "skipconfirm": "Skip Confirmation",
- "safetylvl": "safe",
- "toolTip": "
Retrieve CMU Data
Dump diagnostic files from the CMU to the USB Drive. Cleans out error files and core dumps from the system.
Skip Confirmation
Allows for the installation to run without prompting for confirmation to begin the install. Mainly this is used for recovering when the touchscreen is not responding.
Copy Backups:
Copy original backups of modified system files, for safe keeping.
Test Backups:
Some tweaks have before and after copies of the files modified during the installation. If you like that kind of thing they will be copied to your-usb/bakups/test/.
Allows the use of the touchscreen while driving. Fix Cluster Compass: Some things will be disabled while driving but the touchscreen itself and the cluster compass will work",
- "img": "",
- "safetylvl": "safe",
- "extraOps": true,
- "advancedOp": false
- },
- {
- "id": 2,
- "OpName": "No More Disclaimer",
- "INST": "Remove disclaimer completely",
- "DEINST": "Restore disclaimer (to 3.5 seconds)",
- "toolTip": "
No More Disclaimer
Completely remove the disclaimer or reduce the expansion time of the disclaimer from 3.5 to 0.5 seconds.",
- "img": "",
- "safetylvl": "safe",
- "extraOps": true,
- "advancedOp": false
- },
- {
- "id": 3,
- "OpName": "Reverse Camera Safety Warning",
- "INST": "Remove the reverse camera safety warning",
- "DEINST": "Restore the safety warning label to the reverse camera",
- "toolTip": "
Reverse Camera Safety Warning
No security warning at the bottom when activating the rear camera.",
- "img": "",
- "safetylvl": "safe",
- "extraOps": false,
- "advancedOp": false
- },
- {
- "id": 4,
- "OpName": "Semi-transparent parking sensor graphics",
- "INST": "Install semi-transparent parking sensor graphics",
- "DEINST": "Remove semi-transp. parking sensor graphics f. proximity sensors",
- "toolTip": "
Semi-Transparent Parking Sensor Graphics.
Semitransparent parking sensor graphics for proximity sensors. When activating the rear camera, the car is displayed at the top right corner. The graphics now appear semitransparent by installing tweak.",
- "img": "semi-transparent_parking-sensors.jpg",
- "safetylvl": "safe",
- "extraOps": false,
- "advancedOp": false
- },
- {
- "id": 5,
- "OpName": "Main Menu Loop",
- "INST": "Install Main Menu Loop",
- "DEINST": "Remove Main Menu Loop",
- "toolTip": "
Main Menu Loop.
Loop for the main menu. You can jump from left to far right, and vice versa.",
- "img": "",
- "safetylvl": "safe",
- "extraOps": false,
- "advancedOp": false
- },
- {
- "id": 6,
- "OpName": "Improved List Loop",
- "INST": "Install Improved List Loop",
- "DEINST": "Remove Improved List Loop",
- "toolTip": "
Improved List Loop.
Loop for all lists and submenu (music, contacts, etc.). You can now jump from the top position of a list to the bottom and vice versa.",
- "img": "",
- "safetylvl": "safe",
- "extraOps": true,
- "advancedOp": false
- },
- {
- "id": 7,
- "OpName": "Shorter Delay Mod",
- "INST": "Install Shorter Delay Mod",
- "DEINST": "Remove Shorter Delay Mod",
- "toolTip": "
Shorter Delay Mod.
Reduces the waiting time for switching between pages with the multi commander from 1.5 to 0.3 seconds.",
- "img": "",
- "safetylvl": "safe",
- "extraOps": false,
- "advancedOp": false
- },
- {
- "id": 8,
- "OpName": "No More Beeps",
- "INST": "Disable All System Beeps",
- "DEINST": "Restore System Beeps",
- "toolTip": "
No More Beeps
Disable all 'Beeps' made by the system that are not silenced by the 'Settings > Sound > Beep' option. This also includes the beeps that cannot be silenced by the settings option.",
- "img": "",
- "safetylvl": "safe",
- "extraOps": false,
- "advancedOp": false
- },
- {
- "id": 9,
- "OpName": "Order of Audio Source List",
- "INST": "Change order of the audio source list",
- "DEINST": "Restore order of audio source list back to original",
- "toolTip": "
Change Order of the Audio Source List.
The order of the audio source list is arranged as follows:
When pressing mute (pressing the volume button) played media are also paused.",
- "img": "",
- "safetylvl": "safe",
- "extraOps": false,
- "advancedOp": false
- },
- {
- "id": 11,
- "OpName": "Remove Message Reply",
- "INST": "Remove automatic message replies",
- "DEINST": "Restore automatic message replies",
- "toolTip": "
Remove Message Replies
Removes the text 'Sent from my Mazda Quick Text System' if answering messages.",
- "img": "",
- "safetylvl": "safe",
- "extraOps": false,
- "advancedOp": false
- },
- {
- "id": 12,
- "OpName": "1 Sec Diag Menu",
- "INST": "Install 1 second diagnostic menu",
- "DEINST": "Remove 1 sec. diagnostic menu",
- "toolTip": "
1 Sec Diag Menu
Allows you to open the diagnostic menu by touching the clock at the top right of the display settings menu for one second.",
- "img": "",
- "safetylvl": "warning",
- "extraOps": false,
- "advancedOp": false
- },
- {
- "id": 13,
- "OpName": "Boot Animation",
- "INST": "Disable boot animation",
- "DEINST": "Boot Animation enable again",
- "toolTip": "
Boot Animation
The boot animation that leads to the menu with the red buttons will be disabled.",
- "img": "",
- "safetylvl": "safe",
- "extraOps": true,
- "advancedOp": false
- },
- {
- "id": 20,
- "OpName": "Statusbar Tweaks",
- "INST": "Install Statusbar Tweaks",
- "DEINST": "Remove Statusbar Tweaks",
- "toolTip": "
Statusbar Mods
Add some Color to your statusbar text.
Change Colors For:
App Name: Title of the app or media source.
Clock: This one is pretty self explanatory.
Status Notification: Navigation notifications
Remove Statusbar Background Image And Adjust Statusbar Opacity (From 0-1: 0 = transparent, 1 = Black) Safe for all FW Versions
Date In Status Bar Mod.
Permanently visible date + icons by the clock, even if system messages are displayed.",
- "img": "mzd_datum_icons_all.jpg",
- "safetylvl": "safe",
- "extraOps": true,
- "advancedOp": false
- },
- {
- "id": 26,
- "OpName": "USB Audio Mod",
- "INST": "Install USB Audio Mod",
- "DEINST": "Remove USB Audio Mod",
- "toolTip": "
USB Audio Mod. By: Enlsen
Patches The USB Audio App With These Mods:
Long press (click hold) folders/all songs to play
Adds new icon for USB root menu on the UMP control
Removes \"More like this\" button from UMP control
Adds folders button to UMP control
Set folders and song list icons correctly (were switched) on UMP control
Removes trailing \"/\" character from folder names for list control and title of now playing
Adds folder and song icons to the list control
Adds folder and playlist icons to now playing
",
- "img": "USBAudioMod.jpg",
- "safetylvl": "safe",
- "extraOps": true,
- "advancedOp": false
- },
- {
- "id": 14,
- "OpName": "Bigger Album Art",
- "INST": "Install bigger album art cover",
- "DEINST": "Album art cover back to original",
- "toolTip": "
Bigger Album Art
You get a bigger album art graphic. Extra Options: Full Width Titles & Hide Album Art",
- "img": "full_titles.png",
- "safetylvl": "safe",
- "extraOps": true,
- "advancedOp": false
- },
- {
- "id": 15,
- "OpName": "Remove Background Overlays",
- "INST": "Remove the background overlays",
- "DEINST": "Background behind buttons back to original",
- "toolTip": "
No Background Behind Buttons
Remove the background behind the buttons and other semi-transparent overlay backgrounds. Overlays that can be removed: Now Playing, List View, In Call, Text Message View, and Behind Buttons",
- "img": "NoButtonBackground.jpg",
- "safetylvl": "safe",
- "extraOps": true,
- "advancedOp": false
- },
- {
- "id": 16,
- "OpName": "Change Blank Album Art Frame",
- "INST": "Remove the blank album art frame",
- "DEINST": "Restore the blank album art frame",
- "toolTip": "
Change Blank Album Art Frame
The empty album cover frame is removed, which is displayed when there is no entry in the Gracenote database for the artist. Then the image of a radio is displayed, if there is no cover in the MP3 tag too. Supported image formats are: jpg, jpeg, and png (any size). Note: The image chosen will be resized to 146px x 146px BUT NOT CROPPED and converted to .png format",
- "img": "",
- "safetylvl": "safe",
- "extraOps": true,
- "advancedOp": false
- },
- {
- "id": 17,
- "OpName": "Videoplayer",
- "INST": "Install videoplayer",
- "DEINST": "Remove videoplayer",
- "toolTip": "
Videoplayer
Add videoplayer app to the application menu.",
- "img": "",
- "safetylvl": "safe",
- "extraOps": true,
- "advancedOp": false
- },
- {
- "id": 18,
- "OpName": "Swapfile",
- "INST": "Generate swapfile for media player v2",
- "DEINST": "Remove swapfile",
- "toolTip": "
Swapfile
The Swapfile will provide your system with an additionasl 1 GB of RAM running from the USB drive for playing videos. The installation of the swap file must be done on a USB drive with music and/or movies, that remains in the car.. The installation files are automatically deleted, the drive may no longer be removed during operation, because the system will use it also as memory.. Only remove the USB drive if the MZD system is off.",
- "img": "",
- "safetylvl": "warning",
- "extraOps": true,
- "advancedOp": false
- },
- {
- "id": 19,
- "OpName": "Speedometer",
- "INST": "Install speedometer",
- "DEINST": "Remove speedometer",
- "toolTip": "
Speedometer With Compass in the Application Menu.
Below the speedometer is km/h or mph, depending on the setting
Speed range up to 240 km/h
Consumption values
Optimized graphics modules with new speedometer pointer
Small speedometer needle for top speed in the analog part
The picture for the speedometer scale has different lengths or bright lines for 5, 10 and 20 km/h jumps
Right table English or German and color / size optimized
All numbers have a slight shadow around to better stand out from the background.
On travel direction rotating compass central to the current speed
Animated overlay in the status with GPS speed and direction of travel in each menu can be prepared by touch at the clock
Latitude and longitude in the right table
When the Navi or Rear Camera is started, it automatically appears
For the small speedo in the status bar you have to install date_to_statusbar mod too. Therefore it will be automatically selected, if not already done.",
- "img": "mzd_SpeedoCompass.gif",
- "safetylvl": "safe",
- "extraOps": true,
- "advancedOp": false
- },
- {
- "id": 22,
- "OpName": "Fuel Consumtion Tweak",
- "INST": "Install Fuel Consumption Tweak",
- "DEINST": "Remove Fuel Consumption Tweak",
- "toolTip": "
This is an experimental app that I made to test the limits of app functionality. For each success there were several failures.
Every function in this app is not guaranteed to work but here are some useful and/or fun things you can do:
'Apps' Tab:
Home: Goes home. This was the easy part.
Go to: USB A, USB B, Bluetooth (audio context).
Previous, Next - Works without changing contexts
Stop (and Start*) Android Auto Headunit process.
Killing headunit process with allow Bluetooth calling to work correctly.
Starting the process does not work properly yet, reboot CMU to restart headunit process.
Stop and Start Castscreen Receiver
Useful for troubleshooting if it is not functioning correctly.
Both of these do work but there is a possibility that a memory issue may prevent the process from properly starting in which case a reboot is required to allow the process to run.
'Tweaks' Tab:
Many familiar AIO layout related tweaks that can be applied on the fly
Applied tweaks are automatically saved to localStorage and saved tweaks are applied on boot.
Toggle each individual tweak on or off.
One button to reset all tweaks.
NOTE: AIO Tweaks App will not UNDO installed tweaks, they will mix and may result in unexpected and/or interesting layouts
'Options' Tab:
Touchscreen: NOTE: Changes to the touchscreen functionality are applied when the vehicle comes to a COMPLETE STOP
Enable Touchscreen and Menu
Normally disabled menu items while driving ie. Text messages & enter address for navigation,
Compass is disabled
Enable Touchscreen and Compass
Compass is functional
Menu items are disabled
Disable Touchscreen
Touchscreen and Menu Items disabled
Compass is functional
Show Background: Show only background (any button to exit).
Reboot: To Reboot.
.",
- "img": "AIO_Tweaks-Screen.png",
- "safetylvl": "safe",
- "extraOps": false,
- "advancedOp": false
- },
- {
- "id": 21,
- "OpName": "Media Order Patch & FLAC Support",
- "INST": "Enable Media Order Patch & FLAC Support",
- "DEINST": "Remove Media Order Patch & FLAC Support",
- "toolTip": "
Media Order Patching & FLAC Support
Music will be sorted alphabetically and not by date with new entries first. FLAC music files will also work.
Audio Order Patch & FLAC Support is only compatible with these FW Versions:
My good friend Siutsch copied files from many different tweaks for his infotainment system and thought, it would be helpful if you could choose what tweaks you wanted to install or uninstall. He went on to develop a CMD based program to accomplish this and it worked well but had reached certain limitations and lacked that modern app feel. I contacted Siutsch and proposed we make the next AIO desktop app style starting with the same tweaks from AIO v1.5.x that we all know and love. I went on to develop MZD-AIO-TI. \n\n##### I personallty tested all the tweaks in my 2016 Mazda3 FW:55.00.753A-NA\n\n##### I can offer no warranty but I did include every safety precaution I know about.\n\n###### **So please, be mindful when performing tweak installs.** \n\nThis app will automatically update.\n\nThis program is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version.\n\nThis program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the Copyleft Under The GNU General Public License for more details.",
+ "t2": "",
+ "msg2": ""
+ }, {
+ "id": 1,
+ "title": "Tweaking",
+ "msg": "
All changes happen at your own risk!
\n Please understand that you can damage or brick your infotainment system running these tweaks! \n Anyone who is unsure should leave it alone, ask someone with experience to help or ask in the forum.
I am not responsible for damages that may incur from the use.
Having said that, MZD-AIO-TI was built with Safety in mind so there are 3 compatibility levels: \n\n - AllAll Compatible - Compatible with all known firmware versions \n - Warning - Only compatible with specific firmware versions. \n - Development - These are tweaks that are still under development, or do not work yet. Android Auto is getting bumped up to yellow very soon, maybe even green.",
+ "t2": "Compatible Firmware Versions:",
+ "msg2": "
**AIO IS COMPATIBLE WITH ALL FW V55, V56, V58, AND V59 UP TO V59.00.502**
\n\n###### Only use with FirmWare Versions >= v55. DO NOT USE with V30/31/33 OR YOU WILL BRICK YOUR SYSTEM IT WILL FOREVER STAY LOOPING THE MAZDA BOOT LOGO! \n\nTo Be Safe, For now AIO-TI Will Automatically Abort The Installation If No Compadible Firmware Version Is Found. \n\nTo override this you have to be comfortable editing tweaks.sh directly, find the code that performs the firmware check and disable or add your version to the list of Compatible firmwares. **Do This At Your Own Risk!**"
+ }, {
+ "id": 2,
+ "title": "Reverting",
+ "msg": "**Almost all the tweaks** can be uninstalled to revert to the system default state.
Default Background:
\n\n - AIO creates backups of all the files that it modifies and uses those backups when reverting. If no backup is found for a file AIO will assume that it is the original file and move on.",
+ "t2": "What Parts Of The System Are Not Reverted By AIO?",
+ "msg2": "
MZD-AIO-TI modifies some files in the system that cannot be reverted back using this app.
\n\nThese first 3 files honestly should never be reverted because a mistake in one of these files will result in a unrecoverable bootloop. They are only modified to disable the system from triggering a reboot on error and consequently creating a bootloop, so reverting them would put your system at a high risk. **Only the first time** the installer runs on your system they are backed up and modified.\n\n**DO NOT MODIFY ANY OF THESE FILES YOURSELF, YOU WILL BREAK YOUR SYSTEM IF YOU DO**\n\n- /jci/sm/sm.conf (Also modified by the Android Auto Tweak)\n- /jci/opera/opera_home/opera.ini \n- /jci/opera/opera_dir/userjs/fps.js\n\n##### These 2 tweaks have no uninstall because the system should have had these enabled by default.\n\n- Wifi (NA Region)\n- SSH_Bringback"
+ }, {
+ "id": 3,
+ "title": "Troubleshooting",
+ "msg": "Here are some common errors with ways to avoid them. \n#### If you keep hitting errors and/or hang ups:\n - The most common issue is a file system access error: resource busy or locked. This occurs when a file or directory cannot be modified becasue it is open or being used by another program. While compiling, close all folders and documents especially files that are actively being used by MZD-AIO-TI (*ex: '_copy_to_usb'*)\n - If the installer does not start in the car try reformatting your USB drive as FAT32 and make sure all other USB devices are disconnected. It helps to turn bluetooth off too. NAV SD card should be left in.",
+ "t2": "If you are having Video Player Issues",
+ "msg2": " Try:\n\n- Place your videos in a folder named 'Movies'! \n\n- Use H264 video codec and MPEG-4 AAC audio codec in video files\n\n- Unplug all other USB drives, especially one, with many MP3s on it \n\n- Copy only one mp3 on your video USB drive \n\n- Copy only a few videos on your stick (you don't have to delete, rename to *._mp4 is OK too, so that they will not be found anymore) \n\n- Reboot your system and try to play a video right after that \n\n- Close the player and start again \n\n- If that doesn't work, then change the audio input.\n\n- Sometimes the first video selected lags or fails to start but pressing 'next' will sometimes start the next video.\n\n- Videos can be: MP4, AVI, FLV, WMV"
+ }, {
+ "id": 4,
+ "title": "Issues",
+ "msg": "\n- If there is not enough space free on the USB drive, you will hang up while copying to USB drive. This may happen if you are copying the swapfile on a drive that is almost full. I plan to fix this in a future version and have an error message pop up. \n- The Google Translator will try to translate certain parts of the code resulting in unexpected effects. Try to use it to make a translated file with the translator to include in the next version so everything will still work when others use the language.",
+ "t2": "Contributing",
+ "msg2": "Though I did build this user interface, the more valuable aspects of this project are the tweak files. Communities like Mazda3Revolution Forum out there and many developers laid down the groundwork from which this app is built and will continue to play an important role in future developments.\n\nIf you want to contributes a tweak, make sure you test your tweak thouroughly.
If you are an expert in javascript or AngularJS then feel free to fix up my code or implement more of the ui 'The Angular Way'
First of all uninstall Android Auto from your system. Click the CMU-Autorun link above and download the repository (download button is on the top right next to \"Find File\"). Copy the \"installer\" Folder to a blank USB drive to install the autorun script, this script will run every time the system boots up. The script looks at the root of the SD card (if available) for a file called \"run.sh\" and if found, executes the file. After installing, copy the \"dryrun\" folder onto an SD card to test that the installation worked correctly.
AA - Copy the contents of the \"headunit\" folder to the root of a blank SD card, connect before booting up infotanment system, a message will show the first time to confirm it is running. \nPlug in an Android Auto compatible phone to start.
Caveats: The device with the headunit files must be connected before booting up the infotainment system to run. Once the headunit app is running it is loaded into memory and will silently run in the background, this means that even if you remove the SD card the headunit app will still be running in memory. To stop the process you can do one of these things:
Turn off the vehicle for about 5-10 minutes
Hard reset (hold: mute + nav + back)
Login SSH, enter command 'killall headunit'
Want to run tweaks from an SD card?
With autorun script installed copy tweak files to an SD card. Rename \"tweaks.sh\" to \"run.sh\". Boot up the system and tweaks will run as expected. NOTE: I/O to SD card is slower than USB so installation will take longer.",
+ "t2": "Technical Talk",
+ "msg2": "This app is built with Electron and AngularJS"
+ }, {
+ "id": 6,
+ "title": "Help & Settings",
+ "msg": "
",
+ "t2": "",
+ "msg2": ""
+ }],
+ "FAQs": {
+ "title": "FAQ",
+ "msg": "Frequently Asked Questions: ",
+ "q1": "Is AIO compatible with my FW version?",
+ "a1": "All compatible FW versions are listed in the 'Tweaking > Compatible Firmware Versions' section to the left in this help panel. MZD-AIO-TI will read out your FW version at beginning of installation and show if it’s not compatible (or not yet tested) and you will abort the installation at this point, for Safety.",
+ "q2": "How long does it take till the installation starts?",
+ "a2": "Typically installation will start within 30 seconds to 2 minutes but it can take up to 10 minutes to begin.",
+ "q3": "If something goes wrong, how can I help you to help me?",
+ "a3": "During installation/uninstallation, a log file is created (AIO log.txt & MZD-AIO-TI info.txt) and some additional files will be copied on the USB drive. Please make a ZIP file of them (complete root of USB drive) and send that to me or upload it somewhere (e.g. google drive or so) and send me the link. Or you can download this tweak that will copy some files from your MZD system to the USB drive and send those.",
+ "q4": "Do I have to uninstall a tweak with AIO 1.x before installing it again?",
+ "a4": "No, You can install every tweak with AIO, you never have to uninstall before. MZD-AIO-TI 2.x use the same tweaks AIO 1.x and compatibility was taken into consideration.",
+ "q5": "How long does the installation/uninstallation take?",
+ "a5": "Up to 10 minutes if every tweak has been selected (especially custom colors and speedcam-patch). performing a backup of your JCI folder can also take up to 10 minutes by itself so with everything up to 20 minutes.",
+ "q6": "What if I want to revert my system but I forgot the tweaks I've installed?",
+ "a6": "Uninstalling tweaks is safe in general, if the uninstaller does not find a backup, it will copy the original files from USB drive over your original files of your MZD system BUT: YOU SHOULD NOT DO THIS FOR NEW AND UNKNOWN FW VERSIONS! See: 'Reverting' section of this help panel.",
+ "q7": "I want to change the order of the audio sources?",
+ "a7": "Edit: /jci/gui/apps/system/js/systemApp.js on lines 624 - 637
* Be careful, the last line must not end with a comma, or you run in to boot loop! * I am working on modifying the tweak to give the option to make your own order without manually modifying any files.",
+ "q8": "Can I install AIO from an SD card?",
+ "a8": "No. SD card slot in the car is ONLY for satnav maps. You need to use USB port in the car, so either USB stick or USB-SD card reader with your card in it.",
+ "q9": "How do I a reboot the MZD system? ",
+ "a9": "Press NAV+MUTE for 10 seconds.",
+ "q10": "Can you write this or that tweak for us?",
+ "a10": "I have improved on many of the existing tweaks and tweaks.sh as a whole but I do have a job and Developing the GUI for this app is a pretty hefty task. That being said, I do have ideas for future tweaks and I will take suggestions but no promises. You can contact me with the contact form on the bottom right of the app."
+ },
+ "tourMsgs": [{
+ "id": 0,
+ "msg": "
Welcome to MZD-AIO-TI!
Mazda All In One Tweaks Installer
An Installer And Uninstaller for 40+ 'Tweaks' For the Mazda MZD Infotainment System."
+ }, {
+ "id": 1,
+ "msg": "These are the main Tweaks. You can choose to install or uninstall for each."
+ }, {
+ "id": 2,
+ "msg": "This sidebar will list all the tweaks currently selected. Here will appear extra options and you can also click any item in this list for help information."
+ }, {
+ "id": 3,
+ "msg": "Additional actions such as backup jci folder & enable wifi for North American versions."
+ }, {
+ "id": 4,
+ "msg": "These options can be restored to original state by selecting their default options."
+ }, {
+ "id": 5,
+ "msg": "The menus have more help topics and links to resources and documentation."
+ }, {
+ "id": 6,
+ "msg": "When all your tweaks have been selected, click this button to compile and go!"
+ }, {
+ "id": 7,
+ "msg": "Copy the entire contents of the \"_copy_to_usb\" folder onto a blank, FAT32 format USB Flash Drive. Plug the drive into the car's usb port, the installer will start automatically after a few minutes. Remove any other USB devices but The NAV SD card should remain plugged into the car. Turning off bluetooth and wifi help as well. After the installation is complete the system will reboot, then you can remove the USB drive and your changes will be applied."
+ }, {
+ "id": 8,
+ "msg": "For more information visit MazdaTweaks.com!"
+ }],
+ "popupMsgs": [{
+ "id": 0,
+ "msg": "Compiling... Please Wait..."
+ }, {
+ "id": 1,
+ "msg": "Location of Tweak Files"
+ }, {
+ "id": 2,
+ "msg": "(For best results, erase USB drive prior to copying)"
+ }, {
+ "id": 3,
+ "msg": "Copy to USB Drive"
+ }, {
+ "id": 4,
+ "msg": "Not Yet"
+ }, {
+ "id": 5,
+ "msg": "Open USB Drive"
+ }, {
+ "id": 6,
+ "msg": "USB drives Found"
+ }, {
+ "id": 7,
+ "msg": "Do you want to copy files to USB drive"
+ }, {
+ "id": 8,
+ "msg": "Choose a USB drive to copy files onto"
+ }, {
+ "id": 9,
+ "msg": "No available USB drives found. Copy the entire contents of"
+ }, {
+ "id": 10,
+ "msg": "onto a blank, FAT32 formatted USB flash drive"
+ }, {
+ "id": 11,
+ "msg": "Copying to USB Drive"
+ }, {
+ "id": 12,
+ "msg": "Please Wait"
+ }, {
+ "id": 13,
+ "msg": "Unzipping Swapfile To"
+ }, {
+ "id": 14,
+ "msg": "This takes a few minutes... be patient."
+ }, {
+ "id": 15,
+ "msg": "Swapfile size is 1 GB."
+ }, {
+ "id": 16,
+ "msg": "While you wait, here is some information"
+ }, {
+ "id": 17,
+ "msg": "Start Over"
+ }, {
+ "id": 18,
+ "msg": "View AIO Compile Log"
+ }, {
+ "id": 19,
+ "msg": "Exit"
+ }, {
+ "id": 20,
+ "msg": "Success!"
+ }, {
+ "id": 21,
+ "msg": "Delete _copy_to_usb Folder After Copying"
+ }],
+ "mainOps": {
+ "wifi": {
+ "id": 0,
+ "label": "Enable WIFI",
+ "safetylvl": "safe",
+ "toolTip": "
WIFI
Enables WIFI for North America and Japan Regions"
+ },
+ "backup": {
+ "id": 1,
+ "label": "Backup JCI Folder",
+ "safetylvl": "safe",
+ "toolTip": "
Backup JCI
Do backup of JCI folder before installing tweaks."
+ },
+ "background": {
+ "id": 2,
+ "label": "Background Image",
+ "safetylvl": "safe",
+ "toolTip": "
Background
Change your Infotainment background to your own custom image. Supported image formats are: jpg, jpeg, and png (any size). Note: If single img is chosen, the image will be resized to 800px x 480px BUT NOT CROPPED and converted to .png format. To change the background image back to original, choose 'Default Background.",
+ "img": "cic.jpg"
+ },
+ "colors": {
+ "id": 3,
+ "label": "Custom Infotainment Colors",
+ "safetylvl": "safe",
+ "toolTip": "
Custom Color Schemes:
Changes your Infotainment color scheme from Red (default) to one of the following colors:
Blue
Green
Orange
Pink
Purple
Silver
Yellow
Smooth Red
Themes: Themes only replace the main menu coins. When installed over a color scheme, the custom colors will remain with the theme. Included Themes:
carOS
Storm Troopers
Poker
Mazda Logos
Floating Logo
X-Men
PROTIP: Delete all the images that you do not want to change. It can be as little as deleting one folder or as much as deleting every image except one. ",
+ "toolTip2": "
The Custom Theme Option:
Use any theme designed for the MZD Infotainment System or easily apply your own Custom Made Theme.
To use any theme: download and unzip the theme
Import the config/jci/ folder from the theme into AIO.
NOTE: Using This Method Will Copy Only .png Files For Themes
Using Your Own Custom Made Theme:
If no theme is chosen: a folder will be generated here: _copy_to_usb/config/color-schemes/theme/jci/
After compiling tweaks, copy your files into the generated jci folder in the same directory location of the images you want to replace.
WARNING: WHEN USING THIS METHOD EVERYTHING IN THE JCI FOLDER WILL BE COPIED ONTO YOUR SYSTEM IN THE SAME LOCATION. USE RESPONSIBLY.
**No removing possible!** With FW 56.00.511+ Mazda has removed SSH access. With SSH_bringback this will be reinstalled."
+ },
+ "sdcid": {
+ "id": 5,
+ "label": "SD CID",
+ "safetylvl": "safe",
+ "toolTip": "
SD CID
Gets the CID from the Nav SD card if available."
+ },
+ "backgroundrotator": {
+ "id": 6,
+ "label": "Background Rotator",
+ "btntxt": "Join Images",
+ "button": "Click To Join Images For Your Background To Rotate Through",
+ "safetylvl": "safe",
+ "toolTip": "
Background Rotator Tweak.
Cycles through some Backgrounds showing for a variable number of seconds each. Using more than about 40-50 backgrounds can start to cause some system lagging. To Revert back to a single background uninstall this tweak."
+ },
+ "retain": {
+ "id": 7,
+ "label": "Copy Backups",
+ "testlabel": "Test Backups",
+ "skipconfirm": "Skip Confirmation",
+ "safetylvl": "safe",
+ "toolTip": "
Retrieve CMU Data
Dump diagnostic files from the CMU to the USB Drive. Cleans out error files and core dumps from the system.
Skip Confirmation
Allows for the installation to run without prompting for confirmation to begin the install. Mainly this is used for recovering when the touchscreen is not responding.
Copy Backups:
Copy original backups of modified system files, for safe keeping.
Test Backups:
Some tweaks have before and after copies of the files modified during the installation. If you like that kind of thing they will be copied to your-usb/bakups/test/.
Use Legacy App Install
The new and improved way to install apps is done with NodeJS. Check to use the old method of installing apps using bash."
+ },
+ "mainmenu": {
+ "id": 8,
+ "label": "Main Menu Tweaks",
+ "safetylvl": "safe",
+ "toolTip": "
Allows the use of the touchscreen while driving. Fix Cluster Compass: Some things will be disabled while driving but the touchscreen itself and the cluster compass will work",
+ "img": "",
+ "safetylvl": "safe",
+ "extraOps": true,
+ "advancedOp": false
+ }, {
+ "id": 2,
+ "OpName": "No More Disclaimer",
+ "INST": "Remove disclaimer completely",
+ "DEINST": "Restore disclaimer (to 3.5 seconds)",
+ "toolTip": "
No More Disclaimer
Completely remove the disclaimer or reduce the expansion time of the disclaimer from 3.5 to 0.5 seconds.",
+ "img": "",
+ "safetylvl": "safe",
+ "extraOps": true,
+ "advancedOp": false
+ }, {
+ "id": 3,
+ "OpName": "Reverse Camera Safety Warning",
+ "INST": "Remove the reverse camera safety warning",
+ "DEINST": "Restore the safety warning label to the reverse camera",
+ "toolTip": "
Reverse Camera Safety Warning
No security warning at the bottom when activating the rear camera.",
+ "img": "",
+ "safetylvl": "safe",
+ "extraOps": false,
+ "advancedOp": false
+ }, {
+ "id": 4,
+ "OpName": "Semi-transparent parking sensor graphics",
+ "INST": "Install semi-transparent parking sensor graphics",
+ "DEINST": "Remove semi-transp. parking sensor graphics f. proximity sensors",
+ "toolTip": "
Semi-Transparent Parking Sensor Graphics.
Semitransparent parking sensor graphics for proximity sensors. When activating the rear camera, the car is displayed at the top right corner. The graphics now appear semitransparent by installing tweak.",
+ "img": "semi-transparent_parking-sensors.jpg",
+ "safetylvl": "safe",
+ "extraOps": false,
+ "advancedOp": false
+ }, {
+ "id": 5,
+ "OpName": "Main Menu Loop",
+ "INST": "Install Main Menu Loop",
+ "DEINST": "Remove Main Menu Loop",
+ "toolTip": "
Main Menu Loop.
Loop for the main menu. You can jump from left to far right, and vice versa.",
+ "img": "",
+ "safetylvl": "safe",
+ "extraOps": false,
+ "advancedOp": false
+ }, {
+ "id": 6,
+ "OpName": "Improved List Loop",
+ "INST": "Install Improved List Loop",
+ "DEINST": "Remove Improved List Loop",
+ "toolTip": "
Improved List Loop.
Loop for all lists and submenu (music, contacts, etc.). You can now jump from the top position of a list to the bottom and vice versa.",
+ "img": "",
+ "safetylvl": "safe",
+ "extraOps": true,
+ "advancedOp": false
+ }, {
+ "id": 7,
+ "OpName": "Shorter Delay Mod",
+ "INST": "Install Shorter Delay Mod",
+ "DEINST": "Remove Shorter Delay Mod",
+ "toolTip": "
Shorter Delay Mod.
Reduces the waiting time for switching between pages with the multi commander from 1.5 to 0.3 seconds.",
+ "img": "",
+ "safetylvl": "safe",
+ "extraOps": false,
+ "advancedOp": false
+ }, {
+ "id": 8,
+ "OpName": "No More Beeps",
+ "INST": "Disable All System Beeps",
+ "DEINST": "Restore System Beeps",
+ "toolTip": "
No More Beeps
Disable all 'Beeps' made by the system that are not silenced by the 'Settings > Sound > Beep' option. This also includes the beeps that cannot be silenced by the settings option.",
+ "img": "",
+ "safetylvl": "safe",
+ "extraOps": false,
+ "advancedOp": false
+ }, {
+ "id": 9,
+ "OpName": "Order of Audio Source List",
+ "INST": "Change order of the audio source list",
+ "DEINST": "Restore order of audio source list back to original",
+ "toolTip": "
Change Order of the Audio Source List.
The order of the audio source list is arranged as follows:
When pressing mute (pressing the volume button) played media are also paused.",
+ "img": "",
+ "safetylvl": "safe",
+ "extraOps": false,
+ "advancedOp": false
+ }, {
+ "id": 11,
+ "OpName": "Remove Message Reply",
+ "INST": "Remove automatic message replies",
+ "DEINST": "Restore automatic message replies",
+ "toolTip": "
Remove Message Replies
Removes the text 'Sent from my Mazda Quick Text System' if answering messages.",
+ "img": "",
+ "safetylvl": "safe",
+ "extraOps": false,
+ "advancedOp": false
+ }, {
+ "id": 12,
+ "OpName": "1 Sec Diag Menu",
+ "INST": "Install 1 second diagnostic menu",
+ "DEINST": "Remove 1 sec. diagnostic menu",
+ "toolTip": "
1 Sec Diag Menu
Allows you to open the diagnostic menu by touching the clock at the top right of the display settings menu for one second.",
+ "img": "",
+ "safetylvl": "warning",
+ "extraOps": false,
+ "advancedOp": false
+ }, {
+ "id": 13,
+ "OpName": "Boot Animation",
+ "INST": "Disable boot animation",
+ "DEINST": "Boot Animation enable again",
+ "toolTip": "
Boot Animation
The boot animation that leads to the menu with the red buttons will be disabled.",
+ "img": "",
+ "safetylvl": "safe",
+ "extraOps": true,
+ "advancedOp": false
+ }, {
+ "id": 20,
+ "OpName": "Statusbar Tweaks",
+ "INST": "Install Statusbar Tweaks",
+ "DEINST": "Remove Statusbar Tweaks",
+ "toolTip": "
Statusbar Mods
Add some Color to your statusbar text.
Change Colors For:
App Name: Title of the app or media source.
Clock: This one is pretty self explanatory.
Status Notification: Navigation notifications
Remove Statusbar Background Image And Adjust Statusbar Opacity (From 0-1: 0 = transparent, 1 = Black) Safe for all FW Versions
Date In Status Bar Mod.
Permanently visible date + icons by the clock, even if system messages are displayed.",
+ "img": "mzd_datum_icons_all.jpg",
+ "safetylvl": "safe",
+ "extraOps": true,
+ "advancedOp": false
+ }, {
+ "id": 26,
+ "OpName": "USB Audio Mod",
+ "INST": "Install USB Audio Mod",
+ "DEINST": "Remove USB Audio Mod",
+ "toolTip": "
USB Audio Mod. By: Enlsen
Patches The USB Audio App With These Mods:
Long press (click hold) folders/all songs to play
Adds new icon for USB root menu on the UMP control
Removes \"More like this\" button from UMP control
Adds folders button to UMP control
Set folders and song list icons correctly (were switched) on UMP control
Removes trailing \"/\" character from folder names for list control and title of now playing
Adds folder and song icons to the list control
Adds folder and playlist icons to now playing
",
+ "img": "USBAudioMod.jpg",
+ "safetylvl": "safe",
+ "extraOps": true,
+ "advancedOp": false
+ }, {
+ "id": 14,
+ "OpName": "Bigger Album Art",
+ "INST": "Install bigger album art cover",
+ "DEINST": "Album art cover back to original",
+ "toolTip": "
Bigger Album Art
You get a bigger album art graphic. Extra Options: Full Width Titles & Hide Album Art",
+ "img": "full_titles.png",
+ "safetylvl": "safe",
+ "extraOps": true,
+ "advancedOp": false
+ }, {
+ "id": 15,
+ "OpName": "Remove Background Overlays",
+ "INST": "Remove the background overlays",
+ "DEINST": "Background behind buttons back to original",
+ "toolTip": "
No Background Behind Buttons
Remove the background behind the buttons and other semi-transparent overlay backgrounds. Overlays that can be removed: Now Playing, List View, In Call, Text Message View, and Behind Buttons",
+ "img": "NoButtonBackground.jpg",
+ "safetylvl": "safe",
+ "extraOps": true,
+ "advancedOp": false
+ }, {
+ "id": 16,
+ "OpName": "Change Blank Album Art Frame",
+ "INST": "Remove the blank album art frame",
+ "DEINST": "Restore the blank album art frame",
+ "toolTip": "
Change Blank Album Art Frame
The empty album cover frame is removed, which is displayed when there is no entry in the Gracenote database for the artist. Then the image of a radio is displayed, if there is no cover in the MP3 tag too. Supported image formats are: jpg, jpeg, and png (any size). Note: The image chosen will be resized to 146px x 146px BUT NOT CROPPED and converted to .png format",
+ "img": "",
+ "safetylvl": "safe",
+ "extraOps": true,
+ "advancedOp": false
+ }, {
+ "id": 17,
+ "OpName": "Videoplayer",
+ "INST": "Install videoplayer",
+ "DEINST": "Remove videoplayer",
+ "toolTip": "
Videoplayer
Add videoplayer app to the application menu.",
+ "img": "",
+ "safetylvl": "safe",
+ "extraOps": true,
+ "advancedOp": false
+ }, {
+ "id": 18,
+ "OpName": "Swapfile",
+ "INST": "Generate swapfile for media player v2",
+ "DEINST": "Remove swapfile",
+ "toolTip": "
Swapfile
The Swapfile will provide your system with an additionasl 1 GB of RAM running from the USB drive for playing videos. The installation of the swap file must be done on a USB drive with music and/or movies, that remains in the car.. The installation files are automatically deleted, the drive may no longer be removed during operation, because the system will use it also as memory.. Only remove the USB drive if the MZD system is off.",
+ "img": "",
+ "safetylvl": "warning",
+ "extraOps": true,
+ "advancedOp": false
+ }, {
+ "id": 19,
+ "OpName": "Speedometer",
+ "INST": "Install speedometer",
+ "DEINST": "Remove speedometer",
+ "toolTip": "
Speedometer With Compass in the Application Menu.
Below the speedometer is km/h or mph, depending on the setting
Speed range up to 240 km/h
Consumption values
Optimized graphics modules with new speedometer pointer
Small speedometer needle for top speed in the analog part
The picture for the speedometer scale has different lengths or bright lines for 5, 10 and 20 km/h jumps
Right table English or German and color / size optimized
All numbers have a slight shadow around to better stand out from the background.
On travel direction rotating compass central to the current speed
Animated overlay in the status with GPS speed and direction of travel in each menu can be prepared by touch at the clock
Latitude and longitude in the right table
When the Navi or Rear Camera is started, it automatically appears
For the small speedo in the status bar you have to install date_to_statusbar mod too. Therefore it will be automatically selected, if not already done.",
+ "img": "mzd_SpeedoCompass.gif",
+ "safetylvl": "safe",
+ "extraOps": true,
+ "advancedOp": false
+ }, {
+ "id": 22,
+ "OpName": "Fuel Consumtion Tweak",
+ "INST": "Install Fuel Consumption Tweak",
+ "DEINST": "Remove Fuel Consumption Tweak",
+ "toolTip": "
This is an experimental app that I made to test the limits of app functionality. For each success there were several failures.
Every function in this app is not guaranteed to work but here are some useful and/or fun things you can do:
'Apps' Tab:
Home: Goes home. This was the easy part.
Go to: USB A, USB B, Bluetooth (audio context).
Previous, Next - Works without changing contexts
Stop (and Start*) Android Auto Headunit process.
Killing headunit process with allow Bluetooth calling to work correctly.
Starting the process does not work properly yet, reboot CMU to restart headunit process.
Stop and Start Castscreen Receiver
Useful for troubleshooting if it is not functioning correctly.
Both of these do work but there is a possibility that a memory issue may prevent the process from properly starting in which case a reboot is required to allow the process to run.
'Tweaks' Tab:
Many familiar AIO layout related tweaks that can be applied on the fly
Applied tweaks are automatically saved to localStorage and saved tweaks are applied on boot.
Toggle each individual tweak on or off.
One button to reset all tweaks.
NOTE: AIO Tweaks App will not UNDO installed tweaks, they will mix and may result in unexpected and/or interesting layouts
'Options' Tab:
Touchscreen: NOTE: Changes to the touchscreen functionality are applied when the vehicle comes to a COMPLETE STOP
Enable Touchscreen and Menu
Normally disabled menu items while driving ie. Text messages & enter address for navigation,
Compass is disabled
Enable Touchscreen and Compass
Compass is functional
Menu items are disabled
Disable Touchscreen
Touchscreen and Menu Items disabled
Compass is functional
Show Background: Show only background (any button to exit).
Reboot: To Reboot.
.",
+ "img": "AIO_Tweaks-Screen.png",
+ "safetylvl": "safe",
+ "extraOps": false,
+ "advancedOp": false
+ }, {
+ "id": 21,
+ "OpName": "Media Order Patch & FLAC Support",
+ "INST": "Enable Media Order Patch & FLAC Support",
+ "DEINST": "Remove Media Order Patch & FLAC Support",
+ "toolTip": "
Media Order Patching & FLAC Support
Music will be sorted alphabetically and not by date with new entries first. FLAC music files will also work.
Audio Order Patch & FLAC Support is only compatible with these FW Versions:
",
+ "img": "",
+ "safetylvl": "warning",
+ "extraOps": false,
+ "advancedOp": true
+ }]
}
diff --git a/app/lang/english.min.json b/app/lang/english.min.json
index 3f2ac12..0e86f96 100644
--- a/app/lang/english.min.json
+++ b/app/lang/english.min.json
@@ -1 +1 @@
-{"languages":{"en":{"id":1,"lang":"English"},"de":{"id":2,"lang":"German"},"fr":{"id":3,"lang":"French"},"sp":{"id":4,"lang":"Spanish"},"pl":{"id":5,"lang":"Polish"},"trk":{"id":7,"lang":"Turkish"},"slv":{"id":8,"lang":"Slovak"},"hu":{"id":9,"lang":"Hungarian"}},"helpMsgs":[{"id":0,"title":"Introduction","msg":"An Installer and uninstaller for 40+ 'Tweaks' For the Mazda MZD Infotainment System \n Mazda 2 (DJ), Mazda 3 (BM), Mazda 6 (GJ), Mazda CX-3 (DK), Mazda CX-5 (KE), Mazda MX-5 Roadster (ND) and new 2017 Mazda CX-9 (TC) Fiat Spider, Toyota ScionA
What Is MZD-AIO-TI?
My good friend Siutsch copied files from many different tweaks for his infotainment system and thought, it would be helpful if you could choose what tweaks you wanted to install or uninstall. He went on to develop a CMD based program to accomplish this and it worked well but had reached certain limitations and lacked that modern app feel. I contacted Siutsch and proposed we make the next AIO desktop app style starting with the same tweaks from AIO v1.5.x that we all know and love. I went on to develop MZD-AIO-TI. \n\n##### I personallty tested all the tweaks in my 2016 Mazda3 FW:55.00.753A-NA\n\nCurrently this app is in a BETA TEST phase in its final stages of development. I ask for 2 things from anyone who participates in testing this app before its official release: \n\n1. Give some feedback and report any bugs or major issues. \n\n2. Be cautious and mindful to what you are doing to your system while installing or unistalling tweaks. I can offer no warranty but I did include every safety precaution I know about.\n\n###### **So please, be mindful when preforming tweak installs.** \n\nThis app will automatically update.","t2":"","msg2":""},{"id":1,"title":"Tweaking","msg":"
All changes happen at your own risk!
\n Please understand that you can damage or brick your infotainment system running these tweaks! \n Anyone who is unsure should leave it alone, ask someone with experience to help or ask in the forum.
I am not responsible for damages that may incur from the use.
Having said that, MZD-AIO-TI was built with Safety in mind so there are 3 compatibility levels: \n\n - All - Compatible with all known firmware versions \n - Under58 - Only compatible with firmware versions less then 58 (ie. 55 & 56). If the compatibility is more specific than that it will be noted. \n - Development - These are tweaks that are still under development, or do not work yet. Android Auto is getting bumped up to yellow very soon, maybe even green.","t2":"Compatible Firmware Versions:","msg2":"###### 55.00.650A/753A/760A / 56.00.521A-NA(NA N) \n\n###### 56.00.100A/230A/240B/511A/512A/513C/514A-ADR(4A N) \n\n###### 56.00.100A/230A/511A/512A/513A/513B/513C-EU \n\n###### 56.00.401A/403A-JP | 56.00.100A-CHN \n\n###### 58.00.250A-NA(NA N) / 58.00.251A-ADR(4A N) \n\n59.00.326A/330A/342A/442A/443C-ADR(4A N) \n\n###### 59.00.330A/441A/443A-NA \n\n###### 59.00.330A/331A/443C/447A/449A-EU \n\n###### Only use with FirmWare Versions >= v55. DO NOT USE with V30/31/33 OR YOU WILL BRICK YOUR SYSTEM IT WILL FOREVER STAY LOOPING THE MAZDA BOOT LOGO! \n\nTo Be Safe, For now AIO-TI Will Automatically Abort The Installation If No Compadible Firmware Version Is Found. \n\nTo overide this you have to be comfortable editing tweaks.sh directly, find the code that preforms the firmware check and disable or ad your version to the list of Compatible firmwares. **Do This At Your Own Risk!**"},{"id":2,"title":"Reverting","msg":"**Almost all the tweaks** can be uninstalled to revert to the system default state.
Default Background:
\n\n - AIO creates backups of all the files that it modifies and uses those backups when reverting. AIO also contains an original version of each file just in case any of the backup files are missing. In future versions I plan to include an option to copy and store your own system's backup files into AIO as a failsafe to ensure compatability for future CMD versions.\n - In general, for all Compatible CMD versions it is safe to run uninstalls of tweaks that have not been installed BUT keep in mind that AIO will overwrite the files involved with the included failsafe backups because it will not find any available backups in the system. So try to avoid running uninstallers for tweaks that you have not installed.","t2":"What Parts Of The System Are Not Reverted By AIO?","msg2":"
MZD-AIO-TI modifies some files in the system that cannot be reverted back using this app.
\n\nThese first 3 files honestly should never be reverted because a mistake in one of these files will result in a unrecoverable bootloop. They are only modified to disable the system from triggering a reboot on error and consequently creating a bootloop, so reverting them would put your system at a high risk. **Only the first time** the installer runs on your system they are backed up and modified.\n\n**DO NOT MODIFY ANY OF THESE FILES YOURSELF, YOU WILL BREAK YOUR SYSTEM IF YOU DO**\n\n- /jci/sm/sm.conf (Also modified by the Android Auto Tweak)\n- /jci/opera/opera_home/opera.ini \n- /jci/opera/opera_dir/userjs/fps.js\n\n##### These 2 tweaks have no uninstall because the system should have had these enabled by default.\n\n- Wifi (NA Region)\n- SSH_Bringback"},{"id":3,"title":"Troubleshooting","msg":"Here are some common errors with ways to avoid them. \n#### If you keep hitting errors and/or hang ups:\n - The most common issue is a file system access error: resource busy or locked. This occurs when a file or directory cannot be modified becasue it is open or being used by another program. While compiling, close all folders and documents especially files that are actively being used by MZD-AIO-TI (*ex: '_copy_to_usb'*)\n - Try selecting fewer tweaks at a time, picking too many increases the chaces for an unexpected error. I have tested running every single tweak at once many times, if you are consistantly hitting an error please report the bug. \n - If the installer does not start in the car try reformatting your USB drive as FAT32 and make sure all other USB devices are disconnected. It helps to turn bluetooth off too. NAV SD card should be left in.","t2":"If you are having Video Player Issues","msg2":" Try:\n\n- Place your videos in a folder named 'Movies'! \n\n- Use H264 video codec and MPEG-4 AAC audio codec in video files\n\n- Unplug all other USB drives, especially one, with many MP3s on it \n\n- Copy only one mp3 on your video USB drive \n\n- Copy only a few videos on your stick (you don't have to delete, rename to *._mp4 is OK too, so that they will not found anymore) \n\n- Reboot your system and try to play a video right after that \n\n- Close the player and start again \n\n- If that doesn't work, then change the audio input.\n\n- Sometimes the first video selected lags or fails to start but pressing 'next' will sometimes start the next video.\n\n- Videos can be: MP4, AVI, FLV, WMV"},{"id":4,"title":"Contributing","msg":"Though I did build this user interface, the more valuable aspects of this project are the tweak files. Communities like Mazda3Revolution Forum out there and many developers laid down the groundwork from which this app is built and will continue to play an important role in future developments.\n\nIf you want to contributes a tweak, make sure you test your tweak thouroughly.
If you are an expert in javascript or AngularJS then feel free to fix up my code (its a little bit messy... sorry) or implement more of the ui 'The Angular Way'
Github Repo","t2":"Issues","msg2":"- FW Versions 59.xx.xxx apps do not show up in the app menu (Speedometer and Video Player) also have an issue with the date to statusbar mod (rejects on installation for effecgted FW versions.) \n- If there is not enough space free on the USB drive, you will hang up while copying to USB drive. This may happen if you are copying the swapfile on a drive that is almost full. I plan to fix this in a future version and have an error message pop up. \n- If you installed the 'No Background Behind Buttons' tweak and are going to install a color scheme, it will restore the background behind buttons. Prevent this by selecting both tweaks in the same installation.\n- The Google Translator will try to translate certain parts of the code resulting in unexpected effects. Try to use it to make a translated file with the translator to include in the next version so everything will still work when others use the language."},{"id":5,"title":"Tips & Tricks","msg":"I will include some tips that go above and beyond this app. Here are instructions how to run the CMU OS on yor computer.","t2":"Technical Talk","msg2":"This app is built with Electron and AngularJS"},{"id":6,"title":"Help & Settings","msg":"
","t2":"","msg2":""}],"FAQs":{"title":"FAQ","msg":"Frequently Asked Questions: ","q1":"Is AIO compatible with my FW version?","a1":"All compatible FW versions are listed in the 'Tweaking > Compatible Firmware Versions' section to the left in this help panel. MZD-AIO-TI will read out your FW version at beginning of installation and show if it’s not compatible (or not yet tested) and you will abort the installation at this point, for Safety.","q2":"How long does it take till the installation starts?","a2":"Tipically installation will start whithin 30 seconds to 2 minutes but it can take up to 10 minutes to begin.","q3":"If something goes wrong, how can I help you to help me?","a3":"During installation/uninstallation, a log file is created (AIO log.txt & MZD-AIO-TI info.txt) and some additional files will be copied on the USB drive. Please make a ZIP file of them (complete root of USB drive) and send that to me or upload it somewhere (e.g. google drive or so) and send me the link. Or you can download this tweak that will copy some files from your MZD system to the USB drive and send those.","q4":"Do I have to uninstall a tweak with AIO 1.x before installing it again?","a4":"No, You can install every tweak with AIO, you never have to uninstall before. MZD-AIO-TI 2.x use the same tweaks AIO 1.x and compatability was taken into consideration.","q5":"How long does the installation/uninstallation take?","a5":"Up to 10 minutes if every tweak has been selected (especially custom colors and speedcam-patch). Preforming a backup of your JCI folder can also take up to 10 minutes by itself so with everything up to 20 minutes.","q6":"What if I want to revert my system but I forgot the tweaks I've installed?","a6":"Uninstalling tweaks is safe in general, if the uninstaller dosn't find a backup, it will copy the original files from USB drive over your original files of your MZD system BUT: YOU SHOULD NOT DO THIS FOR NEW AND UNKNOWN FW VERSIONS! See: 'Reverting' section of this help panel.","q7":"I want to change the order of the audio sources?","a7":"Edit: /jci/gui/apps/system/js/systemApp.js on lines 624 - 637
* Be careful, the last line must not end with a comma, or you run in to boot loop! * I am working on modifying the tweak to give the option to make your own order without manually modifying any files.","q8":"Can I install AIO from an SD card?","a8":"No. SD card slot in the car is ONLY for satnav maps. You need to use USB port in the car, so either USB stick or USB-SD card reader with your card in it.","q9":"How do I a reboot the MZD system? ","a9":"Press NAV+MUTE for 10 seconds.","q10":"Can you write this or that tweak for us?","a10":"I have improved on many of the existing tweaks and tweaks.sh as a whole but I do have a job and Developing the GUI for this app is a pretty hefty task. That being said, I do have ideas for future tweaks and I will take suggestions but no promises. You can contact me with the contact form on the bottom right of the app."},"tourMsgs":[{"id":0,"msg":"
Welcome to MZD-AIO-TI!
Mazda All In One Tweaks Installer
An Installer And Uninstaller for 40+ 'Tweaks' For the Mazda MZD Infotainment System."},{"id":1,"msg":"These are the main Tweaks. You can choose to install or uninstall for each."},{"id":2,"msg":"This sidebar will list all the tweaks currently selected. Here will appear extra options and you can also click any item in this list for help information."},{"id":3,"msg":"Additional actions such as backup jci folder & enable wifi for North American versions."},{"id":4,"msg":"These options can be restored to original state by selecting their default options."},{"id":5,"msg":"The menus have more help topics and links to resources and documentation."},{"id":6,"msg":"When all your tweaks have been selected, click this button to compile and go!"},{"id":7,"msg":"Copy the entire contents of the \"_copy_to_usb\" folder onto a blank, FAT32 format USB Flash Drive. Plug the drive into the car's usb port, the installer will start automatically after a few minutes. Remove any other USB devices but The NAV SD card should remain plugged into the car. Turning off bluetooth and wifi help as well. After the installation is complete the system will reboot, then you can remove the USB drive and your changes will be applied."},{"id":8,"msg":"For more information visit MazdaTweaks.com!"}],"popupMsgs":[{"id":0,"msg":"Compiling... Please Wait..."},{"id":1,"msg":"Location of Tweak Files"},{"id":2,"msg":"(For best results, erase USB drive prior to copying)"},{"id":3,"msg":"Copy to USB Drive"},{"id":4,"msg":"Not Yet"},{"id":5,"msg":"Open USB Drive"},{"id":6,"msg":"USB drives Found"},{"id":7,"msg":"Do you want to copy files to USB drive"},{"id":8,"msg":"Choose a USB drive to copy files onto"},{"id":9,"msg":"No available USB drives found. Copy the entire contents of"},{"id":10,"msg":"onto a blank, FAT32 formatted USB flash drive"},{"id":11,"msg":"Copying to USB Drive"},{"id":12,"msg":"Please Wait"},{"id":13,"msg":"Unzipping Swapfile To"},{"id":14,"msg":"This takes a few minutes... be patient."},{"id":15,"msg":"Swapfile size is 1 GB."},{"id":16,"msg":"While you wait, here is some information"},{"id":17,"msg":"Start Over"},{"id":18,"msg":"View AIO Compile Log"},{"id":19,"msg":"Exit"},{"id":20,"msg":"Success!"},{"id":21,"msg":"Delete _copy_to_usb Folder After Copying"}],"mainOps":{"wifi":{"id":0,"label":"Enable WIFI","safetylvl":"safe","toolTip":"
WIFI
Enables WIFI for North America Region"},"backup":{"id":1,"label":"Backup JCI Folder","safetylvl":"safe","toolTip":"
Backup JCI
Do backup of JCI folder before installing tweaks."},"background":{"id":2,"label":"Background Image","safetylvl":"safe","toolTip":"
Background
Change your Infotainment background to your own custom image. Supported image formats are: jpg, jpeg, and png (any size). Note: If single img is chosen, the image will be resized to 800px x 480px BUT NOT CROPPED and converted .png format. To change the background image back to original, choose 'Default Background.","img":"cic.jpg"},"colors":{"id":3,"label":"Custom Infotainment Colors","safetylvl":"safe","toolTip":"
Custom Color Schemes:
Changes your Infotainment color scheme from Red (default) to one the following colors:
Blue
Green
Orange
Pink
Purple
Silver
Yellow
Smooth Red
Themes: Themes only replace the main menu coins. When installed over a color scheme, the custom colors will remain with the theme. Included Themes:
carOS
Storm Troopers
Poker
Mazda Logos
Floating Logo
X-Men
PROTIP: Delete all the images that you do not want to change. It can be as little as deleting one folder or as much as deleting every image except one. ","toolTip2":"
The Custom Theme Option:
Use any theme designed for the MZD Infotainment System or easily apply your own Custom Made Theme.
To use any theme: download and unzip the theme
Import the config/jci/ folder from the theme into AIO.
NOTE: Using This Method Will Copy Only .png Files For Themes
Using Your Own Custom Made Theme:
If no theme is chosen: a folder will be generated here: _copy_to_usb/config/color-schemes/theme/jci/
After compiling tweaks, copy your files into the generated jci folder in the same directory location of the images you want to replace.
WARNING: WHEN USING THIS METHOD EVERYTHING IN THE JCI FOLDER WILL BE COPIED ONTO YOUR SYSTEM IN THE SAME LOCATION. USE RESPONSIBLY.
**No removing possible!** With FW 56.00.511 Mazda has removed SSH access. With SSH_bringback this will be reinstalled. This tweak will still only be installed if FW 56.00.511 is recognized, if it's 56.00.230, nothing happens."},"sdcid":{"id":5,"label":"SD CID","safetylvl":"safe","toolTip":"
SD CID
Gets the CID from the Nav SD card if available."},"backgroundrotator":{"id":6,"label":"Background Rotator","btntxt":"Join Images","button":"Click To Join Images For Your Background To Rotate Through","safetylvl":"safe","toolTip":"
Background Rotator Tweak.
Cycles through 10 Backgrounds over 10 minutes (600 seconds - 60 seconds per background). Note: After installing this tweak, you can change your joined background multiple times without installing again. To Revert back to a single background uninstall this tweak."},"retain":{"id":7,"label":"Copy Backups","testlabel":"Test Backups","safetylvl":"safe","toolTip":"
Copy Backups:
Copy original backups of modified system files, for safe keeping.
Test Backups:
Some tweaks have before and after copys of the files modified during the instalation. If you like that kind of thing they will copied to your-usb/bakups/test/.
"},"mainmenu":{"id":8,"label":"Main Menu Tweaks","safetylvl":"safe","toolTip":"
Background Image when \"Turn Display Off and Show Clock\" is chosen in the Settings menu. Also shown during system shutdown."}},"menu":{"save":{"menuId":"0","label":"Save","toolTip":"Save Current Configuration."},"load":{"menuId":"1","label":"Load","toolTip":"Load Last Saved Configuration"},"tour":{"menuId":"2","label":"Tour","toolTip":"Take a Tour of MZD-AIO-TI"},"lastcompilelog":{"menuId":"3","label":"Last Compile Log","toolTip":"MZD_LOG"},"installall":{"menuId":"4","label":"Install All","toolTip":"Install All Except: Android Auto and Castscreen."},"uninstallall":{"menuId":"5","label":"Uninstall All","toolTip":"Uninstall All Tweaks."},"resetoptions":{"menuId":"6","label":"Reset Options","toolTip":"Reset Checked Options."},"reloadapp":{"menuId":"17","label":"Reload App","toolTip":"Reload the app."},"copytousb":{"menuId":"8","label":"_copy_to_usb","toolTip":"Open _copy_to_usb Folder"},"help":{"menuId":"9","label":"Help","toolTip":"Click tweak name for help."},"install":{"menuId":"10","label":"Install"},"uninstall":{"menuId":"11","label":"Uninstall"},"languages":{"menuId":"12","label":"Languages"},"close":{"menuId":"13","label":"Close"},"clickforhelp":{"menuId":"14","label":"Click For Help"},"tweakstoinstall":{"menuId":"15","label":"Tweaks To Install"},"file":{"menuId":"18","label":"File"},"window":{"menuId":"19","label":"Window"},"download":{"menuId":"20","label":"Download"},"fullscreen":{"menuId":"20","label":"Fullscreen"},"translator":{"menuId":"21","label":"Translator"},"dlcolors":{"menuId":"22","label":"Download Color Scheme Files"},"dlspeedcam":{"menuId":"22","label":"Download Speedcam Patch Files"},"helppanel":{"menuId":"23","label":"Help Panel"},"changelog":{"menuId":"24","label":"Changelog"},"start":{"menuId":"16","label":"Start Compilation","toolTip":"
Ready?
Start The Compilation!"},"centerwindow":{"menuId":"17","label":"Center Window","toolTip":"Reset Window Size and Position"}},"imgOps":[{"id":0,"label":"Join multiple images for your infotainment background"},{"id":1,"label":"Select up to 50, 480px X 800px Images (Each Image will be resized to 480x800). Background Rotator Will Show Each Background For X Seconds (Max 300 Seconds = 5 Minutes per img)."},{"id":2,"label":"Drag images to change order."},{"id":3,"label":"images selected"},{"id":4,"label":"You need to choose some images to join (Each will be resized to height: 480px, width: 800px) or "},{"id":5,"label":"Use Your Own Joined Image (No Resize)"},{"id":6,"label":"This image wil replace your infotainment background."},{"id":7,"label":"Save Image As"},{"id":8,"label":"Make Another"},{"id":9,"label":"Right-click > Save Image saves a copy of background.png to your downloads folder."},{"id":10,"label":"Minutes"},{"id":11,"label":"Select Images"},{"id":12,"label":"Images"}],"translatorWindow":[{"label":"Language Translator"},{"label":"Reset to Default"},{"label":"Enter Language Name (file will save as"},{"label":"in your 'documents' folder"},{"label":"Email translated files to"},{"label":"Pull Request"},{"label":"loading"},{"label":"Saved in 'Documents'"},{"label":"Show In Explorer"},{"label":"Load File"},{"label":"This section was designed for easily translating this app into many languages."},{"label":"Choose a translation file to edit"},{"label":"Enter name of the translated language"},{"label":"BACK"},{"label":"Save (To Documents)."},{"label":"Auto-Save"}],"colors":{"red":{"id":0,"label":"Red (Default)"},"blue":{"id":1,"label":"Blue"},"green":{"id":2,"label":"Green"},"silver":{"id":3,"label":"Silver"},"pink":{"id":4,"label":"Pink"},"purple":{"id":5,"label":"Purple"},"orange":{"id":6,"label":"Orange"},"yellow":{"id":7,"label":"Yellow"},"smoothred":{"id":9,"label":"Smooth Red"},"caros":{"id":8,"label":"CarOS"},"stormtroopers":{"id":10,"label":"Storm Troopers"},"poker":{"id":11,"label":"Poker"},"mazdalogos":{"id":12,"label":"Mazda Logos"},"floating":{"id":13,"label":"Floating Logo"},"xmen":{"id":14,"label":"X-Men"},"custom":{"id":15,"label":"Custom Theme"}},"statusbar":{"main":{"id":0,"label":"Remove Statusbar Background"},"opacity":{"id":1,"label":"Statusbar Opacity"},"app":{"id":2,"label":"App Title"},"clock":{"id":3,"label":"Clock"},"notif":{"id":4,"label":"Status Notifications"},"d2sbinst":{"id":5,"label":"Date To Statusbar Mod"},"d2sbuninst":{"id":6,"label":"Remove Date To Statusbar Mod"}},"uistyle":{"body":{"id":0,"label":"Body Text (Audio Artist & Album)"},"listitem":{"id":1,"label":"List Item"},"listitemdisabled":{"id":2,"label":"Disabled List Item"},"title":{"id":3,"label":"Song Title"},"radio":{"id":4,"label":"Radio Station"},"main3d":{"id":5,"label":"3D Main Menu Text"},"ellipse":{"id":6,"label":"Remove Ellipse"},"altlayout":{"id":7,"label":"'Star Points' Layout"},"shadow":{"id":8,"label":"Text Shadow"},"altulayout":{"id":9,"label":"'Inverted' Layout"},"minicoins":{"id":10,"label":"Smaller 'Coins'"}},"speedcamOps":[{"id":0,"label":"Europe With Mobile Cameras"},{"id":1,"label":"Europe Without Mobile Cameras"},{"id":2,"label":"Germany With Mobile Cameras"},{"id":3,"label":"Germany Without Mobile Cameras"},{"id":4,"label":"Turkey"},{"id":5,"label":"Use Your Own speedcam.txt file"}],"disclaimOps":[{"id":0,"label":"Remove Completely"},{"id":1,"label":"Reduce Time To 0.5 seconds"}],"fuelOps":[{"id":0,"label":"Km/L"},{"id":1,"label":"MPG"}],"d2sbOps":[{"id":0,"label":"V1.0"},{"id":1,"label":"v3.3 (Date Localized)"},{"id":2,"label":"V3.3 (dd.mm.)"},{"id":3,"label":"V3.3 (mm/dd)"}],"speedoOps":{"lang":{"en":{"id":0,"label":"English"},"de":{"id":1,"label":"German"},"sp":{"id":2,"label":"Spanish"},"pl":{"id":3,"label":"Polish"},"sl":{"id":4,"label":"Slovak"},"tk":{"id":5,"label":"Turkish"},"fr":{"id":6,"label":"French"},"it":{"id":7,"label":"Italian"}},"xph":{"mph":{"id":10,"label":"MPH"},"kmh":{"id":11,"label":"KM/H"}},"sml":{"gps":{"id":20,"label":"GPS Values"},"car":{"id":21,"label":"Car Values"},"none":{"id":22,"label":"Do Not Activate"}},"bg":{"ind":{"id":30,"label":"Individual Background"},"orig":{"id":31,"label":"Original Background"}},"opac":{"id":40,"val":"0","label":"Black Background Opacity? (To Reduce Visibility of Custom MZD Background Image) 0.0 (Fully Transparent) - 1.0 (Completely Black)"}},"tweakOps":[{"id":1,"OpName":"Touchscreen While Moving","INST":"Enable the touchscreen while moving","DEINST":"Disable the touchscreen again while moving","toolTip":"
Touchscreen
Allows the use of the touchscreen while driving. Fix Cluster Compass: Some things will be disabled while driving but the touchscreen itself and the cluster compass will work","img":"","safetylvl":"safe","extraOps":true,"advancedOp":false},{"id":2,"OpName":"No More Disclaimer","INST":"Remove disclaimer completely","DEINST":"Restore disclaimer (to 3.5 seconds)","toolTip":"
No More Disclaimer
Completely remove the disclaimer or reduce the expansion time of the disclaimer from 3.5 to 0.5 seconds.","img":"","safetylvl":"safe","extraOps":true,"advancedOp":false},{"id":3,"OpName":"Reverse Camera Safety Warning","INST":"Remove the reverse camera safety warning","DEINST":"Restore the safety warning label to the reverse camera","toolTip":"
Reverse Camera Safety Warning
No security warning at the bottom when activating the rear camera.","img":"","safetylvl":"safe","extraOps":false,"advancedOp":false},{"id":4,"OpName":"Semi-transparent parking sensor graphics","INST":"Install semi-transparent parking sensor graphics","DEINST":"Remove semi-transp. parking sensor graphics f. proximity sensors","toolTip":"
Semi-Transparent Parking Sensor Graphics.
Semitransparent parking sensor graphics for proximity sensors.. When activating the rear camera, the car is displayed at the top right corner.#The graphics now appear semitransparent by installing tweak.","img":"semi-transparent_parking-sensors.jpg","safetylvl":"safe","extraOps":false,"advancedOp":false},{"id":5,"OpName":"Main Menu Loop","INST":"Install main_menu_loop","DEINST":"Remove main_menu_loop","toolTip":"
Main Menu Loop.
Loop for the main menu. You can jump from left to far right, and vice versa.","img":"","safetylvl":"safe","extraOps":false,"advancedOp":false},{"id":6,"OpName":"Improved List Loop","INST":"Install improved_list_loop","DEINST":"Remove improved_list_loop","toolTip":"
Improved List Loop.
Loop for all lists and submenu (music, contacts, etc.). You can now jump from the top position of a list to the bottom and vice versa.","img":"","safetylvl":"safe","extraOps":false,"advancedOp":false},{"id":7,"OpName":"Shorter Delay Mod","INST":"Install shorter_delay_mod","DEINST":"Remove shorter_delay_mod","toolTip":"
Shorter Delay Mod.
Reduces the waiting time for switching between pages with the multi commander from 1.5 to 0.3 seconds. Uninstalling Improved List Loop will also uninstall this mod.","img":"","safetylvl":"safe","extraOps":false,"advancedOp":false},{"id":8,"OpName":"Media Order Patch & FLAC Support","INST":"Enable media_order patch and FLAC support","DEINST":"Remove media_order_patching","toolTip":"
Media Order Patching and FLAC Support
Music will be sorted alphabetically and not by date with new entries first. Support for audio format FLAC.","img":"","safetylvl":"warning","extraOps":false,"advancedOp":false},{"id":9,"OpName":"Order of Audio Source List","INST":"Change order of the audio source list","DEINST":"Restore order of audio source list back to original","toolTip":"
Change Order of the Audio Source List.
The order of the audio source list is arranged as follows:.
FMRadio
DAB
USB_A
USB_B
btaudio
CD
SatRadio
AhaRadio
Pandora
Stitcher
AuxIn
amradio
DVD
TV
","img":"","safetylvl":"warning","extraOps":false,"advancedOp":false},{"id":10,"OpName":"Pause on mute","INST":"Install pause_on_mute","DEINST":"Remove pause_on_mute","toolTip":"
Pause On Mute.
When pressing mute (pressing the volume button) played media are also paused.","img":"","safetylvl":"safe","extraOps":false,"advancedOp":false},{"id":11,"OpName":"Remove Message Reply","INST":"Remove automatic message replies","DEINST":"Restore automatic message replies","toolTip":"
Remove Message Replies
Removes the text 'Sent from my Mazda Quick Text System' if answering messages.","img":"","safetylvl":"safe","extraOps":false,"advancedOp":false},{"id":12,"OpName":"1 Sec Diag Menu","INST":"Install 1 second diagnostic menu","DEINST":"Remove 1 sec. diagnostic menu","toolTip":"
1 Sec Diag Menu
Allows you to open the diagnostic menu by touching the clock at the top right of the display settings menu for one second.","img":"","safetylvl":"warning","extraOps":false,"advancedOp":false},{"id":13,"OpName":"Boot Animation","INST":"Disable boot animation","DEINST":"Boot Animation enable again","toolTip":"
Boot Animation
The boot animation that leads to the menu with the red buttons will be disabled.","img":"","safetylvl":"safe","extraOps":false,"advancedOp":false},{"id":14,"OpName":"Bigger Album Art","INST":"Install bigger album art cover","DEINST":"Album art cover back to original","toolTip":"
Bigger Album Art
You get a bigger album art graphic.","img":"","safetylvl":"safe","extraOps":false,"advancedOp":false},{"id":15,"OpName":"No Background Behind Buttons","INST":"Remove the background behind buttons","DEINST":"Background behind buttons back to original","toolTip":"
No Background Behind Buttons
Remove the background behind the buttons.","img":"NoButtonBackground.jpg","safetylvl":"safe","extraOps":false,"advancedOp":false},{"id":16,"OpName":"Change Blank Album Art Frame","INST":"Remove the blank album art frame","DEINST":"Restore the blank album art frame","toolTip":"
Change Blank Album Art Frame
The empty album cover frame is removed, which is displayed when there is no entry in the Gracenote database for the artist. Then the image of a radio is displayed, if there is no cover in the MP3 tag too. Supported image formats are: jpg, jpeg, and png (any size). Note: The image chosen will be resized to 146px x 146px BUT NOT CROPPED and converted .png format","img":"","safetylvl":"safe","extraOps":true,"advancedOp":false},{"id":17,"OpName":"Videoplayer","INST":"Install videoplayer","DEINST":"Remove videoplayer","toolTip":"
Videoplayer
Add videoplayer app to the application menu.","img":"","safetylvl":"safe","extraOps":false,"advancedOp":false},{"id":18,"OpName":"Swapfile","INST":"Generate swapfile for media player v2","DEINST":"Remove swapfile","toolTip":"
Swapfile
The installation of the swap file must be done on a USB drive with music and/or movies, that remains in the car.. The installation files are automatically deleted, the drive may no longer be removed during operation, because the system will use it also as memory.. Only remove the USB drive if the MZD system is off.","img":"","safetylvl":"warning","extraOps":true,"advancedOp":false},{"id":19,"OpName":"Speedometer","INST":"Install speedometer by Diginix","DEINST":"Remove speedometer by Diginix","toolTip":"
Speedometer With Compass in the Application Menu.
Below the speedometer is km/h or mph, depending on the setting
Speed range up to 240 km/h
Consumption values
Optimized graphics modules with new speedometer pointer
Small speedometer needle for top speed in the analog part
The picture for the speedometer scale has different lengths or bright lines for 5, 10 and 20 km/h jumps
Right table english or german German and color / size optimized
All numbers have a slight shadow around to better stand out from the background.
On travel direction rotating compass central to the current speed
Animated overlay in the status with GPS speed and direction of travel in each menu can be prepared by touch at the clock
Latitude and longitude in the right table
When the Navi or Rear Camera is started, it automatically appears
For the small speedo in the status bar you have to install date_to_statusbar mod V2.2 too. Therefore it will be automatically selected, if not already done.","img":"mzd_SpeedoCompass.gif","safetylvl":"safe","extraOps":true,"advancedOp":false},{"id":20,"OpName":"Statusbar Tweaks","INST":"Install Statusbar Tweaks","DEINST":"Remove Statusbar Tweaks","toolTip":"
Statusbar Mods
Add some Color to your statusbar text.
Change Colors For:
App Name: Title of the app or media source.
Clock: This one is pretty self explanatory.
Status Notification: Navigation notifications
Remove Statusbar Background Image And Adjust Statusbar Opacity (From 0-1: 0 = transparent, 1 = Black) Safe for all FW Versions
Date In Status Bar Mod.
Permanently visible date + icons by the clock, even if system messages are displayed.","img":"mzd_datum_icons_all.jpg","safetylvl":"safe","extraOps":true,"advancedOp":false},{"id":22,"OpName":"FuelConsumtion Tweak","INST":"Install Fuel Consumption Tweak","DEINST":"Remove Fuel Consumption Tweak","toolTip":"
Fuel Consumption Tweak.
Additional display of KM / L (or MPG).","img":"FuelConsumtionTweak.jpg","safetylvl":"safe","extraOps":true,"advancedOp":false},{"id":23,"OpName":"Speedcam patch","INST":"Install Speedcam-Patch","DEINST":"Remove speedcam-patch","toolTip":"
Speedcam Patch.
The navigation is so patched so that database for speed cameras are accepted.. You can then copy a file 'speedcam.txt' on the SD card for the navigation, which will be imported.","img":"","safetylvl":"warning","extraOps":true,"advancedOp":false},{"id":24,"OpName":"Castscreen-receiver","INST":"Install Castscreen-Receiver","DEINST":"Remove castscreen-receiver","toolTip":"
Castscreen receiver.
After installation you can mirror the smartphone screen at the infotainment display (mirroring).
You have to install the castscreen app on your Android Phone (castscreen-1.0.apk) The app can be found in the 'config' folder of your USB drive
activate the debug mode on your smartphone
connect the smartphone with USB cable to the infotainment system
start the app settings: H264, 800x480 @ 160, 1 mbps, then input 127.0.0.1 and press input receiver, then tap Start on right-up corner.
.","img":"","safetylvl":"warning","extraOps":true,"advancedOp":false},{"id":25,"OpName":"Android Auto Headunit App","INST":"Install Android Auto Headunit App","DEINST":"Remove Android Auto Headunit App","toolTip":"
Android Car Headunit app. Android car for the infotainment system.
1. Install the Android app from google play store:HERE. 2. Connect the phone to USB and pair the phone bluetooth with the CMU 3. Manually switch to Bluetooth Audio Input. 4. Click on the AA icon under Applications Menu on the CMU 5. A black screen with credits should open up first and input 6. Android Auto will then start. If it does not, pull out the USB and start over again (or check the installation.) 7. 2 ways to stop AA - Disconnect the USB cable or use the onscreen menu 'Return to Mazda Connect' on last screen with speedo icon.. 8. Once disconnected, the back screen will remain. Press Home Button on the Mazda's Commander to close it. I had to do this because js double click wasn't working.. **What does not work:** 1. Reverse camera gets blacked out. 2. Voice Control 3. Touch drag / multi touch 4. Google Maps night mode always on.
Android Auto Patch!: No need input_filter anymore (#12)
","img":"AndroidAuto.jpg","safetylvl":"development","extraOps":true,"advancedOp":true}]}
+{"languages":{"en":{"id":1,"lang":"English"},"de":{"id":2,"lang":"German"},"fr":{"id":3,"lang":"French"},"sp":{"id":4,"lang":"Spanish"},"pl":{"id":5,"lang":"Polish"},"trk":{"id":7,"lang":"Turkish"},"slv":{"id":8,"lang":"Slovak"},"hu":{"id":9,"lang":"Hungarian"}},"helpMsgs":[{"id":0,"title":"Introduction","msg":"An Installer and uninstaller for 40+ 'Tweaks' For the Mazda MZD Infotainment System \n Mazda 2 (DJ), Mazda 3 (BM), Mazda 6 (GJ), Mazda CX-3 (DK), Mazda CX-5 (KE), Mazda MX-5 Roadster (ND) and new 2017 Mazda CX-9 (TC) Fiat Spider, Toyota ScionA
What Is MZD-AIO-TI?
My good friend Siutsch copied files from many different tweaks for his infotainment system and thought, it would be helpful if you could choose what tweaks you wanted to install or uninstall. He went on to develop a CMD based program to accomplish this and it worked well but had reached certain limitations and lacked that modern app feel. I contacted Siutsch and proposed we make the next AIO desktop app style starting with the same tweaks from AIO v1.5.x that we all know and love. I went on to develop MZD-AIO-TI. \n\n##### I personallty tested all the tweaks in my 2016 Mazda3 FW:55.00.753A-NA\n\nCurrently this app is in a BETA TEST phase in its final stages of development. I ask for 2 things from anyone who participates in testing this app before its official release: \n\n1. Give some feedback and report any bugs or major issues. \n\n2. Be cautious and mindful to what you are doing to your system while installing or unistalling tweaks. I can offer no warranty but I did include every safety precaution I know about.\n\n###### **So please, be mindful when preforming tweak installs.** \n\nThis app will automatically update.","t2":"","msg2":""},{"id":1,"title":"Tweaking","msg":"
All changes happen at your own risk!
\n Please understand that you can damage or brick your infotainment system running these tweaks! \n Anyone who is unsure should leave it alone, ask someone with experience to help or ask in the forum.
I am not responsible for damages that may incur from the use.
Having said that, MZD-AIO-TI was built with Safety in mind so there are 3 compatibility levels: \n\n - All - Compatible with all known firmware versions \n - Under58 - Only compatible with firmware versions less then 58 (ie. 55 & 56). If the compatibility is more specific than that it will be noted. \n - Development - These are tweaks that are still under development, or do not work yet. Android Auto is getting bumped up to yellow very soon, maybe even green.","t2":"Compatible Firmware Versions:","msg2":"###### 55.00.650A/753A/760A / 56.00.521A-NA(NA N) \n\n###### 56.00.100A/230A/240B/511A/512A/513C/514A-ADR(4A N) \n\n###### 56.00.100A/230A/511A/512A/513A/513B/513C-EU \n\n###### 56.00.401A/403A-JP | 56.00.100A-CHN \n\n###### 58.00.250A-NA(NA N) / 58.00.251A-ADR(4A N) \n\n59.00.326A/330A/342A/442A/443C-ADR(4A N) \n\n###### 59.00.330A/441A/443A-NA \n\n###### 59.00.330A/331A/443C/447A/449A-EU \n\n###### Only use with FirmWare Versions >= v55. DO NOT USE with V30/31/33 OR YOU WILL BRICK YOUR SYSTEM IT WILL FOREVER STAY LOOPING THE MAZDA BOOT LOGO! \n\nTo Be Safe, For now AIO-TI Will Automatically Abort The Installation If No Compadible Firmware Version Is Found. \n\nTo overide this you have to be comfortable editing tweaks.sh directly, find the code that preforms the firmware check and disable or ad your version to the list of Compatible firmwares. **Do This At Your Own Risk!**"},{"id":2,"title":"Reverting","msg":"**Almost all the tweaks** can be uninstalled to revert to the system default state.
Default Background:
\n\n - AIO creates backups of all the files that it modifies and uses those backups when reverting. AIO also contains an original version of each file just in case any of the backup files are missing. In future versions I plan to include an option to copy and store your own system's backup files into AIO as a failsafe to ensure compatability for future CMD versions.\n - In general, for all Compatible CMD versions it is safe to run uninstalls of tweaks that have not been installed BUT keep in mind that AIO will overwrite the files involved with the included failsafe backups because it will not find any available backups in the system. So try to avoid running uninstallers for tweaks that you have not installed.","t2":"What Parts Of The System Are Not Reverted By AIO?","msg2":"
MZD-AIO-TI modifies some files in the system that cannot be reverted back using this app.
\n\nThese first 3 files honestly should never be reverted because a mistake in one of these files will result in a unrecoverable bootloop. They are only modified to disable the system from triggering a reboot on error and consequently creating a bootloop, so reverting them would put your system at a high risk. **Only the first time** the installer runs on your system they are backed up and modified.\n\n**DO NOT MODIFY ANY OF THESE FILES YOURSELF, YOU WILL BREAK YOUR SYSTEM IF YOU DO**\n\n- /jci/sm/sm.conf (Also modified by the Android Auto Tweak)\n- /jci/opera/opera_home/opera.ini \n- /jci/opera/opera_dir/userjs/fps.js\n\n##### These 2 tweaks have no uninstall because the system should have had these enabled by default.\n\n- Wifi (NA Region)\n- SSH_Bringback"},{"id":3,"title":"Troubleshooting","msg":"Here are some common errors with ways to avoid them. \n#### If you keep hitting errors and/or hang ups:\n - The most common issue is a file system access error: resource busy or locked. This occurs when a file or directory cannot be modified becasue it is open or being used by another program. While compiling, close all folders and documents especially files that are actively being used by MZD-AIO-TI (*ex: '_copy_to_usb'*)\n - Try selecting fewer tweaks at a time, picking too many increases the chaces for an unexpected error. I have tested running every single tweak at once many times, if you are consistantly hitting an error please report the bug. \n - If the installer does not start in the car try reformatting your USB drive as FAT32 and make sure all other USB devices are disconnected. It helps to turn bluetooth off too. NAV SD card should be left in.","t2":"If you are having Video Player Issues","msg2":" Try:\n\n- Place your videos in a folder named 'Movies'! \n\n- Use H264 video codec and MPEG-4 AAC audio codec in video files\n\n- Unplug all other USB drives, especially one, with many MP3s on it \n\n- Copy only one mp3 on your video USB drive \n\n- Copy only a few videos on your stick (you don't have to delete, rename to *._mp4 is OK too, so that they will not found anymore) \n\n- Reboot your system and try to play a video right after that \n\n- Close the player and start again \n\n- If that doesn't work, then change the audio input.\n\n- Sometimes the first video selected lags or fails to start but pressing 'next' will sometimes start the next video.\n\n- Videos can be: MP4, AVI, FLV, WMV"},{"id":4,"title":"Contributing","msg":"Though I did build this user interface, the more valuable aspects of this project are the tweak files. Communities like Mazda3Revolution Forum out there and many developers laid down the groundwork from which this app is built and will continue to play an important role in future developments.\n\nIf you want to contributes a tweak, make sure you test your tweak thouroughly.
If you are an expert in javascript or AngularJS then feel free to fix up my code (its a little bit messy... sorry) or implement more of the ui 'The Angular Way'
Github Repo","t2":"Issues","msg2":"- FW Versions 59.xx.xxx apps do not show up in the app menu (Speedometer and Video Player) also have an issue with the date to statusbar mod (rejects on installation for effecgted FW versions.) \n- If there is not enough space free on the USB drive, you will hang up while copying to USB drive. This may happen if you are copying the swapfile on a drive that is almost full. I plan to fix this in a future version and have an error message pop up. \n- If you installed the 'No Background Behind Buttons' tweak and are going to install a color scheme, it will restore the background behind buttons. Prevent this by selecting both tweaks in the same installation.\n- The Google Translator will try to translate certain parts of the code resulting in unexpected effects. Try to use it to make a translated file with the translator to include in the next version so everything will still work when others use the language."},{"id":5,"title":"Tips & Tricks","msg":"I will include some tips that go above and beyond this app. Here are instructions how to run the CMU OS on yor computer.","t2":"Technical Talk","msg2":"This app is built with Electron and AngularJS"},{"id":6,"title":"Help & Settings","msg":"
","t2":"","msg2":""}],"FAQs":{"title":"FAQ","msg":"Frequently Asked Questions: ","q1":"Is AIO compatible with my FW version?","a1":"All compatible FW versions are listed in the 'Tweaking > Compatible Firmware Versions' section to the left in this help panel. MZD-AIO-TI will read out your FW version at beginning of installation and show if it’s not compatible (or not yet tested) and you will abort the installation at this point, for Safety.","q2":"How long does it take till the installation starts?","a2":"Tipically installation will start whithin 30 seconds to 2 minutes but it can take up to 10 minutes to begin.","q3":"If something goes wrong, how can I help you to help me?","a3":"During installation/uninstallation, a log file is created (AIO log.txt & MZD-AIO-TI info.txt) and some additional files will be copied on the USB drive. Please make a ZIP file of them (complete root of USB drive) and send that to me or upload it somewhere (e.g. google drive or so) and send me the link. Or you can download this tweak that will copy some files from your MZD system to the USB drive and send those.","q4":"Do I have to uninstall a tweak with AIO 1.x before installing it again?","a4":"No, You can install every tweak with AIO, you never have to uninstall before. MZD-AIO-TI 2.x use the same tweaks AIO 1.x and compatability was taken into consideration.","q5":"How long does the installation/uninstallation take?","a5":"Up to 10 minutes if every tweak has been selected (especially custom colors and speedcam-patch). Preforming a backup of your JCI folder can also take up to 10 minutes by itself so with everything up to 20 minutes.","q6":"What if I want to revert my system but I forgot the tweaks I've installed?","a6":"Uninstalling tweaks is safe in general, if the uninstaller dosn't find a backup, it will copy the original files from USB drive over your original files of your MZD system BUT: YOU SHOULD NOT DO THIS FOR NEW AND UNKNOWN FW VERSIONS! See: 'Reverting' section of this help panel.","q7":"I want to change the order of the audio sources?","a7":"Edit: /jci/gui/apps/system/js/systemApp.js on lines 624 - 637
* Be careful, the last line must not end with a comma, or you run in to boot loop! * I am working on modifying the tweak to give the option to make your own order without manually modifying any files.","q8":"Can I install AIO from an SD card?","a8":"No. SD card slot in the car is ONLY for satnav maps. You need to use USB port in the car, so either USB stick or USB-SD card reader with your card in it.","q9":"How do I a reboot the MZD system? ","a9":"Press NAV+MUTE for 10 seconds.","q10":"Can you write this or that tweak for us?","a10":"I have improved on many of the existing tweaks and tweaks.sh as a whole but I do have a job and Developing the GUI for this app is a pretty hefty task. That being said, I do have ideas for future tweaks and I will take suggestions but no promises. You can contact me with the contact form on the bottom right of the app."},"tourMsgs":[{"id":0,"msg":"
Welcome to MZD-AIO-TI!
Mazda All In One Tweaks Installer
An Installer And Uninstaller for 40+ 'Tweaks' For the Mazda MZD Infotainment System."},{"id":1,"msg":"These are the main Tweaks. You can choose to install or uninstall for each."},{"id":2,"msg":"This sidebar will list all the tweaks currently selected. Here will appear extra options and you can also click any item in this list for help information."},{"id":3,"msg":"Additional actions such as backup jci folder & enable wifi for North American versions."},{"id":4,"msg":"These options can be restored to original state by selecting their default options."},{"id":5,"msg":"The menus have more help topics and links to resources and documentation."},{"id":6,"msg":"When all your tweaks have been selected, click this button to compile and go!"},{"id":7,"msg":"Copy the entire contents of the \"_copy_to_usb\" folder onto a blank, FAT32 format USB Flash Drive. Plug the drive into the car's usb port, the installer will start automatically after a few minutes. Remove any other USB devices but The NAV SD card should remain plugged into the car. Turning off bluetooth and wifi help as well. After the installation is complete the system will reboot, then you can remove the USB drive and your changes will be applied."},{"id":8,"msg":"For more information visit MazdaTweaks.com!"}],"popupMsgs":[{"id":0,"msg":"Compiling... Please Wait..."},{"id":1,"msg":"Location of Tweak Files"},{"id":2,"msg":"(For best results, erase USB drive prior to copying)"},{"id":3,"msg":"Copy to USB Drive"},{"id":4,"msg":"Not Yet"},{"id":5,"msg":"Open USB Drive"},{"id":6,"msg":"USB drives Found"},{"id":7,"msg":"Do you want to copy files to USB drive"},{"id":8,"msg":"Choose a USB drive to copy files onto"},{"id":9,"msg":"No available USB drives found. Copy the entire contents of"},{"id":10,"msg":"onto a blank, FAT32 formatted USB flash drive"},{"id":11,"msg":"Copying to USB Drive"},{"id":12,"msg":"Please Wait"},{"id":13,"msg":"Unzipping Swapfile To"},{"id":14,"msg":"This takes a few minutes... be patient."},{"id":15,"msg":"Swapfile size is 1 GB."},{"id":16,"msg":"While you wait, here is some information"},{"id":17,"msg":"Start Over"},{"id":18,"msg":"View AIO Compile Log"},{"id":19,"msg":"Exit"},{"id":20,"msg":"Success!"},{"id":21,"msg":"Delete _copy_to_usb Folder After Copying"}],"mainOps":{"wifi":{"id":0,"label":"Enable WIFI","safetylvl":"safe","toolTip":"
WIFI
Enables WIFI for North America Region"},"backup":{"id":1,"label":"Backup JCI Folder","safetylvl":"safe","toolTip":"
Backup JCI
Do backup of JCI folder before installing tweaks."},"background":{"id":2,"label":"Background Image","safetylvl":"safe","toolTip":"
Background
Change your Infotainment background to your own custom image. Supported image formats are: jpg, jpeg, and png (any size). Note: If single img is chosen, the image will be resized to 800px x 480px BUT NOT CROPPED and converted .png format. To change the background image back to original, choose 'Default Background.","img":"cic.jpg"},"colors":{"id":3,"label":"Custom Infotainment Colors","safetylvl":"safe","toolTip":"
Custom Color Schemes:
Changes your Infotainment color scheme from Red (default) to one the following colors:
Blue
Green
Orange
Pink
Purple
Silver
Yellow
Smooth Red
Themes: Themes only replace the main menu coins. When installed over a color scheme, the custom colors will remain with the theme. Included Themes:
carOS
Storm Troopers
Poker
Mazda Logos
Floating Logo
X-Men
PROTIP: Delete all the images that you do not want to change. It can be as little as deleting one folder or as much as deleting every image except one. ","toolTip2":"
The Custom Theme Option:
Use any theme designed for the MZD Infotainment System or easily apply your own Custom Made Theme.
To use any theme: download and unzip the theme
Import the config/jci/ folder from the theme into AIO.
NOTE: Using This Method Will Copy Only .png Files For Themes
Using Your Own Custom Made Theme:
If no theme is chosen: a folder will be generated here: _copy_to_usb/config/color-schemes/theme/jci/
After compiling tweaks, copy your files into the generated jci folder in the same directory location of the images you want to replace.
WARNING: WHEN USING THIS METHOD EVERYTHING IN THE JCI FOLDER WILL BE COPIED ONTO YOUR SYSTEM IN THE SAME LOCATION. USE RESPONSIBLY.
**No removing possible!** With FW 56.00.511 Mazda has removed SSH access. With SSH_bringback this will be reinstalled. This tweak will still only be installed if FW 56.00.511 is recognized, if it's 56.00.230, nothing happens."},"sdcid":{"id":5,"label":"SD CID","safetylvl":"safe","toolTip":"
SD CID
Gets the CID from the Nav SD card if available."},"backgroundrotator":{"id":6,"label":"Background Rotator","btntxt":"Join Images","button":"Click To Join Images For Your Background To Rotate Through","safetylvl":"safe","toolTip":"
Background Rotator Tweak.
Cycles through 10 Backgrounds over 10 minutes (600 seconds - 60 seconds per background). Note: After installing this tweak, you can change your joined background multiple times without installing again. To Revert back to a single background uninstall this tweak."},"retain":{"id":7,"label":"Copy Backups","testlabel":"Test Backups","safetylvl":"safe","toolTip":"
Copy Backups:
Copy original backups of modified system files, for safe keeping.
Test Backups:
Some tweaks have before and after copys of the files modified during the instalation. If you like that kind of thing they will copied to your-usb/bakups/test/.
Use Legacy App Install
The new and improved way to install apps is done with NodeJS. Check to use the old method of installing apps using bash."},"mainmenu":{"id":8,"label":"Main Menu Tweaks","safetylvl":"safe","toolTip":"
Background Image when \"Turn Display Off and Show Clock\" is chosen in the Settings menu. Also shown during system shutdown."}},"menu":{"save":{"menuId":"0","label":"Save","toolTip":"Save Current Configuration."},"load":{"menuId":"1","label":"Load","toolTip":"Load Last Saved Configuration"},"tour":{"menuId":"2","label":"Tour","toolTip":"Take a Tour of MZD-AIO-TI"},"lastcompilelog":{"menuId":"3","label":"Last Compile Log","toolTip":"MZD_LOG"},"installall":{"menuId":"4","label":"Install All","toolTip":"Install All Except: Android Auto and Castscreen."},"uninstallall":{"menuId":"5","label":"Uninstall All","toolTip":"Uninstall All Tweaks."},"resetoptions":{"menuId":"6","label":"Reset Options","toolTip":"Reset Checked Options."},"reloadapp":{"menuId":"17","label":"Reload App","toolTip":"Reload the app."},"copytousb":{"menuId":"8","label":"_copy_to_usb","toolTip":"Open _copy_to_usb Folder"},"help":{"menuId":"9","label":"Help","toolTip":"Click tweak name for help."},"install":{"menuId":"10","label":"Install"},"uninstall":{"menuId":"11","label":"Uninstall"},"languages":{"menuId":"12","label":"Languages"},"close":{"menuId":"13","label":"Close"},"clickforhelp":{"menuId":"14","label":"Click For Help"},"tweakstoinstall":{"menuId":"15","label":"Tweaks To Install"},"file":{"menuId":"18","label":"File"},"window":{"menuId":"19","label":"Window"},"download":{"menuId":"20","label":"Download"},"fullscreen":{"menuId":"20","label":"Fullscreen"},"translator":{"menuId":"21","label":"Translator"},"dlcolors":{"menuId":"22","label":"Download Color Scheme Files"},"dlspeedcam":{"menuId":"22","label":"Download Speedcam Patch Files"},"helppanel":{"menuId":"23","label":"Help Panel"},"changelog":{"menuId":"24","label":"Changelog"},"start":{"menuId":"16","label":"Start Compilation","toolTip":"
Ready?
Start The Compilation!"},"centerwindow":{"menuId":"17","label":"Center Window","toolTip":"Reset Window Size and Position"}},"imgOps":[{"id":0,"label":"Join multiple images for your infotainment background"},{"id":1,"label":"Select up to 50, 480px X 800px Images (Each Image will be resized to 480x800). Background Rotator Will Show Each Background For X Seconds (Max 300 Seconds = 5 Minutes per img)."},{"id":2,"label":"Drag images to change order."},{"id":3,"label":"images selected"},{"id":4,"label":"You need to choose some images to join (Each will be resized to height: 480px, width: 800px) or "},{"id":5,"label":"Use Your Own Joined Image (No Resize)"},{"id":6,"label":"This image wil replace your infotainment background."},{"id":7,"label":"Save Image As"},{"id":8,"label":"Make Another"},{"id":9,"label":"Right-click > Save Image saves a copy of background.png to your downloads folder."},{"id":10,"label":"Minutes"},{"id":11,"label":"Select Images"},{"id":12,"label":"Images"}],"translatorWindow":[{"label":"Language Translator"},{"label":"Reset to Default"},{"label":"Enter Language Name (file will save as"},{"label":"in your 'documents' folder"},{"label":"Email translated files to"},{"label":"Pull Request"},{"label":"loading"},{"label":"Saved in 'Documents'"},{"label":"Show In Explorer"},{"label":"Load File"},{"label":"This section was designed for easily translating this app into many languages."},{"label":"Choose a translation file to edit"},{"label":"Enter name of the translated language"},{"label":"BACK"},{"label":"Save (To Documents)."},{"label":"Auto-Save"}],"colors":{"red":{"id":0,"label":"Red (Default)"},"blue":{"id":1,"label":"Blue"},"green":{"id":2,"label":"Green"},"silver":{"id":3,"label":"Silver"},"pink":{"id":4,"label":"Pink"},"purple":{"id":5,"label":"Purple"},"orange":{"id":6,"label":"Orange"},"yellow":{"id":7,"label":"Yellow"},"smoothred":{"id":9,"label":"Smooth Red"},"caros":{"id":8,"label":"CarOS"},"stormtroopers":{"id":10,"label":"Storm Troopers"},"poker":{"id":11,"label":"Poker"},"mazdalogos":{"id":12,"label":"Mazda Logos"},"floating":{"id":13,"label":"Floating Logo"},"xmen":{"id":14,"label":"X-Men"},"custom":{"id":15,"label":"Custom Theme"}},"statusbar":{"main":{"id":0,"label":"Remove Statusbar Background"},"opacity":{"id":1,"label":"Statusbar Opacity"},"app":{"id":2,"label":"App Title"},"clock":{"id":3,"label":"Clock"},"notif":{"id":4,"label":"Status Notifications"},"d2sbinst":{"id":5,"label":"Date To Statusbar Mod"},"d2sbuninst":{"id":6,"label":"Remove Date To Statusbar Mod"}},"uistyle":{"body":{"id":0,"label":"Body Text (Audio Artist & Album)"},"listitem":{"id":1,"label":"List Item"},"listitemdisabled":{"id":2,"label":"Disabled List Item"},"title":{"id":3,"label":"Song Title"},"radio":{"id":4,"label":"Radio Station"},"main3d":{"id":5,"label":"3D Main Menu Text"},"ellipse":{"id":6,"label":"Remove Ellipse"},"altlayout":{"id":7,"label":"'Star Points' Layout"},"shadow":{"id":8,"label":"Text Shadow"},"altulayout":{"id":9,"label":"'Inverted' Layout"},"minicoins":{"id":10,"label":"Smaller 'Coins'"}},"speedcamOps":[{"id":0,"label":"Europe With Mobile Cameras"},{"id":1,"label":"Europe Without Mobile Cameras"},{"id":2,"label":"Germany With Mobile Cameras"},{"id":3,"label":"Germany Without Mobile Cameras"},{"id":4,"label":"Turkey"},{"id":5,"label":"Use Your Own speedcam.txt file"}],"disclaimOps":[{"id":0,"label":"Remove Completely"},{"id":1,"label":"Reduce Time To 0.5 seconds"}],"fuelOps":[{"id":0,"label":"Km/L"},{"id":1,"label":"MPG"}],"d2sbOps":[{"id":0,"label":"V1.0"},{"id":1,"label":"v3.3 (Date Localized)"},{"id":2,"label":"V3.3 (dd.mm.)"},{"id":3,"label":"V3.3 (mm/dd)"}],"speedoOps":{"lang":{"en":{"id":0,"label":"English"},"de":{"id":1,"label":"German"},"sp":{"id":2,"label":"Spanish"},"pl":{"id":3,"label":"Polish"},"sl":{"id":4,"label":"Slovak"},"tk":{"id":5,"label":"Turkish"},"fr":{"id":6,"label":"French"},"it":{"id":7,"label":"Italian"}},"xph":{"mph":{"id":10,"label":"MPH"},"kmh":{"id":11,"label":"KM/H"}},"sml":{"gps":{"id":20,"label":"GPS Values"},"car":{"id":21,"label":"Car Values"},"none":{"id":22,"label":"Do Not Activate"}},"bg":{"ind":{"id":30,"label":"Individual Background"},"orig":{"id":31,"label":"Original Background"}},"opac":{"id":40,"val":"0","label":"Black Background Opacity? (To Reduce Visibility of Custom MZD Background Image) 0.0 (Fully Transparent) - 1.0 (Completely Black)"}},"tweakOps":[{"id":1,"OpName":"Touchscreen While Moving","INST":"Enable the touchscreen while moving","DEINST":"Disable the touchscreen again while moving","toolTip":"
Touchscreen
Allows the use of the touchscreen while driving. Fix Cluster Compass: Some things will be disabled while driving but the touchscreen itself and the cluster compass will work","img":"","safetylvl":"safe","extraOps":true,"advancedOp":false},{"id":2,"OpName":"No More Disclaimer","INST":"Remove disclaimer completely","DEINST":"Restore disclaimer (to 3.5 seconds)","toolTip":"
No More Disclaimer
Completely remove the disclaimer or reduce the expansion time of the disclaimer from 3.5 to 0.5 seconds.","img":"","safetylvl":"safe","extraOps":true,"advancedOp":false},{"id":3,"OpName":"Reverse Camera Safety Warning","INST":"Remove the reverse camera safety warning","DEINST":"Restore the safety warning label to the reverse camera","toolTip":"
Reverse Camera Safety Warning
No security warning at the bottom when activating the rear camera.","img":"","safetylvl":"safe","extraOps":false,"advancedOp":false},{"id":4,"OpName":"Semi-transparent parking sensor graphics","INST":"Install semi-transparent parking sensor graphics","DEINST":"Remove semi-transp. parking sensor graphics f. proximity sensors","toolTip":"
Semi-Transparent Parking Sensor Graphics.
Semitransparent parking sensor graphics for proximity sensors.. When activating the rear camera, the car is displayed at the top right corner.#The graphics now appear semitransparent by installing tweak.","img":"semi-transparent_parking-sensors.jpg","safetylvl":"safe","extraOps":false,"advancedOp":false},{"id":5,"OpName":"Main Menu Loop","INST":"Install main_menu_loop","DEINST":"Remove main_menu_loop","toolTip":"
Main Menu Loop.
Loop for the main menu. You can jump from left to far right, and vice versa.","img":"","safetylvl":"safe","extraOps":false,"advancedOp":false},{"id":6,"OpName":"Improved List Loop","INST":"Install improved_list_loop","DEINST":"Remove improved_list_loop","toolTip":"
Improved List Loop.
Loop for all lists and submenu (music, contacts, etc.). You can now jump from the top position of a list to the bottom and vice versa.","img":"","safetylvl":"safe","extraOps":false,"advancedOp":false},{"id":7,"OpName":"Shorter Delay Mod","INST":"Install shorter_delay_mod","DEINST":"Remove shorter_delay_mod","toolTip":"
Shorter Delay Mod.
Reduces the waiting time for switching between pages with the multi commander from 1.5 to 0.3 seconds. Uninstalling Improved List Loop will also uninstall this mod.","img":"","safetylvl":"safe","extraOps":false,"advancedOp":false},{"id":8,"OpName":"Media Order Patch & FLAC Support","INST":"Enable media_order patch and FLAC support","DEINST":"Remove media_order_patching","toolTip":"
Media Order Patching and FLAC Support
Music will be sorted alphabetically and not by date with new entries first. Support for audio format FLAC.","img":"","safetylvl":"warning","extraOps":false,"advancedOp":false},{"id":9,"OpName":"Order of Audio Source List","INST":"Change order of the audio source list","DEINST":"Restore order of audio source list back to original","toolTip":"
Change Order of the Audio Source List.
The order of the audio source list is arranged as follows:.
FMRadio
DAB
USB_A
USB_B
btaudio
CD
SatRadio
AhaRadio
Pandora
Stitcher
AuxIn
amradio
DVD
TV
","img":"","safetylvl":"warning","extraOps":false,"advancedOp":false},{"id":10,"OpName":"Pause on mute","INST":"Install pause_on_mute","DEINST":"Remove pause_on_mute","toolTip":"
Pause On Mute.
When pressing mute (pressing the volume button) played media are also paused.","img":"","safetylvl":"safe","extraOps":false,"advancedOp":false},{"id":11,"OpName":"Remove Message Reply","INST":"Remove automatic message replies","DEINST":"Restore automatic message replies","toolTip":"
Remove Message Replies
Removes the text 'Sent from my Mazda Quick Text System' if answering messages.","img":"","safetylvl":"safe","extraOps":false,"advancedOp":false},{"id":12,"OpName":"1 Sec Diag Menu","INST":"Install 1 second diagnostic menu","DEINST":"Remove 1 sec. diagnostic menu","toolTip":"
1 Sec Diag Menu
Allows you to open the diagnostic menu by touching the clock at the top right of the display settings menu for one second.","img":"","safetylvl":"warning","extraOps":false,"advancedOp":false},{"id":13,"OpName":"Boot Animation","INST":"Disable boot animation","DEINST":"Boot Animation enable again","toolTip":"
Boot Animation
The boot animation that leads to the menu with the red buttons will be disabled.","img":"","safetylvl":"safe","extraOps":false,"advancedOp":false},{"id":14,"OpName":"Bigger Album Art","INST":"Install bigger album art cover","DEINST":"Album art cover back to original","toolTip":"
Bigger Album Art
You get a bigger album art graphic.","img":"","safetylvl":"safe","extraOps":false,"advancedOp":false},{"id":15,"OpName":"No Background Behind Buttons","INST":"Remove the background behind buttons","DEINST":"Background behind buttons back to original","toolTip":"
No Background Behind Buttons
Remove the background behind the buttons.","img":"NoButtonBackground.jpg","safetylvl":"safe","extraOps":false,"advancedOp":false},{"id":16,"OpName":"Change Blank Album Art Frame","INST":"Remove the blank album art frame","DEINST":"Restore the blank album art frame","toolTip":"
Change Blank Album Art Frame
The empty album cover frame is removed, which is displayed when there is no entry in the Gracenote database for the artist. Then the image of a radio is displayed, if there is no cover in the MP3 tag too. Supported image formats are: jpg, jpeg, and png (any size). Note: The image chosen will be resized to 146px x 146px BUT NOT CROPPED and converted .png format","img":"","safetylvl":"safe","extraOps":true,"advancedOp":false},{"id":17,"OpName":"Videoplayer","INST":"Install videoplayer","DEINST":"Remove videoplayer","toolTip":"
Videoplayer
Add videoplayer app to the application menu.","img":"","safetylvl":"safe","extraOps":false,"advancedOp":false},{"id":18,"OpName":"Swapfile","INST":"Generate swapfile for media player v2","DEINST":"Remove swapfile","toolTip":"
Swapfile
The installation of the swap file must be done on a USB drive with music and/or movies, that remains in the car.. The installation files are automatically deleted, the drive may no longer be removed during operation, because the system will use it also as memory.. Only remove the USB drive if the MZD system is off.","img":"","safetylvl":"warning","extraOps":true,"advancedOp":false},{"id":19,"OpName":"Speedometer","INST":"Install speedometer by Diginix","DEINST":"Remove speedometer by Diginix","toolTip":"
Speedometer With Compass in the Application Menu.
Below the speedometer is km/h or mph, depending on the setting
Speed range up to 240 km/h
Consumption values
Optimized graphics modules with new speedometer pointer
Small speedometer needle for top speed in the analog part
The picture for the speedometer scale has different lengths or bright lines for 5, 10 and 20 km/h jumps
Right table english or german German and color / size optimized
All numbers have a slight shadow around to better stand out from the background.
On travel direction rotating compass central to the current speed
Animated overlay in the status with GPS speed and direction of travel in each menu can be prepared by touch at the clock
Latitude and longitude in the right table
When the Navi or Rear Camera is started, it automatically appears
For the small speedo in the status bar you have to install date_to_statusbar mod V2.2 too. Therefore it will be automatically selected, if not already done.","img":"mzd_SpeedoCompass.gif","safetylvl":"safe","extraOps":true,"advancedOp":false},{"id":20,"OpName":"Statusbar Tweaks","INST":"Install Statusbar Tweaks","DEINST":"Remove Statusbar Tweaks","toolTip":"
Statusbar Mods
Add some Color to your statusbar text.
Change Colors For:
App Name: Title of the app or media source.
Clock: This one is pretty self explanatory.
Status Notification: Navigation notifications
Remove Statusbar Background Image And Adjust Statusbar Opacity (From 0-1: 0 = transparent, 1 = Black) Safe for all FW Versions
Date In Status Bar Mod.
Permanently visible date + icons by the clock, even if system messages are displayed.","img":"mzd_datum_icons_all.jpg","safetylvl":"safe","extraOps":true,"advancedOp":false},{"id":22,"OpName":"FuelConsumtion Tweak","INST":"Install Fuel Consumption Tweak","DEINST":"Remove Fuel Consumption Tweak","toolTip":"
Fuel Consumption Tweak.
Additional display of KM / L (or MPG).","img":"FuelConsumtionTweak.jpg","safetylvl":"safe","extraOps":true,"advancedOp":false},{"id":23,"OpName":"Speedcam patch","INST":"Install Speedcam-Patch","DEINST":"Remove speedcam-patch","toolTip":"
Speedcam Patch.
The navigation is so patched so that database for speed cameras are accepted.. You can then copy a file 'speedcam.txt' on the SD card for the navigation, which will be imported.","img":"","safetylvl":"warning","extraOps":true,"advancedOp":false},{"id":24,"OpName":"Castscreen-receiver","INST":"Install Castscreen-Receiver","DEINST":"Remove castscreen-receiver","toolTip":"
Castscreen receiver.
After installation you can mirror the smartphone screen at the infotainment display (mirroring).
You have to install the castscreen app on your Android Phone (castscreen-1.0.apk) The app can be found in the 'config' folder of your USB drive
activate the debug mode on your smartphone
connect the smartphone with USB cable to the infotainment system
start the app settings: H264, 800x480 @ 160, 1 mbps, then input 127.0.0.1 and press input receiver, then tap Start on right-up corner.
.","img":"","safetylvl":"warning","extraOps":true,"advancedOp":false},{"id":25,"OpName":"Android Auto Headunit App","INST":"Install Android Auto Headunit App","DEINST":"Remove Android Auto Headunit App","toolTip":"
Android Car Headunit app. Android car for the infotainment system.
1. Install the Android app from google play store:HERE. 2. Connect the phone to USB and pair the phone bluetooth with the CMU 3. Manually switch to Bluetooth Audio Input. 4. Click on the AA icon under Applications Menu on the CMU 5. A black screen with credits should open up first and input 6. Android Auto will then start. If it does not, pull out the USB and start over again (or check the installation.) 7. 2 ways to stop AA - Disconnect the USB cable or use the onscreen menu 'Return to Mazda Connect' on last screen with speedo icon.. 8. Once disconnected, the back screen will remain. Press Home Button on the Mazda's Commander to close it. I had to do this because js double click wasn't working.. **What does not work:** 1. Reverse camera gets blacked out. 2. Voice Control 3. Touch drag / multi touch 4. Google Maps night mode always on.
Android Auto Patch!: No need input_filter anymore (#12)
","img":"AndroidAuto.jpg","safetylvl":"development","extraOps":true,"advancedOp":true}]}
diff --git a/app/lang/french.aio.json b/app/lang/french.aio.json
index bb9b391..02052b3 100644
--- a/app/lang/french.aio.json
+++ b/app/lang/french.aio.json
@@ -33,57 +33,49 @@
"lang": "Hongrie"
}
},
- "helpMsgs": [
- {
- "id": 0,
- "title": "Introduction",
- "msg": "Installer et desintaller plus de 40 'Tweaks' pour votre Mazda MZD Infotainment System \n Mazda 2 (DJ), Mazda 3 (BM), Mazda 6 (GJ), Mazda CX-3 (DK), Mazda CX-5 (KE), Mazda MX-5 Roadster (ND) et la nouvelle 2017 Mazda CX-9 (TC) Fiat Spider, Toyota ScionA
\nQu'est-ce MZD-AIO-TI?
\nMon bon ami Siutsch a copié des fichiers de différents nombreux réglages pour son système d'infotainment et a pensé qu'il serait utile si vous pouviez choisir quels réglages vous souhaitez installer ou désinstaller. Il a continué à développer un programme basé sur CMD pour accomplir cette tâche, il fonctionnait très bien mais avait atteint certaines limitations et manquait ce look d'application moderne. J'ai contacté Siutsch et lui ai proposé que nous faisions le prochain AIO desktop app style avec les mêmes réglages de AIO v1.5.x que nous connaissons et aimons tous. J'ai ensuite développé MZD-AIO-TI.\n\n S'il vous plaît, soyez conscient lorsque vous installer les tweak. ** Cette application sera automatiquement mise à jour. \n\nThis program is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version.\n\nThis program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the Copyleft Under The GNU General Public License for more details.",
- "t2": "",
- "msg2": ""
- },
- {
- "id": 1,
- "title": "Tweaking",
- "msg": "
Tous les changements sont à vos risques!
\n SVP, veuillez comprendre que vous pouvez endommager ou casser votre infotainment system en utilisant ces tweaks! Toute personnes qui n'est pas sûr de ce qu'elle fait doit demander de l'aide à un utilisateur avec de l'expérience ou demande de l'aide sur le forum.
Je ne suis pas résponsable des dommages causé par l'utilisation.
Cela dit, MZD-AIO-TI a été construit avec la sécurité à l'esprit il y a 3 niveaux de sécurité basée sur la quantité ou la partie du système est modifié: - Sûr - Très testé et accepté comme relativement sûr - Avertissement - Modifie le système sensible Fichiers ou je ne me suis pas encore testé. Surtout sûr, mais utiliser avec prudence! La plupart d'entre eux finiront par être rebaptisés. - Développement - Ce sont des ajustements qui sont encore en développement, ou ne fonctionnent pas encore. Seul Android Auto est actuellement à ce niveau et récemment le problème a été résolu.",
- "t2": "Version compatible des Firmwares :",
- "msg2": "###### 55.00.650A/753A/760A / 56.00.521A-NA(NA N) \n\n###### 56.00.100A/230A/240B/511A/512A/513C/514A-ADR(4A N) \n\n###### 56.00.100A/230A/511A/512A/513A/513B/513C-EU \n\n###### 56.00.401A/403A-JP | 56.00.100A-CHN \n\n###### 58.00.250A-NA(NA N) / 58.00.251A-ADR(4A N) \n\n59.00.326A/330A/342A/442A/443C-ADR(4A N) \n\n###### 59.00.330A/441A/443A/446A/450A-NA(N NA) \n\n###### 59.00.330A/331A/443C/447A/449A-EU \n\n###### \n\nUtiliser uniquement avec Firmware Versions> = v55. N'UTILISEZ PAS avec V30 / 31/33 OU VOUS CASSEREZ VOTRE SYSTÈME, IL PARTIRA EN BOUCLE SUR LE MAZDA BOOT! Pour être sûr, AIO-TI annulera automatiquement l'installation si aucune version de microprogramme n'est trouvée. Pour surmonter cela, vous devez être à l'aise tweaks.sh directement, trouver le code qui bloque la verification du firmware et désactiver ou ajouter votre version à la liste des firmwares compatibles. ** Vous faites ceci à vos propres risques! **"
- },
- {
- "id": 2,
- "title": "Reverting",
- "msg": "**Almost all the tweaks** can be uninstalled to revert to the system default state.
Default Background:
\n\n - AIO creates backups of all the files that it modifies and uses those backups when reverting. AIO also contains an original version of each file just in case any of the backup files are missing. In future versions I plan to include an option to copy and store your own system's backup files into AIO as a failsafe to ensure compatability for future CMD versions.\n - In general, for all Compatible CMD versions it is safe to run uninstalls of tweaks that have not been installed BUT keep in mind that AIO will overwrite the files involved with the included failsafe backups because it will not find any available backups in the system. So try to avoid running uninstallers for tweaks that you have not installed.",
- "t2": "What Parts Of The System Are Not Reverted By AIO?",
- "msg2": "
MZD-AIO-TI modifies some files in the system that cannot be reverted back using this app.
\n\nThese first 3 files honestly should never be reverted because a mistake in one of these files will result in a unrecoverable bootloop. They are only modified to disable the system from triggering a reboot on error and consequently creating a bootloop, so reverting them would put your system at a high risk. **Only the first time** the installer runs on your system they are backed up and modified.\n\n**DO NOT MODIFY ANY OF THESE FILES YOURSELF, YOU WILL BREAK YOUR SYSTEM IF YOU DO**\n\n- /jci/sm/sm.conf (Also modified by the Android Auto Tweak)\n- /jci/opera/opera_home/opera.ini \n- /jci/opera/opera_dir/userjs/fps.js\n\n##### These 2 tweaks have no uninstall because the system should have had these enabled by default.\n\n- Wifi (NA Region)\n- SSH_Bringback"
- },
- {
- "id": 3,
- "title": "Troubleshooting",
- "msg": "Here are some common errors with ways to avoid them. \n#### If you keep hitting errors and/or hang ups:\n - The most common issue is a file system access error: resource busy or locked. This occurs when a file or directory cannot be modified becasue it is open or being used by another program. While compiling, close all folders and documents especially files that are actively being used by MZD-AIO-TI (*ex: '_copy_to_usb'*)\n - Try selecting fewer tweaks at a time, picking too many increases the chaces for an unexpected error. I have tested running every single tweak at once many times, if you are consistantly hitting an error please report the bug. \n - If the installer does not start in the car try reformatting your USB drive as FAT32 and make sure all other USB devices are disconnected. It helps to turn bluetooth off too. NAV SD card should be left in.",
- "t2": "If you are having Video Player Issues",
- "msg2": " Try:\n\n- Place your videos in a folder named 'Movies'! \n\n- Use H264 video codec and MPEG-4 AAC audio codec in video files\n\n- Unplug all other USB drives, especially one, with many MP3s on it \n\n- Copy only one mp3 on your video USB drive \n\n- Copy only a few videos on your stick (you don't have to delete, rename to *._mp4 is OK too, so that they will not found anymore) \n\n- Reboot your system and try to play a video right after that \n\n- Close the player and start again \n\n- If that doesn't work, then change the audio input.\n\n- Sometimes the first video selected lags or fails to start but pressing 'next' will sometimes start the next video.\n\n- Videos can be: MP4, AVI, FLV, WMV"
- },
- {
- "id": 4,
- "title": "Contributing",
- "msg": "Though I did build this user interface, the more valuable aspects of this project are the tweak files. Communities like Mazda3Revolution Forum out there and many developers laid down the groundwork from which this app is built and will continue to play an important role in future developments.\n\nIf you want to contributes a tweak, make sure you test your tweak thouroughly.
If you are an expert in javascript or AngularJS then feel free to fix up my code (its a little bit messy... sorry) or implement more of the ui 'The Angular Way'
Github Repo",
- "t2": "Issues",
- "msg2": "- FW Versions 59.xx.xxx apps do not show up in the app menu (Speedometer and Video Player) also have an issue with the date to statusbar mod (rejects on installation for effecgted FW versions.) \n- If there is not enough space free on the USB drive, you will hang up while copying to USB drive. This may happen if you are copying the swapfile on a drive that is almost full. I plan to fix this in a future version and have an error message pop up. \n- If you installed the 'No Background Behind Buttons' tweak and are going to install a color scheme, it will restore the background behind buttons. Prevent this by selecting both tweaks in the same installation.\n- The Google Translator will try to translate certain parts of the code resulting in unexpected effects. Try to use it to make a translated file with the translator to include in the next version so everything will still work when others use the language."
- },
- {
- "id": 5,
- "title": "Tips & Tricks",
- "msg": "I will include some tips that go above and beyond this app.
First of all uninstall Android Auto from your system. Click the CMU-Autorun link above and download the repository (download button is on the top right next to \"Find File\"). Copy the \"installer\" Folder to a blank USB drive to install the autorun script, this script will run every time the system boots up. The script looks at the root of the SD card (if available) for a file called \"run.sh\" and if found, executes the file. After installing, copy the \"dryrun\" folder onto an SD card to test that the installation worked correctly.
AA - Copy the contents of the \"headunit\" folder to the root of a blank SD card, connect before booting up infotanment system, a message will show the first time to confirm it is running. \nPlug in an Android Auto compatible phone to start.
Caveats: The device with the headunit files must be connected before booting up the infotainment system to run. Once the headunit app is running it is loaded into memory and will silently run in the background, this means that even if you remove the SD card the headunit app will still be running in memory. To stop the process you can do one of these things:
Turn off the vehicle for about 5-10 minutes
Hard reset (hold: mute + nav + back)
Login SSH, enter command 'killall headunit'
Want to run tweaks from an SD card?
With autorun script installed copy tweak files to an SD card. Rename \"tweaks.sh\" to \"run.sh\". Boot up the system and tweaks will run as expected. NOTE: I/O to SD card is slower than USB so installation will take longer.",
- "t2": "Technical Talk",
- "msg2": "This app is built with Electron and AngularJS"
- },
- {
- "id": 6,
- "title": "Help & Settings",
- "msg": "
",
- "t2": "",
- "msg2": ""
- }
- ],
+ "helpMsgs": [{
+ "id": 0,
+ "title": "Introduction",
+ "msg": "Installer et desintaller plus de 40 'Tweaks' pour votre Mazda MZD Infotainment System \n Mazda 2 (DJ), Mazda 3 (BM), Mazda 6 (GJ), Mazda CX-3 (DK), Mazda CX-5 (KE), Mazda MX-5 Roadster (ND) et la nouvelle 2017 Mazda CX-9 (TC) Fiat Spider, Toyota ScionA
\nQu'est-ce MZD-AIO-TI?
\nMon bon ami Siutsch a copié des fichiers de différents nombreux réglages pour son système d'infotainment et a pensé qu'il serait utile si vous pouviez choisir quels réglages vous souhaitez installer ou désinstaller. Il a continué à développer un programme basé sur CMD pour accomplir cette tâche, il fonctionnait très bien mais avait atteint certaines limitations et manquait ce look d'application moderne. J'ai contacté Siutsch et lui ai proposé que nous faisions le prochain AIO desktop app style avec les mêmes réglages de AIO v1.5.x que nous connaissons et aimons tous. J'ai ensuite développé MZD-AIO-TI.\n\n S'il vous plaît, soyez conscient lorsque vous installer les tweak. ** Cette application sera automatiquement mise à jour. \n\nThis program is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version.\n\nThis program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the Copyleft Under The GNU General Public License for more details.",
+ "t2": "",
+ "msg2": ""
+ }, {
+ "id": 1,
+ "title": "Tweaking",
+ "msg": "
Tous les changements sont à vos risques!
\n SVP, veuillez comprendre que vous pouvez endommager ou casser votre infotainment system en utilisant ces tweaks! Toute personnes qui n'est pas sûr de ce qu'elle fait doit demander de l'aide à un utilisateur avec de l'expérience ou demande de l'aide sur le forum.
Je ne suis pas résponsable des dommages causé par l'utilisation.
Cela dit, MZD-AIO-TI a été construit avec la sécurité à l'esprit il y a 3 niveaux de sécurité basée sur la quantité ou la partie du système est modifié: - Sûr - Très testé et accepté comme relativement sûr - Avertissement - Modifie le système sensible Fichiers ou je ne me suis pas encore testé. Surtout sûr, mais utiliser avec prudence! La plupart d'entre eux finiront par être rebaptisés. - Développement - Ce sont des ajustements qui sont encore en développement, ou ne fonctionnent pas encore. Seul Android Auto est actuellement à ce niveau et récemment le problème a été résolu.",
+ "t2": "Version compatible des Firmwares :",
+ "msg2": "###### 55.00.650A/753A/760A / 56.00.521A-NA(NA N) \n\n###### 56.00.100A/230A/240B/511A/512A/513C/514A-ADR(4A N) \n\n###### 56.00.100A/230A/511A/512A/513A/513B/513C-EU \n\n###### 56.00.401A/403A-JP | 56.00.100A-CHN \n\n###### 58.00.250A-NA(NA N) / 58.00.251A-ADR(4A N) \n\n59.00.326A/330A/342A/442A/443C-ADR(4A N) \n\n###### 59.00.330A/441A/443A/446A/450A-NA(N NA) \n\n###### 59.00.330A/331A/443C/447A/449A-EU \n\n###### \n\nUtiliser uniquement avec Firmware Versions> = v55. N'UTILISEZ PAS avec V30 / 31/33 OU VOUS CASSEREZ VOTRE SYSTÈME, IL PARTIRA EN BOUCLE SUR LE MAZDA BOOT! Pour être sûr, AIO-TI annulera automatiquement l'installation si aucune version de microprogramme n'est trouvée. Pour surmonter cela, vous devez être à l'aise tweaks.sh directement, trouver le code qui bloque la verification du firmware et désactiver ou ajouter votre version à la liste des firmwares compatibles. ** Vous faites ceci à vos propres risques! **"
+ }, {
+ "id": 2,
+ "title": "Reverting",
+ "msg": "**Almost all the tweaks** can be uninstalled to revert to the system default state.
Default Background:
\n\n - AIO creates backups of all the files that it modifies and uses those backups when reverting. AIO also contains an original version of each file just in case any of the backup files are missing. In future versions I plan to include an option to copy and store your own system's backup files into AIO as a failsafe to ensure compatability for future CMD versions.\n - In general, for all Compatible CMD versions it is safe to run uninstalls of tweaks that have not been installed BUT keep in mind that AIO will overwrite the files involved with the included failsafe backups because it will not find any available backups in the system. So try to avoid running uninstallers for tweaks that you have not installed.",
+ "t2": "What Parts Of The System Are Not Reverted By AIO?",
+ "msg2": "
MZD-AIO-TI modifies some files in the system that cannot be reverted back using this app.
\n\nThese first 3 files honestly should never be reverted because a mistake in one of these files will result in a unrecoverable bootloop. They are only modified to disable the system from triggering a reboot on error and consequently creating a bootloop, so reverting them would put your system at a high risk. **Only the first time** the installer runs on your system they are backed up and modified.\n\n**DO NOT MODIFY ANY OF THESE FILES YOURSELF, YOU WILL BREAK YOUR SYSTEM IF YOU DO**\n\n- /jci/sm/sm.conf (Also modified by the Android Auto Tweak)\n- /jci/opera/opera_home/opera.ini \n- /jci/opera/opera_dir/userjs/fps.js\n\n##### These 2 tweaks have no uninstall because the system should have had these enabled by default.\n\n- Wifi (NA Region)\n- SSH_Bringback"
+ }, {
+ "id": 3,
+ "title": "Troubleshooting",
+ "msg": "Here are some common errors with ways to avoid them. \n#### If you keep hitting errors and/or hang ups:\n - The most common issue is a file system access error: resource busy or locked. This occurs when a file or directory cannot be modified becasue it is open or being used by another program. While compiling, close all folders and documents especially files that are actively being used by MZD-AIO-TI (*ex: '_copy_to_usb'*)\n - Try selecting fewer tweaks at a time, picking too many increases the chaces for an unexpected error. I have tested running every single tweak at once many times, if you are consistantly hitting an error please report the bug. \n - If the installer does not start in the car try reformatting your USB drive as FAT32 and make sure all other USB devices are disconnected. It helps to turn bluetooth off too. NAV SD card should be left in.",
+ "t2": "If you are having Video Player Issues",
+ "msg2": " Try:\n\n- Place your videos in a folder named 'Movies'! \n\n- Use H264 video codec and MPEG-4 AAC audio codec in video files\n\n- Unplug all other USB drives, especially one, with many MP3s on it \n\n- Copy only one mp3 on your video USB drive \n\n- Copy only a few videos on your stick (you don't have to delete, rename to *._mp4 is OK too, so that they will not found anymore) \n\n- Reboot your system and try to play a video right after that \n\n- Close the player and start again \n\n- If that doesn't work, then change the audio input.\n\n- Sometimes the first video selected lags or fails to start but pressing 'next' will sometimes start the next video.\n\n- Videos can be: MP4, AVI, FLV, WMV"
+ }, {
+ "id": 4,
+ "title": "Contributing",
+ "msg": "Though I did build this user interface, the more valuable aspects of this project are the tweak files. Communities like Mazda3Revolution Forum out there and many developers laid down the groundwork from which this app is built and will continue to play an important role in future developments.\n\nIf you want to contributes a tweak, make sure you test your tweak thouroughly.
If you are an expert in javascript or AngularJS then feel free to fix up my code (its a little bit messy... sorry) or implement more of the ui 'The Angular Way'
Github Repo",
+ "t2": "Issues",
+ "msg2": "- FW Versions 59.xx.xxx apps do not show up in the app menu (Speedometer and Video Player) also have an issue with the date to statusbar mod (rejects on installation for effecgted FW versions.) \n- If there is not enough space free on the USB drive, you will hang up while copying to USB drive. This may happen if you are copying the swapfile on a drive that is almost full. I plan to fix this in a future version and have an error message pop up. \n- If you installed the 'No Background Behind Buttons' tweak and are going to install a color scheme, it will restore the background behind buttons. Prevent this by selecting both tweaks in the same installation.\n- The Google Translator will try to translate certain parts of the code resulting in unexpected effects. Try to use it to make a translated file with the translator to include in the next version so everything will still work when others use the language."
+ }, {
+ "id": 5,
+ "title": "Tips & Tricks",
+ "msg": "I will include some tips that go above and beyond this app.
First of all uninstall Android Auto from your system. Click the CMU-Autorun link above and download the repository (download button is on the top right next to \"Find File\"). Copy the \"installer\" Folder to a blank USB drive to install the autorun script, this script will run every time the system boots up. The script looks at the root of the SD card (if available) for a file called \"run.sh\" and if found, executes the file. After installing, copy the \"dryrun\" folder onto an SD card to test that the installation worked correctly.
AA - Copy the contents of the \"headunit\" folder to the root of a blank SD card, connect before booting up infotanment system, a message will show the first time to confirm it is running. \nPlug in an Android Auto compatible phone to start.
Caveats: The device with the headunit files must be connected before booting up the infotainment system to run. Once the headunit app is running it is loaded into memory and will silently run in the background, this means that even if you remove the SD card the headunit app will still be running in memory. To stop the process you can do one of these things:
Turn off the vehicle for about 5-10 minutes
Hard reset (hold: mute + nav + back)
Login SSH, enter command 'killall headunit'
Want to run tweaks from an SD card?
With autorun script installed copy tweak files to an SD card. Rename \"tweaks.sh\" to \"run.sh\". Boot up the system and tweaks will run as expected. NOTE: I/O to SD card is slower than USB so installation will take longer.",
+ "t2": "Technical Talk",
+ "msg2": "This app is built with Electron and AngularJS"
+ }, {
+ "id": 6,
+ "title": "Help & Settings",
+ "msg": "
",
+ "t2": "",
+ "msg2": ""
+ }],
"FAQs": {
"title": "FAQ",
"msg": "Frequently Asked Questions: ",
@@ -108,134 +100,101 @@
"q10": "Can you write this or that tweak for us?",
"a10": "I have improved on many of the existing tweaks and tweaks.sh as a whole but I do have a job and Developing the GUI for this app is a pretty hefty task. That being said, I do have ideas for future tweaks and I will take suggestions but no promises. You can contact me with the contact form on the bottom right of the app."
},
- "tourMsgs": [
- {
- "id": 0,
- "msg": "
Bienvenue sur le MZD-AIO-TI!
Mazda All In One Tweaks Installeur
Pour installer et desinstaller plus de 40+ 'Tweaks' sur le Mazda MZD Infotainment System."
- },
- {
- "id": 1,
- "msg": "Ceci est le menu des Tweaks disponible. Vous pouvez choisir de les installer ou desinstaller."
- },
- {
- "id": 2,
- "msg": "Cette zone vous liste tous les Twekans séléctionné. Ici vous aurez les option supplémentaire et vous pouvez cliquer dessus pour avoir de l'aide ou des informations."
- },
- {
- "id": 3,
- "msg": "
Les des actions supplémentaire telle que la sauvegadres du répertoire JCI & activation du wifi pour le nord de l'Amérique.
"
- },
- {
- "id": 4,
- "msg": "
Ces options peuvent être restaurées à l'état d'origine en séléctionnant leur option par défaut.
"
- },
- {
- "id": 5,
- "msg": "
Le menu
The menus have more help topics and links to resources and documentation."
- },
- {
- "id": 6,
- "msg": "
Quand vous avez séléctionné tous vos tweaks, cliquez sur Démarrer la compilation !
"
- },
- {
- "id": 7,
- "msg": "
Copie le contenu entier du dossier \"_copy_to_usb\" sur une clé USB vierge formatée en FAT32. Branchez votre clé USB et retirer tous les autres périphériques USB. Laisser votre carte de navigation (carte SD) dans le lecteur. Mettre le contact dans la voiture pour le que MZD s'allume. Désactiver le bluthooth et le wifi (conseillé). Une fois l'installation terminée, le système redémarre, vous pouvez retirer la clé USB et les modifications seront appliquées.
"
- },
- {
- "id": 8,
- "msg": "Pour plus d'information, visitez MazdaTweaks.com!"
- }
- ],
- "popupMsgs": [
- {
- "id": 0,
- "msg": "Préparation de la compilation... veuillez patientez..."
- },
- {
- "id": 1,
- "msg": "Emplacement des fichiers des logiciels"
- },
- {
- "id": 2,
- "msg": "(Pour de meilleurs résultats, veuillez effacer votre clé USB avant la copie)"
- },
- {
- "id": 3,
- "msg": "Copie sur votre clé USB"
- },
- {
- "id": 4,
- "msg": "Pas prêt"
- },
- {
- "id": 5,
- "msg": "Ouverture de la clé USB"
- },
- {
- "id": 6,
- "msg": "
Les lecteurs suivant sont disponibles :
"
- },
- {
- "id": 7,
- "msg": "
Souhaitez-vous que je copie directement les fichiers sur une cle USB?
(Veuillez supprimer les données de la cle avant !)
"
- },
- {
- "id": 8,
- "msg": "
Sur quelle lettre de lecteur souhaitez-vous que je copie?
Pour installer et desinstaller plus de 40+ 'Tweaks' sur le Mazda MZD Infotainment System."
+ }, {
+ "id": 1,
+ "msg": "Ceci est le menu des Tweaks disponible. Vous pouvez choisir de les installer ou desinstaller."
+ }, {
+ "id": 2,
+ "msg": "Cette zone vous liste tous les Twekans séléctionné. Ici vous aurez les option supplémentaire et vous pouvez cliquer dessus pour avoir de l'aide ou des informations."
+ }, {
+ "id": 3,
+ "msg": "
Les des actions supplémentaire telle que la sauvegadres du répertoire JCI & activation du wifi pour le nord de l'Amérique.
"
+ }, {
+ "id": 4,
+ "msg": "
Ces options peuvent être restaurées à l'état d'origine en séléctionnant leur option par défaut.
"
+ }, {
+ "id": 5,
+ "msg": "
Le menu
The menus have more help topics and links to resources and documentation."
+ }, {
+ "id": 6,
+ "msg": "
Quand vous avez séléctionné tous vos tweaks, cliquez sur Démarrer la compilation !
"
+ }, {
+ "id": 7,
+ "msg": "
Copie le contenu entier du dossier \"_copy_to_usb\" sur une clé USB vierge formatée en FAT32. Branchez votre clé USB et retirer tous les autres périphériques USB. Laisser votre carte de navigation (carte SD) dans le lecteur. Mettre le contact dans la voiture pour le que MZD s'allume. Désactiver le bluthooth et le wifi (conseillé). Une fois l'installation terminée, le système redémarre, vous pouvez retirer la clé USB et les modifications seront appliquées.
"
+ }, {
+ "id": 8,
+ "msg": "Pour plus d'information, visitez MazdaTweaks.com!"
+ }],
+ "popupMsgs": [{
+ "id": 0,
+ "msg": "Préparation de la compilation... veuillez patientez..."
+ }, {
+ "id": 1,
+ "msg": "Emplacement des fichiers des logiciels"
+ }, {
+ "id": 2,
+ "msg": "(Pour de meilleurs résultats, veuillez effacer votre clé USB avant la copie)"
+ }, {
+ "id": 3,
+ "msg": "Copie sur votre clé USB"
+ }, {
+ "id": 4,
+ "msg": "Pas prêt"
+ }, {
+ "id": 5,
+ "msg": "Ouverture de la clé USB"
+ }, {
+ "id": 6,
+ "msg": "
Les lecteurs suivant sont disponibles :
"
+ }, {
+ "id": 7,
+ "msg": "
Souhaitez-vous que je copie directement les fichiers sur une cle USB?
(Veuillez supprimer les données de la cle avant !)
"
+ }, {
+ "id": 8,
+ "msg": "
Sur quelle lettre de lecteur souhaitez-vous que je copie?
Dump diagnostic files from the CMU to the USB Drive. Cleans out error files and core dumps from the system.
Skip Confirmation
Allows for the installation to run without prompting for confirmation to begin the install. Mainly this is used for recovering when the touchscreen is not responding.
Copy Backups:
Copy original backups of modified system files, for safe keeping.
Test Backups:
Some tweaks have before and after copys of the files modified during the instalation. If you like that kind of thing they will copied to your-usb/bakups/test/.
"
+ "toolTip": "
Retrieve CMU Data
Dump diagnostic files from the CMU to the USB Drive. Cleans out error files and core dumps from the system.
Skip Confirmation
Allows for the installation to run without prompting for confirmation to begin the install. Mainly this is used for recovering when the touchscreen is not responding.
Copy Backups:
Copy original backups of modified system files, for safe keeping.
Test Backups:
Some tweaks have before and after copys of the files modified during the instalation. If you like that kind of thing they will copied to your-usb/bakups/test/.
"
}
},
- "tweakOps": [
- {
- "id": 1,
- "OpName": "Ecran tactile en tout temps",
- "INST": "Activation de l'écran tactile quand on roule",
- "DEINST": "Desactivation de l'écran tactile quand on roule",
- "toolTip": "
Ecran tactile
Possibilité d'utiliser l'écran tactile en tout temps",
- "img": "",
- "safetylvl": "safe",
- "extraOps": true,
- "advancedOp": false
- },
- {
- "id": 2,
- "OpName": "Plus d'avertissements",
- "INST": "Suppression des avertissements",
- "DEINST": "Restauration de l'avertissement (a 3.5 secondes)",
- "toolTip": "
Plus d'avertissements
Suppression complete de l'avertissement ou reduction de 3,5 à 0,5 secondes.",
- "img": "",
- "safetylvl": "safe",
- "extraOps": true,
- "advancedOp": false
- },
- {
- "id": 3,
- "OpName": "Avertissement de sécurité de la caméra arrière",
- "INST": "Suppression de l'avertissement caméra arrière",
- "DEINST": "Restauration de l'avertissement caméra arrière",
- "toolTip": "
Avertissement de sécurité de la caméra arrière
Plus de message en bas de l'écran quand la caméra arrière est activée !",
- "img": "",
- "safetylvl": "safe",
- "extraOps": false,
- "advancedOp": false
- },
- {
- "id": 4,
- "OpName": "Graphique senseur parking semi-transparent",
- "INST": "Installation du graphique senseur parking semi-transparent",
- "DEINST": "Desinstallation du graphique senseur parking semi-transparent",
- "toolTip": "
Graphique senseur parking semi-transparent
Graphique senseur parking semi-transparent pour les senseurs de proximité. Quand on active la caméra arrière, la voiture apparait en haut à droite.#Le graphique apparait maintenant en semi-transparent après l'installation de ce logiciel.",
- "img": "semi-transparent_parking-sensors.jpg",
- "safetylvl": "safe",
- "extraOps": false,
- "advancedOp": false
- },
- {
- "id": 5,
- "OpName": "Boucle du Menu principal",
- "INST": "Installation de la boucle du Menu principal",
- "DEINST": "Desinstallation de la boucle du Menu principal",
- "toolTip": "
Boucle du Menu principal
Boucle pour le menu principal, vous pouvez passer de la position tout à droite à celle de toute à gauche en continuant a tourner votre boutton vers la droite et vice versa.",
- "img": "",
- "safetylvl": "safe",
- "extraOps": false,
- "advancedOp": false
- },
- {
- "id": 6,
- "OpName": "Boucle de liste",
- "INST": "Installation de la boucle de liste",
- "DEINST": "Desinstallation de la boucle de liste",
- "toolTip": "
Boucle de liste
Boucle sur les différentes listes et sous menu (musique, contacts, etc.). Vous pouvez passer de la 1ere à la derniere et vice versa. En desinstallant ce module, vous desinstaller aussi le Délai Court. Vous pouvez éviter cela en installant le Délai Court dans la même installation de logiciel. Now with remmove list loop option.",
- "img": "",
- "safetylvl": "safe",
- "extraOps": true,
- "advancedOp": false
- },
- {
- "id": 7,
- "OpName": "Délai Court",
- "INST": "Installation Délai Court",
- "DEINST": "Desintallation Délai Court",
- "toolTip": "
Délai Court
REduit l'attente entre les pages de 1.5 to 0.3 secondes. Desinstaller la Boucle de liste desinstallera ce module.",
- "img": "",
- "safetylvl": "safe",
- "extraOps": false,
- "advancedOp": false
- },
- {
- "id": 8,
- "OpName": "No More Beeps",
- "INST": "Disable All System Beeps",
- "DEINST": "Restore System Beeps",
- "toolTip": "
No More Beeps
Disable all 'Beeps' made by the system that are not silenced by the 'Settings > Sound > Beep' option. This also includes the beeps that cannot be silenced by the settings option.",
- "img": "",
- "safetylvl": "safe",
- "extraOps": false,
- "advancedOp": false
- },
- {
- "id": 9,
- "OpName": "Ordre des sources audio",
- "INST": "Changer l'ordre de la liste des sources audio ?",
- "DEINST": "Restauration de l'ordre des sources, retour a la liste originale ?",
- "toolTip": "
Change l'ordre de la liste des sources audio L'ordre de la liste des sources audio est agence comme suit:
FMRadio
DAB
USB_A
USB_B
btaudio
CD
SatRadio
AhaRadio
Pandora
StitcherAuxIn
amradio
DVD
TV
",
- "img": "",
- "safetylvl": "warning",
- "extraOps": false,
- "advancedOp": false
- },
- {
- "id": 10,
- "OpName": "Pause en mode sourdine",
- "INST": "Installation de la Pause en mode sourdine",
- "DEINST": "Desinstallation de la Pause en mode sourdine",
- "toolTip": "
Pause en mode sourdine
Quand vous appuyez sur sourdine (bouton du volume) le media qui est lu est en pause.",
- "img": "",
- "safetylvl": "safe",
- "extraOps": false,
- "advancedOp": false
- },
- {
- "id": 11,
- "OpName": "Suppression du \"Envoye depuis...\"",
- "INST": "Suppression des messages de reponse automatique?",
- "DEINST": "Restauration des messages-reponse automatique ?",
- "toolTip": "
Suppression du \"Envoye depuis...\"
Suppression du text \"Envoye depuis le 'Mazda Quick Text System' quand vous repondez a un message",
- "img": "",
- "safetylvl": "safe",
- "extraOps": false,
- "advancedOp": false
- },
- {
- "id": 12,
- "OpName": "Menu Diag en 1 sec",
- "INST": "Installer l'acces en 1sec au menu diagnostic?",
- "DEINST": "Suppression 1 sec. pour le menu diagnostic ?",
- "toolTip": "
Menu Diag en 1 sec Permet l'ouvrir des menus de diagnostic en pressant pendant une seconde sur l'horloge en haut a droite du menu des parametres d'affichage
",
- "img": "",
- "safetylvl": "warning",
- "extraOps": false,
- "advancedOp": false
- },
- {
- "id": 13,
- "OpName": "Animation de démarrage",
- "INST": "Desactivation de l'Animation de démarrage",
- "DEINST": "Activation de l'Animation de démarrage",
- "toolTip": "
Animation de démarrage
L'animation de demarrage qui mene au menu avec les boutons rouges sera desactive.",
- "img": "",
- "safetylvl": "safe",
- "extraOps": true,
- "advancedOp": false
- },
- {
- "id": 20,
- "OpName": "Statusbar Tweaks",
- "INST": "Installation de la date dans la barre de statut",
- "DEINST": "Desinstallation de la date dans la barre de statut",
- "toolTip": "
Date dans la barre de statut
Date dans la barre d'etat, visible en permanence date + icones par l'horloge , même si les messages systemes sont affiches",
- "img": "mzd_datum_icons_all.jpg",
- "safetylvl": "safe",
- "extraOps": true,
- "advancedOp": false
- },
- {
- "id": 26,
- "OpName": "USB Audio Mod",
- "INST": "Install USB Audio Mod",
- "DEINST": "Remove USB Audio Mod",
- "toolTip": "
USB Audio Mod. By: Enlsen
Patches The USB Audio App With These Mods:
Long press (click hold) folders/all songs to play
Adds new icon for USB root menu on the UMP control
Removes \"More like this\" button from UMP control
Adds folders button to UMP control
Set folders and song list icons correctly (were switched) on UMP control
Removes trailing \"/\" character from folder names for list control and title of now playing
Adds folder and song icons to the list control
Adds folder and playlist icons to now playing
",
- "img": "USBAudioMod.jpg",
- "safetylvl": "safe",
- "extraOps": true,
- "advancedOp": false
- },
- {
- "id": 14,
- "OpName": "Grande pochette d'album",
- "INST": "Installation de la Grande pochette d'album",
- "DEINST": "Desinstallation de la Grande pochette d'album",
- "toolTip": "
Grande pochette d'album
La pochette d'album est agrandie. Extra Options: Full Width Titles & Hide Album Art",
- "img": "full_titles.png",
- "safetylvl": "safe",
- "extraOps": true,
- "advancedOp": false
- },
- {
- "id": 15,
- "OpName": "Remove Background Overlays",
- "INST": "Remove the background overlays",
- "DEINST": "Background behind buttons back to original",
- "toolTip": "
No Background Behind Buttons
Remove the background behind the buttons and other semi-transparent overlay backgrounds. Overlays that can be removed: Now Playing, List View, In Call, Text Message View, and Behind Buttons",
- "img": "NoButtonBackground.jpg",
- "safetylvl": "safe",
- "extraOps": true,
- "advancedOp": false
- },
- {
- "id": 16,
- "OpName": "Change Blank Album Art Frame",
- "INST": "Suppression de la pochette album vide",
- "DEINST": "Restauration de la pochette album vide",
- "toolTip": "
Change Blank Album Art Frame
La pochette album vide est retiré quand il n'y a pas d'entree dans la base de donnees Gracenote pour l'artiste . L'image d'une radio est affiche, s'il n'y a pas d'information dans la balise MP3. Les formats supporté sont : jpg, jpeg et png (toute taille). Note: L'image choisie sera redimensionnée en 146px x 146px MAIS PAS DECOUPEE et convertie en format .png
Le lecteur video dans le menu application",
- "img": "",
- "safetylvl": "safe",
- "extraOps": true,
- "advancedOp": false
- },
- {
- "id": 18,
- "OpName": "Fichier d'échange",
- "INST": "Generation du fichier d'echange pour le lecteur video v.2?",
- "DEINST": "Suppression du fichier d'échange",
- "toolTip": "
Fichier d'échange
L'installation du fichier d'echange doit se faire sur une cle USB avec de la musique et / ou des films , ce qui reste dans la voiture . Les fichiers d'installation sont automatiquement supprimes , le lecteur ne peut plus etre retire pendant le fonctionnement , parce que le systeme utilisera aussi comme memoire. Ne retirez la cle USB si le systeme MZD est eteint.",
- "img": "",
- "safetylvl": "warning",
- "extraOps": true,
- "advancedOp": false
- },
- {
- "id": 19,
- "OpName": "Compteur km/h + boussole",
- "INST": "Installation du compteur km/h + boussole",
- "DEINST": "Desinstallation du compteur km/h + boussole",
- "toolTip": "
Compteur km/h + boussole dans le menu Application
dessous du compteur de vitesse est km/h ou mph, selon le reglage
Plage de vitesse allant jusqu'a 240 km/h
valeurs de consommation
modules graphiques optimises avec le nouveau pointeur de compteur de vitesse
Petit aiguille du compteur de vitesse pour la vitesse superieure dans la partie analogique
l'image pour l'echelle du compteur km/h a differentes longueurs ou des lignes lumineuses pour 5, 10 et 20 km/h sauts
Table de droite anglais ou allemand allemand et couleur / taille optimisee
Legere ombre autour des chiffres pour mieux se demarquer de l'arriere-plan
La boussole sur l'axe centrale et la vitesse actuelle indiquée au centre
tourne selon les points cardinaux - superposition d'animation en l'etat avec la vitesse et la direction du Voyage dans chaque menu GPS peuvent etre prepares par le toucher a l'horloge
la latitude et la longitude dans la table de droite
Lorsque l'appareil photo Navi ou arriere est lance, il apparaît automatiquement
Pour le petit compteur km/h dans la barre d'etat , vous devez installer date_to_statusbar V2.2 mod aussi. Par consequent, il sera automatiquement selectionne, si pas deja fait.",
- "img": "mzd_SpeedoCompass.gif",
- "safetylvl": "safe",
- "extraOps": true,
- "advancedOp": false
- },
- {
- "id": 22,
- "OpName": "Consommation d'essence KM/L",
- "INST": "Installation de la consommation essence KM/L",
- "DEINST": "Desinstallation de la consommation essence KM/L",
- "toolTip": "
L'application peut etre trouvee dans la ' config' dossier de votre disque USB
Activer le mode de debogage sur votre smartphone
Connecter le smartphone avec un cable USB au systeme l'ecran infotainment
Demarrer les parametres de l'application : H264 , 800x480 @ 160 , 1 mbps , 127.0.0.1 et appuyez sur entree, puis entree recepteur, puis appuyez sur Demarrer sur le coin en haut a droite .\"
This is an experimental app that I made to test the limits of app functionality. For each success there were several failures.
Every function in this app is not guaranteed to work but here are some useful and/or fun things you can do:
'Apps' Tab:
Home: Goes home. This was the easy part.
Go to: USB A, USB B, Bluetooth (audio context).
Previous, Next - Works without changing contexts
Stop (and Start*) Android Auto Headunit process.
Killing headunit process with allow Bluetooth calling to work correctly.
Starting the process does not work properly yet, reboot CMU to restart headunit process.
Stop and Start Castscreen Receiver
Useful for troubleshooting if it is not functioning correctly.
Both of these do work but there is a possibility that a memory issue may prevent the process from properly starting in which case a reboot is required to allow the process to run.
'Tweaks' Tab:
Many familiar AIO layout related tweaks that can be applied on the fly
Applied tweaks are automatically saved to localStorage and saved tweaks are applied on boot.
Toggle each individual tweak on or off.
One button to reset all tweaks.
NOTE: AIO Tweaks App will not UNDO installed tweaks, they will mix and may result in unexpected and/or interesting layouts
'Options' Tab:
Touchscreen: NOTE: Changes to the touchscreen functionality are applied when the vehicle comes to a COMPLETE STOP
Enable Touchscreen and Menu
Normally disabled menu items while driving ie. Text messages & enter address for navigation,
Compass is disabled
Enable Touchscreen and Compass
Compass is functional
Menu items are disabled
Disable Touchscreen
Touchscreen and Menu Items disabled
Compass is functional
Show Background: Show only background (any button to exit).
Reboot: To Reboot.
",
- "img": "AIO_Tweaks-Screen.png",
- "safetylvl": "safe",
- "extraOps": false,
- "advancedOp": false
- },
- {
- "id": 21,
- "OpName": "Patch ordre alphabetique & support FLAC",
- "INST": "Activation du patch media / support des fichiers FLAC?",
- "DEINST": "Suppression du correctif pour l'ordre des supports media ?",
- "toolTip": "
Patch ordre alphabetique & support FLAC
La musique sera triee par ordre alphabetique et non par date des nouvelles entrees. Support pour le format audio FLAC
Audio Order Patch & FLAC Support is only compatible with these FW Versions:
",
- "img": "",
- "safetylvl": "warning",
- "extraOps": false,
- "advancedOp": true
- }
- ]
+ "tweakOps": [{
+ "id": 1,
+ "OpName": "Ecran tactile en tout temps",
+ "INST": "Activation de l'écran tactile quand on roule",
+ "DEINST": "Desactivation de l'écran tactile quand on roule",
+ "toolTip": "
Ecran tactile
Possibilité d'utiliser l'écran tactile en tout temps",
+ "img": "",
+ "safetylvl": "safe",
+ "extraOps": true,
+ "advancedOp": false
+ }, {
+ "id": 2,
+ "OpName": "Plus d'avertissements",
+ "INST": "Suppression des avertissements",
+ "DEINST": "Restauration de l'avertissement (a 3.5 secondes)",
+ "toolTip": "
Plus d'avertissements
Suppression complete de l'avertissement ou reduction de 3,5 à 0,5 secondes.",
+ "img": "",
+ "safetylvl": "safe",
+ "extraOps": true,
+ "advancedOp": false
+ }, {
+ "id": 3,
+ "OpName": "Avertissement de sécurité de la caméra arrière",
+ "INST": "Suppression de l'avertissement caméra arrière",
+ "DEINST": "Restauration de l'avertissement caméra arrière",
+ "toolTip": "
Avertissement de sécurité de la caméra arrière
Plus de message en bas de l'écran quand la caméra arrière est activée !",
+ "img": "",
+ "safetylvl": "safe",
+ "extraOps": false,
+ "advancedOp": false
+ }, {
+ "id": 4,
+ "OpName": "Graphique senseur parking semi-transparent",
+ "INST": "Installation du graphique senseur parking semi-transparent",
+ "DEINST": "Desinstallation du graphique senseur parking semi-transparent",
+ "toolTip": "
Graphique senseur parking semi-transparent
Graphique senseur parking semi-transparent pour les senseurs de proximité. Quand on active la caméra arrière, la voiture apparait en haut à droite.#Le graphique apparait maintenant en semi-transparent après l'installation de ce logiciel.",
+ "img": "semi-transparent_parking-sensors.jpg",
+ "safetylvl": "safe",
+ "extraOps": false,
+ "advancedOp": false
+ }, {
+ "id": 5,
+ "OpName": "Boucle du Menu principal",
+ "INST": "Installation de la boucle du Menu principal",
+ "DEINST": "Desinstallation de la boucle du Menu principal",
+ "toolTip": "
Boucle du Menu principal
Boucle pour le menu principal, vous pouvez passer de la position tout à droite à celle de toute à gauche en continuant a tourner votre boutton vers la droite et vice versa.",
+ "img": "",
+ "safetylvl": "safe",
+ "extraOps": false,
+ "advancedOp": false
+ }, {
+ "id": 6,
+ "OpName": "Boucle de liste",
+ "INST": "Installation de la boucle de liste",
+ "DEINST": "Desinstallation de la boucle de liste",
+ "toolTip": "
Boucle de liste
Boucle sur les différentes listes et sous menu (musique, contacts, etc.). Vous pouvez passer de la 1ere à la derniere et vice versa. En desinstallant ce module, vous desinstaller aussi le Délai Court. Vous pouvez éviter cela en installant le Délai Court dans la même installation de logiciel. Now with remmove list loop option.",
+ "img": "",
+ "safetylvl": "safe",
+ "extraOps": true,
+ "advancedOp": false
+ }, {
+ "id": 7,
+ "OpName": "Délai Court",
+ "INST": "Installation Délai Court",
+ "DEINST": "Desintallation Délai Court",
+ "toolTip": "
Délai Court
REduit l'attente entre les pages de 1.5 to 0.3 secondes. Desinstaller la Boucle de liste desinstallera ce module.",
+ "img": "",
+ "safetylvl": "safe",
+ "extraOps": false,
+ "advancedOp": false
+ }, {
+ "id": 8,
+ "OpName": "No More Beeps",
+ "INST": "Disable All System Beeps",
+ "DEINST": "Restore System Beeps",
+ "toolTip": "
No More Beeps
Disable all 'Beeps' made by the system that are not silenced by the 'Settings > Sound > Beep' option. This also includes the beeps that cannot be silenced by the settings option.",
+ "img": "",
+ "safetylvl": "safe",
+ "extraOps": false,
+ "advancedOp": false
+ }, {
+ "id": 9,
+ "OpName": "Ordre des sources audio",
+ "INST": "Changer l'ordre de la liste des sources audio ?",
+ "DEINST": "Restauration de l'ordre des sources, retour a la liste originale ?",
+ "toolTip": "
Change l'ordre de la liste des sources audio L'ordre de la liste des sources audio est agence comme suit:
FMRadio
DAB
USB_A
USB_B
btaudio
CD
SatRadio
AhaRadio
Pandora
StitcherAuxIn
amradio
DVD
TV
",
+ "img": "",
+ "safetylvl": "warning",
+ "extraOps": false,
+ "advancedOp": false
+ }, {
+ "id": 10,
+ "OpName": "Pause en mode sourdine",
+ "INST": "Installation de la Pause en mode sourdine",
+ "DEINST": "Desinstallation de la Pause en mode sourdine",
+ "toolTip": "
Pause en mode sourdine
Quand vous appuyez sur sourdine (bouton du volume) le media qui est lu est en pause.",
+ "img": "",
+ "safetylvl": "safe",
+ "extraOps": false,
+ "advancedOp": false
+ }, {
+ "id": 11,
+ "OpName": "Suppression du \"Envoye depuis...\"",
+ "INST": "Suppression des messages de reponse automatique?",
+ "DEINST": "Restauration des messages-reponse automatique ?",
+ "toolTip": "
Suppression du \"Envoye depuis...\"
Suppression du text \"Envoye depuis le 'Mazda Quick Text System' quand vous repondez a un message",
+ "img": "",
+ "safetylvl": "safe",
+ "extraOps": false,
+ "advancedOp": false
+ }, {
+ "id": 12,
+ "OpName": "Menu Diag en 1 sec",
+ "INST": "Installer l'acces en 1sec au menu diagnostic?",
+ "DEINST": "Suppression 1 sec. pour le menu diagnostic ?",
+ "toolTip": "
Menu Diag en 1 sec Permet l'ouvrir des menus de diagnostic en pressant pendant une seconde sur l'horloge en haut a droite du menu des parametres d'affichage
",
+ "img": "",
+ "safetylvl": "warning",
+ "extraOps": false,
+ "advancedOp": false
+ }, {
+ "id": 13,
+ "OpName": "Animation de démarrage",
+ "INST": "Desactivation de l'Animation de démarrage",
+ "DEINST": "Activation de l'Animation de démarrage",
+ "toolTip": "
Animation de démarrage
L'animation de demarrage qui mene au menu avec les boutons rouges sera desactive.",
+ "img": "",
+ "safetylvl": "safe",
+ "extraOps": true,
+ "advancedOp": false
+ }, {
+ "id": 20,
+ "OpName": "Statusbar Tweaks",
+ "INST": "Installation de la date dans la barre de statut",
+ "DEINST": "Desinstallation de la date dans la barre de statut",
+ "toolTip": "
Date dans la barre de statut
Date dans la barre d'etat, visible en permanence date + icones par l'horloge , même si les messages systemes sont affiches",
+ "img": "mzd_datum_icons_all.jpg",
+ "safetylvl": "safe",
+ "extraOps": true,
+ "advancedOp": false
+ }, {
+ "id": 26,
+ "OpName": "USB Audio Mod",
+ "INST": "Install USB Audio Mod",
+ "DEINST": "Remove USB Audio Mod",
+ "toolTip": "
USB Audio Mod. By: Enlsen
Patches The USB Audio App With These Mods:
Long press (click hold) folders/all songs to play
Adds new icon for USB root menu on the UMP control
Removes \"More like this\" button from UMP control
Adds folders button to UMP control
Set folders and song list icons correctly (were switched) on UMP control
Removes trailing \"/\" character from folder names for list control and title of now playing
Adds folder and song icons to the list control
Adds folder and playlist icons to now playing
",
+ "img": "USBAudioMod.jpg",
+ "safetylvl": "safe",
+ "extraOps": true,
+ "advancedOp": false
+ }, {
+ "id": 14,
+ "OpName": "Grande pochette d'album",
+ "INST": "Installation de la Grande pochette d'album",
+ "DEINST": "Desinstallation de la Grande pochette d'album",
+ "toolTip": "
Grande pochette d'album
La pochette d'album est agrandie. Extra Options: Full Width Titles & Hide Album Art",
+ "img": "full_titles.png",
+ "safetylvl": "safe",
+ "extraOps": true,
+ "advancedOp": false
+ }, {
+ "id": 15,
+ "OpName": "Remove Background Overlays",
+ "INST": "Remove the background overlays",
+ "DEINST": "Background behind buttons back to original",
+ "toolTip": "
No Background Behind Buttons
Remove the background behind the buttons and other semi-transparent overlay backgrounds. Overlays that can be removed: Now Playing, List View, In Call, Text Message View, and Behind Buttons",
+ "img": "NoButtonBackground.jpg",
+ "safetylvl": "safe",
+ "extraOps": true,
+ "advancedOp": false
+ }, {
+ "id": 16,
+ "OpName": "Change Blank Album Art Frame",
+ "INST": "Suppression de la pochette album vide",
+ "DEINST": "Restauration de la pochette album vide",
+ "toolTip": "
Change Blank Album Art Frame
La pochette album vide est retiré quand il n'y a pas d'entree dans la base de donnees Gracenote pour l'artiste . L'image d'une radio est affiche, s'il n'y a pas d'information dans la balise MP3. Les formats supporté sont : jpg, jpeg et png (toute taille). Note: L'image choisie sera redimensionnée en 146px x 146px MAIS PAS DECOUPEE et convertie en format .png
Le lecteur video dans le menu application",
+ "img": "",
+ "safetylvl": "safe",
+ "extraOps": true,
+ "advancedOp": false
+ }, {
+ "id": 18,
+ "OpName": "Fichier d'échange",
+ "INST": "Generation du fichier d'echange pour le lecteur video v.2?",
+ "DEINST": "Suppression du fichier d'échange",
+ "toolTip": "
Fichier d'échange
L'installation du fichier d'echange doit se faire sur une cle USB avec de la musique et / ou des films , ce qui reste dans la voiture . Les fichiers d'installation sont automatiquement supprimes , le lecteur ne peut plus etre retire pendant le fonctionnement , parce que le systeme utilisera aussi comme memoire. Ne retirez la cle USB si le systeme MZD est eteint.",
+ "img": "",
+ "safetylvl": "warning",
+ "extraOps": true,
+ "advancedOp": false
+ }, {
+ "id": 19,
+ "OpName": "Compteur km/h + boussole",
+ "INST": "Installation du compteur km/h + boussole",
+ "DEINST": "Desinstallation du compteur km/h + boussole",
+ "toolTip": "
Compteur km/h + boussole dans le menu Application
dessous du compteur de vitesse est km/h ou mph, selon le reglage
Plage de vitesse allant jusqu'a 240 km/h
valeurs de consommation
modules graphiques optimises avec le nouveau pointeur de compteur de vitesse
Petit aiguille du compteur de vitesse pour la vitesse superieure dans la partie analogique
l'image pour l'echelle du compteur km/h a differentes longueurs ou des lignes lumineuses pour 5, 10 et 20 km/h sauts
Table de droite anglais ou allemand allemand et couleur / taille optimisee
Legere ombre autour des chiffres pour mieux se demarquer de l'arriere-plan
La boussole sur l'axe centrale et la vitesse actuelle indiquée au centre
tourne selon les points cardinaux - superposition d'animation en l'etat avec la vitesse et la direction du Voyage dans chaque menu GPS peuvent etre prepares par le toucher a l'horloge
la latitude et la longitude dans la table de droite
Lorsque l'appareil photo Navi ou arriere est lance, il apparaît automatiquement
Pour le petit compteur km/h dans la barre d'etat , vous devez installer date_to_statusbar V2.2 mod aussi. Par consequent, il sera automatiquement selectionne, si pas deja fait.",
+ "img": "mzd_SpeedoCompass.gif",
+ "safetylvl": "safe",
+ "extraOps": true,
+ "advancedOp": false
+ }, {
+ "id": 22,
+ "OpName": "Consommation d'essence KM/L",
+ "INST": "Installation de la consommation essence KM/L",
+ "DEINST": "Desinstallation de la consommation essence KM/L",
+ "toolTip": "
L'application peut etre trouvee dans la ' config' dossier de votre disque USB
Activer le mode de debogage sur votre smartphone
Connecter le smartphone avec un cable USB au systeme l'ecran infotainment
Demarrer les parametres de l'application : H264 , 800x480 @ 160 , 1 mbps , 127.0.0.1 et appuyez sur entree, puis entree recepteur, puis appuyez sur Demarrer sur le coin en haut a droite .\"
This is an experimental app that I made to test the limits of app functionality. For each success there were several failures.
Every function in this app is not guaranteed to work but here are some useful and/or fun things you can do:
'Apps' Tab:
Home: Goes home. This was the easy part.
Go to: USB A, USB B, Bluetooth (audio context).
Previous, Next - Works without changing contexts
Stop (and Start*) Android Auto Headunit process.
Killing headunit process with allow Bluetooth calling to work correctly.
Starting the process does not work properly yet, reboot CMU to restart headunit process.
Stop and Start Castscreen Receiver
Useful for troubleshooting if it is not functioning correctly.
Both of these do work but there is a possibility that a memory issue may prevent the process from properly starting in which case a reboot is required to allow the process to run.
'Tweaks' Tab:
Many familiar AIO layout related tweaks that can be applied on the fly
Applied tweaks are automatically saved to localStorage and saved tweaks are applied on boot.
Toggle each individual tweak on or off.
One button to reset all tweaks.
NOTE: AIO Tweaks App will not UNDO installed tweaks, they will mix and may result in unexpected and/or interesting layouts
'Options' Tab:
Touchscreen: NOTE: Changes to the touchscreen functionality are applied when the vehicle comes to a COMPLETE STOP
Enable Touchscreen and Menu
Normally disabled menu items while driving ie. Text messages & enter address for navigation,
Compass is disabled
Enable Touchscreen and Compass
Compass is functional
Menu items are disabled
Disable Touchscreen
Touchscreen and Menu Items disabled
Compass is functional
Show Background: Show only background (any button to exit).
Reboot: To Reboot.
",
+ "img": "AIO_Tweaks-Screen.png",
+ "safetylvl": "safe",
+ "extraOps": false,
+ "advancedOp": false
+ }, {
+ "id": 21,
+ "OpName": "Patch ordre alphabetique & support FLAC",
+ "INST": "Activation du patch media / support des fichiers FLAC?",
+ "DEINST": "Suppression du correctif pour l'ordre des supports media ?",
+ "toolTip": "
Patch ordre alphabetique & support FLAC
La musique sera triee par ordre alphabetique et non par date des nouvelles entrees. Support pour le format audio FLAC
Audio Order Patch & FLAC Support is only compatible with these FW Versions:
",
+ "img": "",
+ "safetylvl": "warning",
+ "extraOps": false,
+ "advancedOp": true
+ }]
}
diff --git a/app/lang/german.aio.json b/app/lang/german.aio.json
index 12bbb74..a263c64 100644
--- a/app/lang/german.aio.json
+++ b/app/lang/german.aio.json
@@ -33,57 +33,49 @@
"lang": "Ungarisch"
}
},
- "helpMsgs": [
- {
- "id": 0,
- "title": "Einleitung",
- "msg": "Ein Tool zum installieren/deinstallieren für 40+ 'Tweaks' für das Mazda MZD Infotainment System \n Mazda 2 (DJ), Mazda 3 (BM), Mazda 6 (GJ), Mazda CX-3 (DK), Mazda CX-5 (KE), Mazda MX-5 Roadster (ND) und neu 2017 Mazda CX-9 (TC) Fiat Spider, Toyota ScionA
Was ist MZD-AIO-TI?
Mein guter Freund Siutsch kopiert Dateien aus vielen verschiedenen Tweaks für seine Infotainment-System und dachte, wäre es hilfreich, wenn man wählen könnte, welche Tweaks man installieren oder deinstallieren möchte. Er begann ein CMD-basiertes Programm zu entwickeln, um dies zu erreichen und es funktionierte gut. Er hatte aber bestimmte Grenzen erreicht und es fehlte ein modernes Aussehen. Ich kontaktierte Siutsch und schlug ihm vor, dass wir die AIO-Desktop-App starten, beginnend mit den gleichen Tweaks von AIO v1.5.x, die wir alle kennen und lieben. Ich begann die App 'MZD-AIO-TI' zu erstellen. \n\n###### **Also bitte seien Sie aufmerksam bei der Installation von Tweaks.** \n\nDiese App wird automatisch aktualisiert. \n\nThis program is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version.\n\nThis program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the Copyleft Under The GNU General Public License for more details.",
- "t2": "",
- "msg2": ""
- },
- {
- "id": 1,
- "title": "Tweaking",
- "msg": "
Alle Änderungen geschehen auf eigenes Risiko!
\n Bitte beachten sie, dass Sie Ihr Infotainment-System beschädigen oder sperren können, wenn diese Tweaks ausgeführt werden! \n Jeder, der nicht sicher ist, sollte es unterlassen oder jemanden mit Erfahrung fragen. Für Hilfe oder Fragen, besuchen sie das Forum.
Ich bin nicht verantwortlich für Schäden, die durch die Benutzung entstehen können.
Das MZD-AIO-TI wurde mit Bedacht entwickelt, daher gibt es 3 Kompatibilitätsstufen: \n\n - All - Kompatibel mit allen bekannten Firmwareversionen \n - Under58 - Nur kompatibel mit Firmware-Versionen kleiner als 58 (ie. 55 & 56). Wenn die Kompatibilität spezieller ist, dann wird darauf hingewiesen. \n - Development - Das sind Tweaks, die noch in der Entwicklung sind oder noch nicht funktionieren. Android Auto wird vorraussichtlich bald gelb, wenn nicht sogar grün.",
- "t2": "Kompatible Firmware Versionen:",
- "msg2": "###### 55.00.650A/753A/760A / 56.00.521A-NA(NA N) \n\n###### 56.00.100A/230A/240B/511A/512A/513C/514A-ADR(4A N) \n\n###### 56.00.100A/230A/511A/512A/513A/513B/513C-EU \n\n###### 56.00.401A/403A-JP | 56.00.100A-CHN \n\n###### 58.00.250A-NA(NA N) / 58.00.251A-ADR(4A N) \n\n59.00.326A/330A/342A/442A/443C-ADR(4A N) \n\n###### 59.00.330A/441A/443A/446A/450A-NA(N NA) \n\n###### 59.00.330A/331A/443C/447A/449A-EU \n\n###### Nur mit Firmware-Versionen >= v55 nutzen. NICHT MIT V30/31/33 BENUTZEN ODER DAS SYSTEM WIRD GESPERRT UND ES BLEIBT BEIM STARTLOGO HÄNGEN! \n\nUm sicher zu gehen wird AIO-TI ab sofort die Installation automatisch abbrechen falls keine geeignete Firmware gefunden wird. \n\nUm dies zu überbrücken, muss die Datei tweaks.sh direkt bearbeitet werden. Entfernen Sie den Code, der die Firmware-Überprüfung vorbereitet oder fügen sie ihre Version in der Liste der kompatiblen Firmware hinzu. **DAS GESCHIEHT AUF EIGENES RISIKO!**"
- },
- {
- "id": 2,
- "title": "Wiederherstellung",
- "msg": "** Fast alle Tweaks ** können deinstalliert werden, um zum Ursprungszustand zurückzukehren.
Standardhintergrund:
\n\n - AIO erstellt Backups aller Dateien, die es modifiziert und verwendet diese Backups beim Zurücksetzen. AIO enthält auch eine Originalversion jeder Datei, nur für den Fall, dass eine der Backup-Dateien fehlt. In zukünftigen Versionen beabsichtige ich, eine Option zum Kopieren und Speichern von Sicherungsdateien deines Systems in AIO als ein Backup einzuschließen, um die Kompatibilität für zukünftige CMD-Versionen sicherzustellen.\n - Im Allgemeinen ist es für alle kompatiblen CMD-Versionen sicher, Deinstallationen von nicht installierten Tweaks auszuführen ABER es gilt zu beachten, dass AIO die Dateien überschreibt, die mit den enthaltenen Backups beteiligt sind, wenn es keine verfügbaren Backups im System findet. Versuchen Sie es also zu vermeiden nicht installierte Tweaks zu deinstallieren.",
- "t2": "Welche Teile des Systems werden nicht von AIO zurückgesetzt?",
- "msg2": "
MZD-AIO-TI modifiziert einige Dateien im System, die mit dieser App nicht zurückgesetzt werden können.
\n\nDiese ersten 3 Dateien sollten nie wiederhergestellt werden, da ein Fehler in einer dieser Dateien zu einem nicht behebbaren Bootloop führen wird. Sie werden nur geändert, um das System daran zu hindern, einen fälschlichen Neustart durchzuführen und folglich einen Bootloop zu produzieren, weswegen die Wiederherstellung ein hohes Risiko für das System darstellen würde. ** Nur beim Ersten ** durchlauf des Installationsprogramm werden sie gesichert und geändert.\n\n**BITTE DIESE DATEIEN NICHT VERÄNDERN, SONST WIRD IHR SYSTEM BLOCKIERT.**\n\n- /jci/sm/sm.conf (Ebenfalls durch Android Auto Tweak geändert)\n- /jci/opera/opera_home/opera.ini \n- /jci/opera/opera_dir/userjs/fps.js\n\n##### Diese 2 Tweaks können nicht deinstalliert werden, da diese standardmäßig aktiviert sein sollten.\n\n- Wifi (NA Region)\n- SSH_Bringback"
- },
- {
- "id": 3,
- "title": "Fehlerbehebung",
- "msg": "Hier sind einige häufige Fehler mit der Möglichkeiten, sie zu vermeiden. \n#### Wenn Sie weiterhin auf Fehler treffen und/oder Systemhänger:\n - Das häufigste Problem ist ein Dateizugriffsfehler: Quelle beschäftigt oder gesperrt. Dies tritt auf, wenn eine Datei oder ein Verzeichnis nicht geändert werden kann, da sie geöffnet ist oder von einem anderen Programm verwendet wird. Schließen Sie bei der Kompilierung alle Ordner und Dokumente, insbesondere Dateien, die aktiv von MZD-AIO-TI verwendet werden (*zB: '_copy_to_usb'*)\n - Wenn das Installationsprogramm im Auto nicht gestartet wird, versuchen Sie, Ihr USB-Laufwerk als FAT32 neu zu formatieren und stellen Sie sicher, dass alle anderen USB-Geräte getrennt sind. Es hilft Bluetooth aus zu schalten, die NAV SD-Karte sollte drinnen bleiben.",
- "t2": "Wenn Sie Video-Player Probleme haben",
- "msg2": " Versuche:\n\n- Speicher die Videos im Ordner mit dem Namen 'Movies'! \n\n- Nutze den H264 video codec und MPEG-4 AAC audio codec in Videos\n\n- Ziehen Sie alle anderen USB-Laufwerke ab, vor allem mit vielen MP3s drauf\n\n- Kopieren Sie nur eine mp3 auf Ihr USB-Laufwerk \n\n- Kopiere nur ein paar Videos auf deinen Stick (du musst sie nicht löschen, umbenennen in * ._ mp4 ist auch OK, damit sie nicht mehr gefunden werden) \n\n- Starten Sie Ihr System neu und versuchen Sie direkt danach ein Video wiederzugeben \n\n- Schließe den Player und starte ihn wieder \n\n- Falls das nicht hilft, wechsel den Audioquelle.\n\n- Manchmal ist hängt das erste Video oder es lässt sich nicht starten aber durch Drücken von 'next' startet manchmal das nächste Video.\n\n- Videoformate: MP4, AVI, FLV, WMV"
- },
- {
- "id": 4,
- "title": "Mitwirken",
- "msg": "Obwohl ich diese Benutzeroberfläche erstellt habe sind die wertvolleren Aspekte dieses Projekts die Tweak-Dateien. Communities wie Mazda3Revolution Forum und viele Entwickler legten die Grundlagen aus denen diese App gebaut wurde und wird auch weiterhin eine wichtige Rolle in der künftigen Entwicklungen spielen.\n\nWenn Sie einen Tweak beitragen wollen stellen Sie sicher, dass er eingehend getestet wurde.
Wenn Sie ein Experte in Javascript oder AngularJS sind, dann fühlen sich frei meinen Code zu bereinigen (ist ein wenig chaotisch ... sorry) oder implementieren sie mehr von der UI 'The Angular Way'
Github Repo",
- "t2": "Probleme",
- "msg2": "- FW Version 59.xx.xxx Apps werden nicht im Applikationsmenü angezeigt (Speedometer und Video Player) und haben ebenso ein Problem mit dem 'date to statusbar mod' (verweigert eine Installation für betroffenen FW Versionen.) \n- Wenn nicht genügend freier Speicherplatz auf dem USB-Laufwerk vorhanden ist, hängt es sich beim kopieren der Daten auf den USB-Stick auf. Dies kann passieren, wenn Sie die Swapdatei auf ein fast volles Laufwerk kopieren. Ich plane in einer zukünftigen Version das Problem zu beheben und eine Fehlermeldung zu zeigen. \n- Wenn Sie die 'No Background Behind Buttons' Tweak installieren und ein Farbschema installieren, wird es den 'No Background Behind Buttons' Tweak zurücksetzen. Es lässt sich umgehen wenn man nicht beide Tweaks in einer Installation auswählt.\n- Der Google Translator wird versuchen, bestimmte Teile des Codes zu übersetzen, die zu unerwarteten Effekten führen. Versuchen Sie damit eine Datei zu erstellen um diese in eine der nächsten Versionen aufzunehmen."
- },
- {
- "id": 5,
- "title": "Tipps & Tricks",
- "msg": "Ich werde einige Tipps über diese App geben.
First of all uninstall Android Auto from your system. Click the CMU-Autorun link above and download the repository (download button is on the top right next to \"Find File\"). Copy the \"installer\" Folder to a blank USB drive to install the autorun script, this script will run every time the system boots up. The script looks at the root of the SD card (if available) for a file called \"run.sh\" and if found, executes the file. After installing, copy the \"dryrun\" folder onto an SD card to test that the installation worked correctly.
AA - Copy the contents of the \"headunit\" folder to the root of a blank SD card, connect before booting up infotanment system, a message will show the first time to confirm it is running. \nPlug in an Android Auto compatible phone to start.
Caveats: The device with the headunit files must be connected before booting up the infotainment system to run. Once the headunit app is running it is loaded into memory and will silently run in the background, this means that even if you remove the SD card the headunit app will still be running in memory. To stop the process you can do one of these things:
Turn off the vehicle for about 5-10 minutes
Hard reset (hold: mute + nav + back)
Login SSH, enter command 'killall headunit'
Want to run tweaks from an SD card?
With autorun script installed copy tweak files to an SD card. Rename \"tweaks.sh\" to \"run.sh\". Boot up the system and tweaks will run as expected. NOTE: I/O to SD card is slower than USB so installation will take longer.",
- "t2": "Technical Talk",
- "msg2": "Diese Anwendung ist mit Electron und AngularJS erstellt."
- },
- {
- "id": 6,
- "title": "Hilfe & Einstellungen",
- "msg": "
",
- "t2": "",
- "msg2": ""
- }
- ],
+ "helpMsgs": [{
+ "id": 0,
+ "title": "Einleitung",
+ "msg": "Ein Tool zum installieren/deinstallieren für 40+ 'Tweaks' für das Mazda MZD Infotainment System \n Mazda 2 (DJ), Mazda 3 (BM), Mazda 6 (GJ), Mazda CX-3 (DK), Mazda CX-5 (KE), Mazda MX-5 Roadster (ND) und neu 2017 Mazda CX-9 (TC) Fiat Spider, Toyota ScionA
Was ist MZD-AIO-TI?
Mein guter Freund Siutsch kopiert Dateien aus vielen verschiedenen Tweaks für seine Infotainment-System und dachte, wäre es hilfreich, wenn man wählen könnte, welche Tweaks man installieren oder deinstallieren möchte. Er begann ein CMD-basiertes Programm zu entwickeln, um dies zu erreichen und es funktionierte gut. Er hatte aber bestimmte Grenzen erreicht und es fehlte ein modernes Aussehen. Ich kontaktierte Siutsch und schlug ihm vor, dass wir die AIO-Desktop-App starten, beginnend mit den gleichen Tweaks von AIO v1.5.x, die wir alle kennen und lieben. Ich begann die App 'MZD-AIO-TI' zu erstellen. \n\n###### **Also bitte seien Sie aufmerksam bei der Installation von Tweaks.** \n\nDiese App wird automatisch aktualisiert. \n\nThis program is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version.\n\nThis program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the Copyleft Under The GNU General Public License for more details.",
+ "t2": "",
+ "msg2": ""
+ }, {
+ "id": 1,
+ "title": "Tweaking",
+ "msg": "
Alle Änderungen geschehen auf eigenes Risiko!
\n Bitte beachten sie, dass Sie Ihr Infotainment-System beschädigen oder sperren können, wenn diese Tweaks ausgeführt werden! \n Jeder, der nicht sicher ist, sollte es unterlassen oder jemanden mit Erfahrung fragen. Für Hilfe oder Fragen, besuchen sie das Forum.
Ich bin nicht verantwortlich für Schäden, die durch die Benutzung entstehen können.
Das MZD-AIO-TI wurde mit Bedacht entwickelt, daher gibt es 3 Kompatibilitätsstufen: \n\n - All - Kompatibel mit allen bekannten Firmwareversionen \n - Under58 - Nur kompatibel mit Firmware-Versionen kleiner als 58 (ie. 55 & 56). Wenn die Kompatibilität spezieller ist, dann wird darauf hingewiesen. \n - Development - Das sind Tweaks, die noch in der Entwicklung sind oder noch nicht funktionieren. Android Auto wird vorraussichtlich bald gelb, wenn nicht sogar grün.",
+ "t2": "Kompatible Firmware Versionen:",
+ "msg2": "###### 55.00.650A/753A/760A / 56.00.521A-NA(NA N) \n\n###### 56.00.100A/230A/240B/511A/512A/513C/514A-ADR(4A N) \n\n###### 56.00.100A/230A/511A/512A/513A/513B/513C-EU \n\n###### 56.00.401A/403A-JP | 56.00.100A-CHN \n\n###### 58.00.250A-NA(NA N) / 58.00.251A-ADR(4A N) \n\n59.00.326A/330A/342A/442A/443C-ADR(4A N) \n\n###### 59.00.330A/441A/443A/446A/450A-NA(N NA) \n\n###### 59.00.330A/331A/443C/447A/449A-EU \n\n###### Nur mit Firmware-Versionen >= v55 nutzen. NICHT MIT V30/31/33 BENUTZEN ODER DAS SYSTEM WIRD GESPERRT UND ES BLEIBT BEIM STARTLOGO HÄNGEN! \n\nUm sicher zu gehen wird AIO-TI ab sofort die Installation automatisch abbrechen falls keine geeignete Firmware gefunden wird. \n\nUm dies zu überbrücken, muss die Datei tweaks.sh direkt bearbeitet werden. Entfernen Sie den Code, der die Firmware-Überprüfung vorbereitet oder fügen sie ihre Version in der Liste der kompatiblen Firmware hinzu. **DAS GESCHIEHT AUF EIGENES RISIKO!**"
+ }, {
+ "id": 2,
+ "title": "Wiederherstellung",
+ "msg": "** Fast alle Tweaks ** können deinstalliert werden, um zum Ursprungszustand zurückzukehren.
Standardhintergrund:
\n\n - AIO erstellt Backups aller Dateien, die es modifiziert und verwendet diese Backups beim Zurücksetzen. AIO enthält auch eine Originalversion jeder Datei, nur für den Fall, dass eine der Backup-Dateien fehlt. In zukünftigen Versionen beabsichtige ich, eine Option zum Kopieren und Speichern von Sicherungsdateien deines Systems in AIO als ein Backup einzuschließen, um die Kompatibilität für zukünftige CMD-Versionen sicherzustellen.\n - Im Allgemeinen ist es für alle kompatiblen CMD-Versionen sicher, Deinstallationen von nicht installierten Tweaks auszuführen ABER es gilt zu beachten, dass AIO die Dateien überschreibt, die mit den enthaltenen Backups beteiligt sind, wenn es keine verfügbaren Backups im System findet. Versuchen Sie es also zu vermeiden nicht installierte Tweaks zu deinstallieren.",
+ "t2": "Welche Teile des Systems werden nicht von AIO zurückgesetzt?",
+ "msg2": "
MZD-AIO-TI modifiziert einige Dateien im System, die mit dieser App nicht zurückgesetzt werden können.
\n\nDiese ersten 3 Dateien sollten nie wiederhergestellt werden, da ein Fehler in einer dieser Dateien zu einem nicht behebbaren Bootloop führen wird. Sie werden nur geändert, um das System daran zu hindern, einen fälschlichen Neustart durchzuführen und folglich einen Bootloop zu produzieren, weswegen die Wiederherstellung ein hohes Risiko für das System darstellen würde. ** Nur beim Ersten ** durchlauf des Installationsprogramm werden sie gesichert und geändert.\n\n**BITTE DIESE DATEIEN NICHT VERÄNDERN, SONST WIRD IHR SYSTEM BLOCKIERT.**\n\n- /jci/sm/sm.conf (Ebenfalls durch Android Auto Tweak geändert)\n- /jci/opera/opera_home/opera.ini \n- /jci/opera/opera_dir/userjs/fps.js\n\n##### Diese 2 Tweaks können nicht deinstalliert werden, da diese standardmäßig aktiviert sein sollten.\n\n- Wifi (NA Region)\n- SSH_Bringback"
+ }, {
+ "id": 3,
+ "title": "Fehlerbehebung",
+ "msg": "Hier sind einige häufige Fehler mit der Möglichkeiten, sie zu vermeiden. \n#### Wenn Sie weiterhin auf Fehler treffen und/oder Systemhänger:\n - Das häufigste Problem ist ein Dateizugriffsfehler: Quelle beschäftigt oder gesperrt. Dies tritt auf, wenn eine Datei oder ein Verzeichnis nicht geändert werden kann, da sie geöffnet ist oder von einem anderen Programm verwendet wird. Schließen Sie bei der Kompilierung alle Ordner und Dokumente, insbesondere Dateien, die aktiv von MZD-AIO-TI verwendet werden (*zB: '_copy_to_usb'*)\n - Wenn das Installationsprogramm im Auto nicht gestartet wird, versuchen Sie, Ihr USB-Laufwerk als FAT32 neu zu formatieren und stellen Sie sicher, dass alle anderen USB-Geräte getrennt sind. Es hilft Bluetooth aus zu schalten, die NAV SD-Karte sollte drinnen bleiben.",
+ "t2": "Wenn Sie Video-Player Probleme haben",
+ "msg2": " Versuche:\n\n- Speicher die Videos im Ordner mit dem Namen 'Movies'! \n\n- Nutze den H264 video codec und MPEG-4 AAC audio codec in Videos\n\n- Ziehen Sie alle anderen USB-Laufwerke ab, vor allem mit vielen MP3s drauf\n\n- Kopieren Sie nur eine mp3 auf Ihr USB-Laufwerk \n\n- Kopiere nur ein paar Videos auf deinen Stick (du musst sie nicht löschen, umbenennen in * ._ mp4 ist auch OK, damit sie nicht mehr gefunden werden) \n\n- Starten Sie Ihr System neu und versuchen Sie direkt danach ein Video wiederzugeben \n\n- Schließe den Player und starte ihn wieder \n\n- Falls das nicht hilft, wechsel den Audioquelle.\n\n- Manchmal ist hängt das erste Video oder es lässt sich nicht starten aber durch Drücken von 'next' startet manchmal das nächste Video.\n\n- Videoformate: MP4, AVI, FLV, WMV"
+ }, {
+ "id": 4,
+ "title": "Mitwirken",
+ "msg": "Obwohl ich diese Benutzeroberfläche erstellt habe sind die wertvolleren Aspekte dieses Projekts die Tweak-Dateien. Communities wie Mazda3Revolution Forum und viele Entwickler legten die Grundlagen aus denen diese App gebaut wurde und wird auch weiterhin eine wichtige Rolle in der künftigen Entwicklungen spielen.\n\nWenn Sie einen Tweak beitragen wollen stellen Sie sicher, dass er eingehend getestet wurde.
Wenn Sie ein Experte in Javascript oder AngularJS sind, dann fühlen sich frei meinen Code zu bereinigen (ist ein wenig chaotisch ... sorry) oder implementieren sie mehr von der UI 'The Angular Way'
Github Repo",
+ "t2": "Probleme",
+ "msg2": "- FW Version 59.xx.xxx Apps werden nicht im Applikationsmenü angezeigt (Speedometer und Video Player) und haben ebenso ein Problem mit dem 'date to statusbar mod' (verweigert eine Installation für betroffenen FW Versionen.) \n- Wenn nicht genügend freier Speicherplatz auf dem USB-Laufwerk vorhanden ist, hängt es sich beim kopieren der Daten auf den USB-Stick auf. Dies kann passieren, wenn Sie die Swapdatei auf ein fast volles Laufwerk kopieren. Ich plane in einer zukünftigen Version das Problem zu beheben und eine Fehlermeldung zu zeigen. \n- Wenn Sie die 'No Background Behind Buttons' Tweak installieren und ein Farbschema installieren, wird es den 'No Background Behind Buttons' Tweak zurücksetzen. Es lässt sich umgehen wenn man nicht beide Tweaks in einer Installation auswählt.\n- Der Google Translator wird versuchen, bestimmte Teile des Codes zu übersetzen, die zu unerwarteten Effekten führen. Versuchen Sie damit eine Datei zu erstellen um diese in eine der nächsten Versionen aufzunehmen."
+ }, {
+ "id": 5,
+ "title": "Tipps & Tricks",
+ "msg": "Ich werde einige Tipps über diese App geben.
First of all uninstall Android Auto from your system. Click the CMU-Autorun link above and download the repository (download button is on the top right next to \"Find File\"). Copy the \"installer\" Folder to a blank USB drive to install the autorun script, this script will run every time the system boots up. The script looks at the root of the SD card (if available) for a file called \"run.sh\" and if found, executes the file. After installing, copy the \"dryrun\" folder onto an SD card to test that the installation worked correctly.
AA - Copy the contents of the \"headunit\" folder to the root of a blank SD card, connect before booting up infotanment system, a message will show the first time to confirm it is running. \nPlug in an Android Auto compatible phone to start.
Caveats: The device with the headunit files must be connected before booting up the infotainment system to run. Once the headunit app is running it is loaded into memory and will silently run in the background, this means that even if you remove the SD card the headunit app will still be running in memory. To stop the process you can do one of these things:
Turn off the vehicle for about 5-10 minutes
Hard reset (hold: mute + nav + back)
Login SSH, enter command 'killall headunit'
Want to run tweaks from an SD card?
With autorun script installed copy tweak files to an SD card. Rename \"tweaks.sh\" to \"run.sh\". Boot up the system and tweaks will run as expected. NOTE: I/O to SD card is slower than USB so installation will take longer.",
+ "t2": "Technical Talk",
+ "msg2": "Diese Anwendung ist mit Electron und AngularJS erstellt."
+ }, {
+ "id": 6,
+ "title": "Hilfe & Einstellungen",
+ "msg": "
",
+ "t2": "",
+ "msg2": ""
+ }],
"FAQs": {
"title": "FAQ",
"msg": "Häufig gestellte Fragen: ",
@@ -108,134 +100,101 @@
"q10": "Können Sie diesen oder jenen Tweak für uns schreiben?",
"a10": "Ich habe viele der bestehenden Tweaks und tweaks.sh als Ganzes verbessert aber ich habe einen Job und die Entwicklung der GUI für diese App ist eine ziemlich heftige Aufgabe. Ich habe Ideen für zukünftige Tweaks und ich werde Vorschläge entgegen nehmen aber ich kann nichts versprechen. Sie können mich mit dem Kontaktformular unten rechts in der App kontaktieren."
},
- "tourMsgs": [
- {
- "id": 0,
- "msg": "
Willkommen bei MZD-AIO-TI!
Mazda All In One Tweaks Installer
Ein Tool zum Installieren/Deinstallieren von 40+ 'Tweaks' für das Mazda MZD Infotainment System."
- },
- {
- "id": 1,
- "msg": "Das sind die Haupt-'Tweaks'. Man kann bei jedem wählen ob man ihn installieren oder deinstallieren will."
- },
- {
- "id": 2,
- "msg": "In dieser Seitenleiste werden alle momentan ausgewählten Tweaks aufgelistet. Hier erscheinen zusätzliche Optionen und Sie können auch auf einen beliebigen Eintrag in dieser Liste klicken, um Hilfeinformationen zu erhalten."
- },
- {
- "id": 3,
- "msg": "Zusätzliche Aktionen wie Backup-JCI-Ordner & WLAN aktivieren (für nordamerikanische Versionen)."
- },
- {
- "id": 4,
- "msg": "Diese Optionen können durch Auswahl ihrer Standardoptionen wieder in den ursprünglichen Zustand versetzt werden."
- },
- {
- "id": 5,
- "msg": "Die Menüs haben weitere Hilfethemen und Links zu Ressourcen und Dokumentation."
- },
- {
- "id": 6,
- "msg": "Wenn alle Tweaks ausgewählt wurden klicken Sie auf diese Schaltfläche um zu kompilieren!"
- },
- {
- "id": 7,
- "msg": "Kopieren Sie den gesamten Inhalt des Ordners \"_ copy_to_usb\" auf einen leeren, FAT32 formatierten USB-Stick. Stecken Sie den Stick in den USB-Port des Autos, das Installationsprogramm startet nach einigen Minuten automatisch. Entfernen Sie alle anderen USB-Geräte ausser die NAV-SD-Karte, diese sollte gesteckt bleiben. Bluetooth und WLAN ausschalten hilft auch. Nach Abschluss der Installation wird das System neu gestartet. Anschließend können Sie den USB-Stick entfernen und Ihre Änderungen werden übernommen."
- },
- {
- "id": 8,
- "msg": "Für weitere Informationen besuchen Sie MazdaTweaks.com!"
- }
- ],
- "popupMsgs": [
- {
- "id": 0,
- "msg": "Kompiliere... Bitte warten..."
- },
- {
- "id": 1,
- "msg": "Ort für 'Tweak'-Dateien"
- },
- {
- "id": 2,
- "msg": "(Für beste Ergebnisse, vor dem Kopieren USB-Laufwerk löschen)"
- },
- {
- "id": 3,
- "msg": "auf USB-Stick kopieren"
- },
- {
- "id": 4,
- "msg": "noch nicht"
- },
- {
- "id": 5,
- "msg": "Öffne USB-Stick"
- },
- {
- "id": 6,
- "msg": "USB-Stick gefunden"
- },
- {
- "id": 7,
- "msg": "Dateien auf den USB-Stick kopieren?"
- },
- {
- "id": 8,
- "msg": "USB-Stick wählen"
- },
- {
- "id": 9,
- "msg": "Keine USB-Laufwerke gefunden. Den gesamten Inhalt von"
- },
- {
- "id": 10,
- "msg": "auf einen leeren, FAT32 formatierten USB-Stick kopieren"
- },
- {
- "id": 11,
- "msg": "Kopiere auf USB-Stick"
- },
- {
- "id": 12,
- "msg": "Bitte warten"
- },
- {
- "id": 13,
- "msg": "Entpacke Swapfile nach"
- },
- {
- "id": 14,
- "msg": "Das dauert ein paar Minuten... bitte warten."
- },
- {
- "id": 15,
- "msg": "Swapfile ist 1 GB."
- },
- {
- "id": 16,
- "msg": "Während Sie warten, hier einige Informationen"
- },
- {
- "id": 17,
- "msg": "Neu beginnen"
- },
- {
- "id": 18,
- "msg": "AIO Compile Log ansehen"
- },
- {
- "id": 19,
- "msg": "Beenden"
- },
- {
- "id": 20,
- "msg": "Erfolgreich!"
- },
- {
- "id": 21,
- "msg": "_copy_to_usb Ordner nach Kopiervorgang löschen?"
- }
- ],
+ "tourMsgs": [{
+ "id": 0,
+ "msg": "
Willkommen bei MZD-AIO-TI!
Mazda All In One Tweaks Installer
Ein Tool zum Installieren/Deinstallieren von 40+ 'Tweaks' für das Mazda MZD Infotainment System."
+ }, {
+ "id": 1,
+ "msg": "Das sind die Haupt-'Tweaks'. Man kann bei jedem wählen ob man ihn installieren oder deinstallieren will."
+ }, {
+ "id": 2,
+ "msg": "In dieser Seitenleiste werden alle momentan ausgewählten Tweaks aufgelistet. Hier erscheinen zusätzliche Optionen und Sie können auch auf einen beliebigen Eintrag in dieser Liste klicken, um Hilfeinformationen zu erhalten."
+ }, {
+ "id": 3,
+ "msg": "Zusätzliche Aktionen wie Backup-JCI-Ordner & WLAN aktivieren (für nordamerikanische Versionen)."
+ }, {
+ "id": 4,
+ "msg": "Diese Optionen können durch Auswahl ihrer Standardoptionen wieder in den ursprünglichen Zustand versetzt werden."
+ }, {
+ "id": 5,
+ "msg": "Die Menüs haben weitere Hilfethemen und Links zu Ressourcen und Dokumentation."
+ }, {
+ "id": 6,
+ "msg": "Wenn alle Tweaks ausgewählt wurden klicken Sie auf diese Schaltfläche um zu kompilieren!"
+ }, {
+ "id": 7,
+ "msg": "Kopieren Sie den gesamten Inhalt des Ordners \"_ copy_to_usb\" auf einen leeren, FAT32 formatierten USB-Stick. Stecken Sie den Stick in den USB-Port des Autos, das Installationsprogramm startet nach einigen Minuten automatisch. Entfernen Sie alle anderen USB-Geräte ausser die NAV-SD-Karte, diese sollte gesteckt bleiben. Bluetooth und WLAN ausschalten hilft auch. Nach Abschluss der Installation wird das System neu gestartet. Anschließend können Sie den USB-Stick entfernen und Ihre Änderungen werden übernommen."
+ }, {
+ "id": 8,
+ "msg": "Für weitere Informationen besuchen Sie MazdaTweaks.com!"
+ }],
+ "popupMsgs": [{
+ "id": 0,
+ "msg": "Kompiliere... Bitte warten..."
+ }, {
+ "id": 1,
+ "msg": "Ort für 'Tweak'-Dateien"
+ }, {
+ "id": 2,
+ "msg": "(Für beste Ergebnisse, vor dem Kopieren USB-Laufwerk löschen)"
+ }, {
+ "id": 3,
+ "msg": "auf USB-Stick kopieren"
+ }, {
+ "id": 4,
+ "msg": "noch nicht"
+ }, {
+ "id": 5,
+ "msg": "Öffne USB-Stick"
+ }, {
+ "id": 6,
+ "msg": "USB-Stick gefunden"
+ }, {
+ "id": 7,
+ "msg": "Dateien auf den USB-Stick kopieren?"
+ }, {
+ "id": 8,
+ "msg": "USB-Stick wählen"
+ }, {
+ "id": 9,
+ "msg": "Keine USB-Laufwerke gefunden. Den gesamten Inhalt von"
+ }, {
+ "id": 10,
+ "msg": "auf einen leeren, FAT32 formatierten USB-Stick kopieren"
+ }, {
+ "id": 11,
+ "msg": "Kopiere auf USB-Stick"
+ }, {
+ "id": 12,
+ "msg": "Bitte warten"
+ }, {
+ "id": 13,
+ "msg": "Entpacke Swapfile nach"
+ }, {
+ "id": 14,
+ "msg": "Das dauert ein paar Minuten... bitte warten."
+ }, {
+ "id": 15,
+ "msg": "Swapfile ist 1 GB."
+ }, {
+ "id": 16,
+ "msg": "Während Sie warten, hier einige Informationen"
+ }, {
+ "id": 17,
+ "msg": "Neu beginnen"
+ }, {
+ "id": 18,
+ "msg": "AIO Compile Log ansehen"
+ }, {
+ "id": 19,
+ "msg": "Beenden"
+ }, {
+ "id": 20,
+ "msg": "Erfolgreich!"
+ }, {
+ "id": 21,
+ "msg": "_copy_to_usb Ordner nach Kopiervorgang löschen?"
+ }],
"mainOps": {
"wifi": {
"id": 0,
@@ -261,7 +220,7 @@
"label": "eigene Infotainment-Farben",
"safetylvl": "safe",
"toolTip": "
eigene Infotainment-Farben:
Ändert die Infotainment-Farben von Rot (Standard) in eine der folgenden Farben:
Blau
Grün
Orange
Pink
Lila
Silber
Gelb
Smooth Red
Themen: Themen ersetzen nur die Hauptmenü-Coins. Wird über ein Farbschema installiert, bleiben die benutzerdefinierten Farben mit dem Thema erhalten. enthaltene Themen:
carOS
Storm Troopers
Poker
Mazda Logos
schwebendes Logo
X-Men
PROTIP: Entferne alle Bilder die nicht geändert werden sollen. Das kann nur ein Ordner sein oder alle Bilder bis auf eines. ",
- "toolTip2":"
eigene Themen Option:
Nutze jedes beliebige für das MZD Infotainment System erstellte Thema oder erstelle einfach dein eigenes.
für beliebige Themen: lade und entpacke das Thema
Importiere config/jci/ aus dem Themen-Ordner in AIO.
HINWEIS: Hierbei werden nur die .png Dateien für das Thema kopiert
für selbst erstellte Themen:
Wird keine Thema gewählt: ein Ordner wird hier erstellt: _copy_to_usb/config/color-schemes/theme/jci/
Nach dem erstellen der Tweaks, kopiere deine Dateien in den erstellten jci Ordner im gleichen Verzeichnis der Bilder, die ersetzt werden sollen.
WARNUNG: WEN DIESE VARIANTE GEWÄHLT WIRD, ALLES AUS DEM JCI ORDNER WIRD AN DEN SELBEN ORT IM SYSTEM KOPIERT. NUTZE ES MIT VORSICHT.
",
+ "toolTip2": "
eigene Themen Option:
Nutze jedes beliebige für das MZD Infotainment System erstellte Thema oder erstelle einfach dein eigenes.
für beliebige Themen: lade und entpacke das Thema
Importiere config/jci/ aus dem Themen-Ordner in AIO.
HINWEIS: Hierbei werden nur die .png Dateien für das Thema kopiert
für selbst erstellte Themen:
Wird keine Thema gewählt: ein Ordner wird hier erstellt: _copy_to_usb/config/color-schemes/theme/jci/
Nach dem erstellen der Tweaks, kopiere deine Dateien in den erstellten jci Ordner im gleichen Verzeichnis der Bilder, die ersetzt werden sollen.
WARNUNG: WEN DIESE VARIANTE GEWÄHLT WIRD, ALLES AUS DEM JCI ORDNER WIRD AN DEN SELBEN ORT IM SYSTEM KOPIERT. NUTZE ES MIT VORSICHT.
Dump diagnostic files from the CMU to the USB Drive. Cleans out error files and core dumps from the system.
Bestätigung überspringen
Ermöglicht die Ausführung der Installation, ohne dass zur Bestätigung aufgefordert wird. Hauptsächlich wird dies für die Wiederherstellung verwendet, wenn der Touchscreen nicht reagiert.
Kopiere Backups:
Kopiert Original-Dateien der geänderten Systemdateien, zum aufbewahren.
Teste Backups:
Einige 'Tweaks' erstellen während der Installation Kopien vor und nach der Änderung. Wenn so etwas benötigt wird, werden die Dateien nach your-usb/bakups/test/ kopiert.
\nErmöglicht die Nutzung des Touchscreens auch während der Fahrt Fix Cluster Compass: Einige Dinge werden während der Fahrt deaktiviert aber der Touchscreen selbst und der Cluster-Kompass funktionieren",
- "img": "",
- "safetylvl": "safe",
- "extraOps": true,
- "advancedOp": false
- },
- {
- "id": 2,
- "OpName": "Haftungsausschluss entfernen",
- "INST": "Haftungsausschluss komplett entfernen?",
- "DEINST": "Haftungsausschluss-Zeit wieder auf 3.5 Sekunden setzen?",
- "toolTip": "
keinen Haftungsausschluss
Einblendungszeit des Haftungsausschlusses von 3.5 auf 0.5 Sekunden setzen.",
- "img": "",
- "safetylvl": "safe",
- "extraOps": true,
- "advancedOp": false
- },
- {
- "id": 3,
- "OpName": "Sicherheitswarnung der Rückfahrkamera",
- "INST": "Soll die Sicherheitswarnung der Rückfahrkamera entfernt werden?",
- "DEINST": "Sicherheitswarnung der Rückfahrkamera wieder einblenden?",
- "toolTip": "
Sicherheitswarnung der Rückfahrkamera
Entfernung der Sicherheitswarnung am unteren Rand bei aktivierter Rückfahrkamera",
- "img": "",
- "safetylvl": "safe",
- "extraOps": false,
- "advancedOp": false
- },
- {
- "id": 4,
- "OpName": "transparente Parksensor-Grafiken",
- "INST": "transparente Parksensor-Grafiken f. Näherungssensoren installieren",
- "DEINST": "transparente Parksensor-Grafiken f. Näherungssensoren zurücksetzen?",
- "toolTip": "
transparente Parksensor-Grafiken
für Näherungssensoren.##Bei aktivierter Rückfahrkamera wird oben rechts eine Draufsicht des Fahrzeugs angezeigt.#Die Grafiken werden durch Installation des Tweaks nun transparent angezeigt
Schleife für alle Listen und Untermenüs (Musik, Kontakte, usw.).#Man kann von der obersten Position einer Liste nach ganz unten springen und umgekehrt.
Verringerung der Wartezeit beim seitenweise blättern mit dem Multicommander von 1.5 auf 0.3 Sekunden.
",
- "img": "",
- "safetylvl": "safe",
- "extraOps": false,
- "advancedOp": false
- },
- {
- "id": 8,
- "OpName": "No More Beeps",
- "INST": "Disable All System Beeps",
- "DEINST": "Restore System Beeps",
- "toolTip": "
No More Beeps
Disable all 'Beeps' made by the system that are not silenced by the 'Settings > Sound > Beep' option. This also includes the beeps that cannot be silenced by the settings option.",
- "img": "",
- "safetylvl": "safe",
- "extraOps": false,
- "advancedOp": false
- },
- {
- "id": 9,
- "OpName": "Anordnung der Audioquellen",
- "INST": "Die Reihenfolge der Audioquellen sinnvoll anordnen?",
- "DEINST": "Die Reihenfolge der Audioquellen wieder zurücksetzen?",
- "toolTip": "
Anordnung der Audioquellen ändern.
Die Reihenfolge der Audioquellen wird sinnvoll angeordnet:
Bei 'Stumm' (Druck auf den Lautstärkebutton) werden abgespielte Medien pausiert.",
- "img": "",
- "safetylvl": "safe",
- "extraOps": false,
- "advancedOp": false
- },
- {
- "id": 11,
- "OpName": "Remove Message Reply",
- "INST": "Entfernt automatische Signatur in Nachrichten",
- "DEINST": "Setzt automatische Signatur in Nachrichten zurück",
- "toolTip": "
Remove Message Replies
Entfernt den Text 'Sent from my Mazda Quick Text System' beim beantworten von Nachrichten.",
- "img": "",
- "safetylvl": "safe",
- "extraOps": false,
- "advancedOp": false
- },
- {
- "id": 12,
- "OpName": "1 Sek Diag Menu",
- "INST": "Installiert 1 Sekunden Diagnosemenü",
- "DEINST": "Entfernt 1 Sek Diag Menu",
- "toolTip": "
1 Sek Diag Menu
Erlaubt es das Diagnosemnü nach dem anwählen der Uhr in der rechten oberen Ecke des Menüs für die Displayeinstellungen zu öffnen.",
- "img": "",
- "safetylvl": "warning",
- "extraOps": false,
- "advancedOp": false
- },
- {
- "id": 13,
- "OpName": "Boot Animation",
- "INST": "Deaktiviert Startanimation",
- "DEINST": "Aktiviert Startanimation",
- "toolTip": "
Es wird ein größeres Albumcover gezeigt. Extra Options: Full Width Titles & Hide Album Art",
- "img": "full_titles.png",
- "safetylvl": "safe",
- "extraOps": true,
- "advancedOp": false
- },
- {
- "id": 15,
- "OpName": "Remove Background Overlays",
- "INST": "Remove the background overlays",
- "DEINST": "Background behind buttons back to original",
- "toolTip": "
No Background Behind Buttons
Remove the background behind the buttons and other semi-transparent overlay backgrounds. Overlays that can be removed: Now Playing, List View, In Call, Text Message View, and Behind Buttons",
- "img": "NoButtonBackground.jpg",
- "safetylvl": "safe",
- "extraOps": true,
- "advancedOp": false
- },
- {
- "id": 16,
- "OpName": "Change Blank Album Art Frame",
- "INST": "Soll der leere Albumcover-Rahmen entfernt werden?",
- "DEINST": "Den leeren Rahmen für das Albumcover wieder einblenden?",
- "toolTip": "
Change Blank Album Art Frame
Der leere Albumcover-Rahmen wird entfernt wenn es keinen Eintrag in der Gracenote-Datenbank für den Künstler gibt.##Dafür wird das Bild eines Radios angezeigt, ebenso, wenn es kein Cover im MP3 Tag gibt.
Unterstützte Bildformate: jpg, jpeg, und png (beliebige Größe). Hinweis: Das gewählte Bild in 146px x 146px geändert ABER NICHT BESCHNITTEN und in .png umgewandelt
Fügt einen Videoplayer zum Applikationsmenü hinzu.",
- "img": "",
- "safetylvl": "safe",
- "extraOps": true,
- "advancedOp": false
- },
- {
- "id": 18,
- "OpName": "Swapfile",
- "INST": "Erstellt ein swapfile für media player v2",
- "DEINST": "Entfernt swapfile",
- "toolTip": "
Swapfile
Die Installation der Swapfile muss auf einem USB-Laufwerk mit Musik und/oder Filmen erfolgen, das im Fahrzeug verbleibt. Die Installationsdateien werden automatisch gelöscht, das Laufwerk kann im laufenden Betrieb nicht mehr entfernt werden, da das System es auch als Speicher verwendet. USB-Laufwerk nur entfernen, wenn das MZD-System ausgeschaltet ist.",
- "img": "",
- "safetylvl": "warning",
- "extraOps": true,
- "advancedOp": false
- },
- {
- "id": 19,
- "OpName": "Speedometer",
- "INST": "Speedometer installieren?",
- "DEINST": "Speedometer entfernen?\"",
- "toolTip": "
Speedometer mit Kompass als App im Anwendungsmenü
unter dem Tacho steht km/h oder mph, je nach Einstellung
Geschwindigkeitsbereich bis 240 km/h
Verbrauchswerte
Optimierte Grafikbausteine mit neuem Tachozeiger
Kleine Tachonadel für Topspeed im analogen Teil
Das Bild für die Tachoskala hat unterschiedlich lange oder helle Striche für 5, 10 und 20 km/h Sprünge
Rechte Tabelle komplett deutsch und Farbe/Größe optimiert
Alle Zahlen haben einen leichten Schatten um sich besser vom Hintergrund abzuheben.
Fahrtrichtungsabhängig rotierender Kompass zentral um die aktuelle Geschwindigkeit
Längen- und Breitengrad in rechter Tabelle
Animiertes Overlay in der Statusbar mit GPS Speed und Fahrtrichtung welches in jedem Menü angezeigt werden kann, durch Touch auf die Uhr kann es ein-/ausgeblendet werden
Wenn das Navi oder Rückfahrkamera gestartet wird, erscheint es automatisch
Für den kleinen Speedo in der Statusbar muss der 'date_to_statusbar' Mod V2.2 mit installiert werden, dieser wird nun also automatisch mit ausgewählt, falls nicht schon geschehen.
Nach der Installation kann der Smartphone-Bildschirm auf dem Infotainment-Display angezeigt werden (Spiegelung).
Es muss die castscreen app auf dem Android-Telefon installiert sein. (castscreen-1.0.apk) Die App befindet sich im Ordner 'config' Ihres USB-Sticks
Debug-Modus auf dem Smartphone aktivieren
Smartphone mit dem USB-Kabel an das Infotainment-System anschließen
App starten, Einstellungen: H264, 800x480 @ 160, 1 mbps, 127.0.0.1 eingeben und auf 'input receiver' drücken, anschließend 'Start' in der rechten oberen Ecke.
This is an experimental app that I made to test the limits of app functionality. For each success there were several failures.
Every function in this app is not guaranteed to work but here are some useful and/or fun things you can do:
'Apps' Tab:
Home: Goes home. This was the easy part.
Go to: USB A, USB B, Bluetooth (audio context).
Previous, Next - Works without changing contexts
Stop (and Start*) Android Auto Headunit process.
Killing headunit process with allow Bluetooth calling to work correctly.
Starting the process does not work properly yet, reboot CMU to restart headunit process.
Stop and Start Castscreen Receiver
Useful for troubleshooting if it is not functioning correctly.
Both of these do work but there is a possibility that a memory issue may prevent the process from properly starting in which case a reboot is required to allow the process to run.
'Tweaks' Tab:
Many familiar AIO layout related tweaks that can be applied on the fly
Applied tweaks are automatically saved to localStorage and saved tweaks are applied on boot.
Toggle each individual tweak on or off.
One button to reset all tweaks.
NOTE: AIO Tweaks App will not UNDO installed tweaks, they will mix and may result in unexpected and/or interesting layouts
'Options' Tab:
Touchscreen: NOTE: Changes to the touchscreen functionality are applied when the vehicle comes to a COMPLETE STOP
Enable Touchscreen and Menu
Normally disabled menu items while driving ie. Text messages & enter address for navigation,
Compass is disabled
Enable Touchscreen and Compass
Compass is functional
Menu items are disabled
Disable Touchscreen
Touchscreen and Menu Items disabled
Compass is functional
Show Background: Show only background (any button to exit).
Reboot: To Reboot.
",
- "img": "AIO_Tweaks-Screen.png",
- "safetylvl": "safe",
- "extraOps": false,
- "advancedOp": false
- },
- {
- "id": 21,
- "OpName": "Media Order Patch & FLAC Support",
- "INST": "Media_order patch u. FLAC support installieren?",
- "DEINST": "Media_order patch u. FLAC support entfernen?",
- "toolTip": "
Media Order Patching und FLAC Support
Musik wird nun alphabetisch sortiert und nicht mehr nach Datum mit neusten Einträgen zuerst
Support für Audio-Format FLAC
Audio Order Patch & FLAC Support ist nur kompatibel mit folgenden FW Versionen:
",
- "img": "",
- "safetylvl": "warning",
- "extraOps": false,
- "advancedOp": true
- }
- ]
+ "tweakOps": [{
+ "id": 1,
+ "OpName": "Touchscreen während Fahrt aktivieren",
+ "INST": "Den Touchscreen auch während der Fahrt akivieren?",
+ "DEINST": "Den Touchscreen während der Fahrt wieder deaktivieren?",
+ "toolTip": "
Touchscreen
\nErmöglicht die Nutzung des Touchscreens auch während der Fahrt Fix Cluster Compass: Einige Dinge werden während der Fahrt deaktiviert aber der Touchscreen selbst und der Cluster-Kompass funktionieren",
+ "img": "",
+ "safetylvl": "safe",
+ "extraOps": true,
+ "advancedOp": false
+ }, {
+ "id": 2,
+ "OpName": "Haftungsausschluss entfernen",
+ "INST": "Haftungsausschluss komplett entfernen?",
+ "DEINST": "Haftungsausschluss-Zeit wieder auf 3.5 Sekunden setzen?",
+ "toolTip": "
keinen Haftungsausschluss
Einblendungszeit des Haftungsausschlusses von 3.5 auf 0.5 Sekunden setzen.",
+ "img": "",
+ "safetylvl": "safe",
+ "extraOps": true,
+ "advancedOp": false
+ }, {
+ "id": 3,
+ "OpName": "Sicherheitswarnung der Rückfahrkamera",
+ "INST": "Soll die Sicherheitswarnung der Rückfahrkamera entfernt werden?",
+ "DEINST": "Sicherheitswarnung der Rückfahrkamera wieder einblenden?",
+ "toolTip": "
Sicherheitswarnung der Rückfahrkamera
Entfernung der Sicherheitswarnung am unteren Rand bei aktivierter Rückfahrkamera",
+ "img": "",
+ "safetylvl": "safe",
+ "extraOps": false,
+ "advancedOp": false
+ }, {
+ "id": 4,
+ "OpName": "transparente Parksensor-Grafiken",
+ "INST": "transparente Parksensor-Grafiken f. Näherungssensoren installieren",
+ "DEINST": "transparente Parksensor-Grafiken f. Näherungssensoren zurücksetzen?",
+ "toolTip": "
transparente Parksensor-Grafiken
für Näherungssensoren.##Bei aktivierter Rückfahrkamera wird oben rechts eine Draufsicht des Fahrzeugs angezeigt.#Die Grafiken werden durch Installation des Tweaks nun transparent angezeigt
Schleife für alle Listen und Untermenüs (Musik, Kontakte, usw.).#Man kann von der obersten Position einer Liste nach ganz unten springen und umgekehrt.
Verringerung der Wartezeit beim seitenweise blättern mit dem Multicommander von 1.5 auf 0.3 Sekunden.
",
+ "img": "",
+ "safetylvl": "safe",
+ "extraOps": false,
+ "advancedOp": false
+ }, {
+ "id": 8,
+ "OpName": "No More Beeps",
+ "INST": "Disable All System Beeps",
+ "DEINST": "Restore System Beeps",
+ "toolTip": "
No More Beeps
Disable all 'Beeps' made by the system that are not silenced by the 'Settings > Sound > Beep' option. This also includes the beeps that cannot be silenced by the settings option.",
+ "img": "",
+ "safetylvl": "safe",
+ "extraOps": false,
+ "advancedOp": false
+ }, {
+ "id": 9,
+ "OpName": "Anordnung der Audioquellen",
+ "INST": "Die Reihenfolge der Audioquellen sinnvoll anordnen?",
+ "DEINST": "Die Reihenfolge der Audioquellen wieder zurücksetzen?",
+ "toolTip": "
Anordnung der Audioquellen ändern.
Die Reihenfolge der Audioquellen wird sinnvoll angeordnet:
Bei 'Stumm' (Druck auf den Lautstärkebutton) werden abgespielte Medien pausiert.",
+ "img": "",
+ "safetylvl": "safe",
+ "extraOps": false,
+ "advancedOp": false
+ }, {
+ "id": 11,
+ "OpName": "Remove Message Reply",
+ "INST": "Entfernt automatische Signatur in Nachrichten",
+ "DEINST": "Setzt automatische Signatur in Nachrichten zurück",
+ "toolTip": "
Remove Message Replies
Entfernt den Text 'Sent from my Mazda Quick Text System' beim beantworten von Nachrichten.",
+ "img": "",
+ "safetylvl": "safe",
+ "extraOps": false,
+ "advancedOp": false
+ }, {
+ "id": 12,
+ "OpName": "1 Sek Diag Menu",
+ "INST": "Installiert 1 Sekunden Diagnosemenü",
+ "DEINST": "Entfernt 1 Sek Diag Menu",
+ "toolTip": "
1 Sek Diag Menu
Erlaubt es das Diagnosemnü nach dem anwählen der Uhr in der rechten oberen Ecke des Menüs für die Displayeinstellungen zu öffnen.",
+ "img": "",
+ "safetylvl": "warning",
+ "extraOps": false,
+ "advancedOp": false
+ }, {
+ "id": 13,
+ "OpName": "Boot Animation",
+ "INST": "Deaktiviert Startanimation",
+ "DEINST": "Aktiviert Startanimation",
+ "toolTip": "
Es wird ein größeres Albumcover gezeigt. Extra Options: Full Width Titles & Hide Album Art",
+ "img": "full_titles.png",
+ "safetylvl": "safe",
+ "extraOps": true,
+ "advancedOp": false
+ }, {
+ "id": 15,
+ "OpName": "Remove Background Overlays",
+ "INST": "Remove the background overlays",
+ "DEINST": "Background behind buttons back to original",
+ "toolTip": "
No Background Behind Buttons
Remove the background behind the buttons and other semi-transparent overlay backgrounds. Overlays that can be removed: Now Playing, List View, In Call, Text Message View, and Behind Buttons",
+ "img": "NoButtonBackground.jpg",
+ "safetylvl": "safe",
+ "extraOps": true,
+ "advancedOp": false
+ }, {
+ "id": 16,
+ "OpName": "Change Blank Album Art Frame",
+ "INST": "Soll der leere Albumcover-Rahmen entfernt werden?",
+ "DEINST": "Den leeren Rahmen für das Albumcover wieder einblenden?",
+ "toolTip": "
Change Blank Album Art Frame
Der leere Albumcover-Rahmen wird entfernt wenn es keinen Eintrag in der Gracenote-Datenbank für den Künstler gibt.##Dafür wird das Bild eines Radios angezeigt, ebenso, wenn es kein Cover im MP3 Tag gibt.
Unterstützte Bildformate: jpg, jpeg, und png (beliebige Größe). Hinweis: Das gewählte Bild in 146px x 146px geändert ABER NICHT BESCHNITTEN und in .png umgewandelt
Fügt einen Videoplayer zum Applikationsmenü hinzu.",
+ "img": "",
+ "safetylvl": "safe",
+ "extraOps": true,
+ "advancedOp": false
+ }, {
+ "id": 18,
+ "OpName": "Swapfile",
+ "INST": "Erstellt ein swapfile für media player v2",
+ "DEINST": "Entfernt swapfile",
+ "toolTip": "
Swapfile
Die Installation der Swapfile muss auf einem USB-Laufwerk mit Musik und/oder Filmen erfolgen, das im Fahrzeug verbleibt. Die Installationsdateien werden automatisch gelöscht, das Laufwerk kann im laufenden Betrieb nicht mehr entfernt werden, da das System es auch als Speicher verwendet. USB-Laufwerk nur entfernen, wenn das MZD-System ausgeschaltet ist.",
+ "img": "",
+ "safetylvl": "warning",
+ "extraOps": true,
+ "advancedOp": false
+ }, {
+ "id": 19,
+ "OpName": "Speedometer",
+ "INST": "Speedometer installieren?",
+ "DEINST": "Speedometer entfernen?\"",
+ "toolTip": "
Speedometer mit Kompass als App im Anwendungsmenü
unter dem Tacho steht km/h oder mph, je nach Einstellung
Geschwindigkeitsbereich bis 240 km/h
Verbrauchswerte
Optimierte Grafikbausteine mit neuem Tachozeiger
Kleine Tachonadel für Topspeed im analogen Teil
Das Bild für die Tachoskala hat unterschiedlich lange oder helle Striche für 5, 10 und 20 km/h Sprünge
Rechte Tabelle komplett deutsch und Farbe/Größe optimiert
Alle Zahlen haben einen leichten Schatten um sich besser vom Hintergrund abzuheben.
Fahrtrichtungsabhängig rotierender Kompass zentral um die aktuelle Geschwindigkeit
Längen- und Breitengrad in rechter Tabelle
Animiertes Overlay in der Statusbar mit GPS Speed und Fahrtrichtung welches in jedem Menü angezeigt werden kann, durch Touch auf die Uhr kann es ein-/ausgeblendet werden
Wenn das Navi oder Rückfahrkamera gestartet wird, erscheint es automatisch
Für den kleinen Speedo in der Statusbar muss der 'date_to_statusbar' Mod V2.2 mit installiert werden, dieser wird nun also automatisch mit ausgewählt, falls nicht schon geschehen.
Nach der Installation kann der Smartphone-Bildschirm auf dem Infotainment-Display angezeigt werden (Spiegelung).
Es muss die castscreen app auf dem Android-Telefon installiert sein. (castscreen-1.0.apk) Die App befindet sich im Ordner 'config' Ihres USB-Sticks
Debug-Modus auf dem Smartphone aktivieren
Smartphone mit dem USB-Kabel an das Infotainment-System anschließen
App starten, Einstellungen: H264, 800x480 @ 160, 1 mbps, 127.0.0.1 eingeben und auf 'input receiver' drücken, anschließend 'Start' in der rechten oberen Ecke.
This is an experimental app that I made to test the limits of app functionality. For each success there were several failures.
Every function in this app is not guaranteed to work but here are some useful and/or fun things you can do:
'Apps' Tab:
Home: Goes home. This was the easy part.
Go to: USB A, USB B, Bluetooth (audio context).
Previous, Next - Works without changing contexts
Stop (and Start*) Android Auto Headunit process.
Killing headunit process with allow Bluetooth calling to work correctly.
Starting the process does not work properly yet, reboot CMU to restart headunit process.
Stop and Start Castscreen Receiver
Useful for troubleshooting if it is not functioning correctly.
Both of these do work but there is a possibility that a memory issue may prevent the process from properly starting in which case a reboot is required to allow the process to run.
'Tweaks' Tab:
Many familiar AIO layout related tweaks that can be applied on the fly
Applied tweaks are automatically saved to localStorage and saved tweaks are applied on boot.
Toggle each individual tweak on or off.
One button to reset all tweaks.
NOTE: AIO Tweaks App will not UNDO installed tweaks, they will mix and may result in unexpected and/or interesting layouts
'Options' Tab:
Touchscreen: NOTE: Changes to the touchscreen functionality are applied when the vehicle comes to a COMPLETE STOP
Enable Touchscreen and Menu
Normally disabled menu items while driving ie. Text messages & enter address for navigation,
Compass is disabled
Enable Touchscreen and Compass
Compass is functional
Menu items are disabled
Disable Touchscreen
Touchscreen and Menu Items disabled
Compass is functional
Show Background: Show only background (any button to exit).
Reboot: To Reboot.
",
+ "img": "AIO_Tweaks-Screen.png",
+ "safetylvl": "safe",
+ "extraOps": false,
+ "advancedOp": false
+ }, {
+ "id": 21,
+ "OpName": "Media Order Patch & FLAC Support",
+ "INST": "Media_order patch u. FLAC support installieren?",
+ "DEINST": "Media_order patch u. FLAC support entfernen?",
+ "toolTip": "
Media Order Patching und FLAC Support
Musik wird nun alphabetisch sortiert und nicht mehr nach Datum mit neusten Einträgen zuerst
Support für Audio-Format FLAC
Audio Order Patch & FLAC Support ist nur kompatibel mit folgenden FW Versionen:
",
+ "img": "",
+ "safetylvl": "warning",
+ "extraOps": false,
+ "advancedOp": true
+ }]
}
diff --git a/app/lang/magyar.aio.json b/app/lang/magyar.aio.json
index 9fc6c02..aa5916f 100644
--- a/app/lang/magyar.aio.json
+++ b/app/lang/magyar.aio.json
@@ -33,57 +33,49 @@
"lang": "Magyar"
}
},
- "helpMsgs": [
- {
- "id": 0,
- "title": "Bemutatás",
- "msg": "Telepítő és törlő program, több mint 40 \"Tweak\"-hez a Mazda Infotainment rendszeréhez a következő járművekben: Mazda 2 (DJ), Mazda 3 (BM), Mazda 6 (GJ), Mazda CX-3 (DK), Mazda CX-5 (KE), Mazda MX-5 Roadster (ND) and new 2017 Mazda CX-9 (TC) Fiat Spider, Toyota ScionA
Mi is az a MZD-AIO-TI?
My Egy jó barátom Siutsch összegyűjtötte az általa használt tweak-ek fájljait, abból a célból, hogy egyesítve egy felületen ki lehessen választani, hogy melyekre van szüksége valakinek és azokat egyszerűen telepíteni és újra törölni tudja. Ebből született egy CMD (command line) alapú program, mely gyorsan elérte a határait és hiányzott a manapság megszokott \"app\"-hatás. Ekkor vettem fel Siutsch-csal a kapcsolatot és felajánlottam neki, hogy együtt csináljunk egy programot számítógépre, amit mindenki egyszerűen tud kezelni és nem igényel különösebb technikai tudást. Ebből lett az itt látható MZD-AIO-TI. \n\n ###### **Ezért kérlek nagyon ügyelj arra, hogy mit is csinálsz.** \n\nEz az applikáció automatikusan frissül, ha új verzió lesz elérhető. \n\nThis program is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version.\n\nThis program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the Copyleft Under The GNU General Public License for more details.",
- "t2": "",
- "msg2": "
\n Vedd figyelembe, hogy ezekkel a saját fejegységedbe nyúlsz bele, amely így nem megfelelő használat mellett tönkre is mehet! AnyoneMindenki, aki nem biztos abban, hogy mit is csinál, inkább ne végezze el a változtatásokat egyedül, hanem kérjen a fórum-on segítséget.
Én nem felelek semmilyen kárért, ami a használatból következik.
HavingMindazonáltal a MZD-AIO-TI úgy lett fejlesztve, hogy gondoltam a biztonságra is, ezért három kategóriába sorolom a tweak-eket: \n\n - Biztonságos - sokat tesztelt és általánosan is biztonságosnak tekintett - Figyelem - Érzékeny rendszerfájlokat módosít, vagy még nem lett tesztelve. Általában nagy biztonsággal, használható kellő figyelem mellett! Ezek közül a legtöbb rövid időn belül átkerülhet a \"biztonságos\" kategóriába.\n - Fejlesztés alatt - Ezek a tweak-ek fejlesztés alatt álnak, vagy még nem működnek. Csak az Android Auto van jelenleg ezen a szinten, de úgy tűnik, hogy nemrégiben sikerült megoldaniuk a problémákat.",
- "t2": "Kompatibilis firmware verziók:",
- "msg2": "###### 55.00.650A/753A/760A / 56.00.521A-NA(NA N) \n\n###### 56.00.100A/230A/240B/511A/512A/513C/514A-ADR(4A N) \n\n###### 56.00.100A/230A/511A/512A/513A/513B/513C-EU \n\n###### 56.00.401A/403A-JP | 56.00.100A-CHN \n\n###### 58.00.250A-NA(NA N) / 58.00.251A-ADR(4A N) \n\n59.00.326A/330A/342A/442A/443C-ADR(4A N) \n\n###### 59.00.330A/441A/443A/446A/450A-NA(N NA) \n\n###### 59.00.330A/331A/443C/447A/449A-EU \n\n###### Csak >= v55. firmware verziókhoz! NE HASZNÁLD V30/31/33 FW-hez VAGY TÖNKRE TESZED A FEJEGYSÉGED, mely így folyamatosan a Mazda logónál fog maradni! A biztonság kedvéért a program leállítja a telepítést, ha egy nem kompatibilis verziót észlel! Ahhoz, hogy ezt felülírd, át kell írnod a tweaks.sh-ban a kódrészt, amely a verzióbiztonságért felel, vagy hozzá kell addnod a saját verziódat a támogatottak listájához. **CSAK SAJÁT FELELŐSSÉGRE!**"
- },
- {
- "id": 2,
- "title": "Visszaállítás",
- "msg": "**Szinte minden tweak-et** le lehet törölni, hogy visszaálljon a rendszer az alaphelyzetbe.
Alapértelmezett háttér:
\n\n - AZ AIO minden módosított fájlról egy biztonsági mentés készít, a változtatás előtt. Ezeket a fájlokat használja az eredeti állípot visszaállításához. Ezenfelül az AIO szintén tartalmazza az eredeti fájlok másolatát, arra az esetre, ha mégse állnának biztonsági mentések rendelkezésere. Jövőbeni verziókban lesz egy olyan funkció, amely lehetővé teszi, hogy a saját rendszer fájlai legyenek az AIO-ba elmentve, így leegyszerűsítve a jövőbeni verziók támogatását. - Általánosságban kimondható, hogy minden kompatibilis FW verzióval nyugodtan visszaállíthatóak olyan tweak-ek is, melyek nem lettek telepítve, DE tartsd észben, hogy ebben az esetben az AIO átírja az eredeti fájlokat a központi biztonsági mentésben található fájlokkal. Tehát lehetőség szerint, ne törölj olyan tweak-eket, amelyek nem lettek telepítve, hogy ne legyen felesleges változtatás a rendszereden.",
- "t2": "Mely beállításokat nem lehet visszaállítani az AIO-val?",
- "msg2": "
MZD-AIO-TI néhány olyan fájlt is módosít, amelyet nem lehet az applikáció segítségével visszaállítani.
Ez a három fájl soha ne legyen visszaállítva, mert bármely hiba a visszaállítás során ahhoz vezethet, hogy az MZD örökre fennakadjon. Ezek a fájlok csak azért kerülnek változtatásra, hogy ne tudjon a rendszer egy váratlan újraindítást produkálni telepítés közben. **Csak az első indításkor** amikor a telepítő lefut a rendszeren, biztonsági mentést készít ezekről a fájlokról. **NE VÁLTOZTASD MAGAD EZEKET A FÁJLOKAT, KÜLÖNBEN TÖNKRETEHETED A RENDSZEREDET!**\n\n- /jci/sm/sm.conf (Android Auto is módosítja)\n- /jci/opera/opera_home/opera.ini \n- /jci/opera/opera_dir/userjs/fps.js\n\n##### These Ennek a 2 tweak-nek nincs visszaállítási lehetősége, mert ezeknek már alapból működnie kéne.\n\n- Wifi (É-Ameriaki régió)\n- ssh_bringback"
- },
- {
- "id": 3,
- "title": "Hibaelhárítás",
- "msg": "Itt van néhány gyakori probléma és a megoldásuk. \n#### Ha folyamatosan hibákba futsz vagy elakadsz::\n - Általában hozzáférési jogosultságokkal van probléma: a kívánt erőforrás foglalt, vagy le van terhelve. Ez akkor lép fel, ha egy fájlt vagy mappát nem lehet elérni, mert már meg van nyitva, vagy éppen egy másik program használja. Kompilálás alatt zárj be minden mappát és dokumentumot, főleg azokat amelyeket a MZD-AIO-TI is használ(*pl: '_copy_to_usb'*)\n - ISokszor próbáltam egyszerre az össze tweak kompilálását, ha te esetleg mégis valami hibába futsz folyamatosan, kérlek jelezd. - Ha a telepítő nem indul amikor bedugod az autóban, akkor formázd újra FAT32 formátumra a pendrice-odat és csatlakoztass le minden más USB eszközt. Az is segíthet, ha kikapcsolod a bluetooth-t. A Navigáció SD kártyája maradjon bent.",
- "t2": "Probléma a videó lejátszóval",
- "msg2": " Próbáld:\n\n- Helyezd a filmjeidet egy 'Movies' nevű mappába! \n\n- Használj H264 videó codec-et és MPEG-4 AAC audió codec-et videókhoz - Csatlakoztass le minden USB eszközt, különösen azokat, amelyek sok MP3-at tartalmaznak - Csak egy MP3-at másolj a videók mellé a pendrivera - Csak kevés videót másolj a pendrive-odra (nem kell törölnöd fájlokat, elég ha megváltoztatod a kiterjesztését *._mp4-re, mert így már nem lesznek felismerve) \n\n- Indítsd újra a gépedet és próbálj meg lejátszani egy videót - Zárd be a lejátszót és indítsd újra - Ha ez nem segít, akkor változtasd meg a hangbemenetet - Néha az első videó akadozik, vagy nem indul el, kattints a \"következő\" gombra, amely így a következő videót fogja elindítani - Támogatott videóformátumok: MP4, AVI, FLV, WMV"
- },
- {
- "id": 4,
- "title": "Hozzájárulás",
- "msg": "A kezelői felület az én munkám, de a projekt legfontosabb részei a tweak-ek maguk. Közösségek, mint pl. a Mazda3Revolution Forum és sok fejlesztő tette le az alapokat, melyekre ez a program épül és a jövőbeni fejlesztésre is nagy befolyással lesznek. Ha szeretnéd, hogy a te általad fejlesztett tweak is bekerüljön, akkor teszteld először a lehető legalaposabban.
Ha JavaScript vagy AngularJS varázsló vagy, akkor nyugodtan takarítsd fel a kódot (kicsit káosz van benne ... bocsi) vagy implementáld a felületet \"angulárisan\"
Github Repo",
- "t2": "Problémák",
- "msg2": "- Az 59.xx.xxx FW verziók app-jei nem láthatók a menüben (Speedometer és Video Player) és a \"dátum a fejlécben\" mod is problémás (az érintett FW verziókon nem lehet telepíteni) - Hogyha nincs elég hely a pendrive-on, akkor legfagy a program a fájlok másolása közben. Ez általában akkor történik, amikor a swap fájlt másoljuk egy olyan pendrive-ra, amely már majdnem tele van. Egy jövőbeni verzió megoldja majd a problémát és egy felugró hibaablak fogja jelezni ezt. - Ha telepítetted a \"háttérkép nélküli gombok\" mod-ot és telepíted a színsémákat, akkor visszaáll a gombok háttere. Ezt megelőzheted, ha mindkét tweak-et egyszere telepíted. - A Google Fordító megpróbálja a kódot néhány helyen lefordítani, ez nem várt dolgokat produkálhat. Használd ezt a fordítóban egy új nyelvre való fordításra, hogy az bekerüljön a jövőbeni verziókba és mások is tudják használni fordításkor."
- },
- {
- "id": 5,
- "title": "Tippek & trükkök",
- "msg": "I Itt találhatsz néhány trükköt ennek a programnak a használatáról. Itt van egy leírás, hogy hogyan indítsd el a CMU rendszert a gépeden.
First of all uninstall Android Auto from your system. Click the CMU-Autorun link above and download the repository (download button is on the top right next to \"Find File\"). Copy the \"installer\" Folder to a blank USB drive to install the autorun script, this script will run every time the system boots up. The script looks at the root of the SD card (if available) for a file called \"run.sh\" and if found, executes the file. After installing, copy the \"dryrun\" folder onto an SD card to test that the installation worked correctly.
AA - Copy the contents of the \"headunit\" folder to the root of a blank SD card, connect before booting up infotanment system, a message will show the first time to confirm it is running. \nPlug in an Android Auto compatible phone to start.
Caveats: The device with the headunit files must be connected before booting up the infotainment system to run. Once the headunit app is running it is loaded into memory and will silently run in the background, this means that even if you remove the SD card the headunit app will still be running in memory. To stop the process you can do one of these things:
Turn off the vehicle for about 5-10 minutes
Hard reset (hold: mute + nav + back)
Login SSH, enter command 'killall headunit'
Want to run tweaks from an SD card?
With autorun script installed copy tweak files to an SD card. Rename \"tweaks.sh\" to \"run.sh\". Boot up the system and tweaks will run as expected. NOTE: I/O to SD card is slower than USB so installation will take longer.",
- "t2": "Technikai rész",
- "msg2": "Ez az app Electron-nal and AngularJS-szel készült"
- },
- {
- "id": 6,
- "title": "Segítség & Beállítások",
- "msg": "
"
- }
- ],
+ "helpMsgs": [{
+ "id": 0,
+ "title": "Bemutatás",
+ "msg": "Telepítő és törlő program, több mint 40 \"Tweak\"-hez a Mazda Infotainment rendszeréhez a következő járművekben: Mazda 2 (DJ), Mazda 3 (BM), Mazda 6 (GJ), Mazda CX-3 (DK), Mazda CX-5 (KE), Mazda MX-5 Roadster (ND) and new 2017 Mazda CX-9 (TC) Fiat Spider, Toyota ScionA
Mi is az a MZD-AIO-TI?
My Egy jó barátom Siutsch összegyűjtötte az általa használt tweak-ek fájljait, abból a célból, hogy egyesítve egy felületen ki lehessen választani, hogy melyekre van szüksége valakinek és azokat egyszerűen telepíteni és újra törölni tudja. Ebből született egy CMD (command line) alapú program, mely gyorsan elérte a határait és hiányzott a manapság megszokott \"app\"-hatás. Ekkor vettem fel Siutsch-csal a kapcsolatot és felajánlottam neki, hogy együtt csináljunk egy programot számítógépre, amit mindenki egyszerűen tud kezelni és nem igényel különösebb technikai tudást. Ebből lett az itt látható MZD-AIO-TI. \n\n ###### **Ezért kérlek nagyon ügyelj arra, hogy mit is csinálsz.** \n\nEz az applikáció automatikusan frissül, ha új verzió lesz elérhető. \n\nThis program is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version.\n\nThis program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the Copyleft Under The GNU General Public License for more details.",
+ "t2": "",
+ "msg2": "
\n Vedd figyelembe, hogy ezekkel a saját fejegységedbe nyúlsz bele, amely így nem megfelelő használat mellett tönkre is mehet! AnyoneMindenki, aki nem biztos abban, hogy mit is csinál, inkább ne végezze el a változtatásokat egyedül, hanem kérjen a fórum-on segítséget.
Én nem felelek semmilyen kárért, ami a használatból következik.
HavingMindazonáltal a MZD-AIO-TI úgy lett fejlesztve, hogy gondoltam a biztonságra is, ezért három kategóriába sorolom a tweak-eket: \n\n - Biztonságos - sokat tesztelt és általánosan is biztonságosnak tekintett - Figyelem - Érzékeny rendszerfájlokat módosít, vagy még nem lett tesztelve. Általában nagy biztonsággal, használható kellő figyelem mellett! Ezek közül a legtöbb rövid időn belül átkerülhet a \"biztonságos\" kategóriába.\n - Fejlesztés alatt - Ezek a tweak-ek fejlesztés alatt álnak, vagy még nem működnek. Csak az Android Auto van jelenleg ezen a szinten, de úgy tűnik, hogy nemrégiben sikerült megoldaniuk a problémákat.",
+ "t2": "Kompatibilis firmware verziók:",
+ "msg2": "###### 55.00.650A/753A/760A / 56.00.521A-NA(NA N) \n\n###### 56.00.100A/230A/240B/511A/512A/513C/514A-ADR(4A N) \n\n###### 56.00.100A/230A/511A/512A/513A/513B/513C-EU \n\n###### 56.00.401A/403A-JP | 56.00.100A-CHN \n\n###### 58.00.250A-NA(NA N) / 58.00.251A-ADR(4A N) \n\n59.00.326A/330A/342A/442A/443C-ADR(4A N) \n\n###### 59.00.330A/441A/443A/446A/450A-NA(N NA) \n\n###### 59.00.330A/331A/443C/447A/449A-EU \n\n###### Csak >= v55. firmware verziókhoz! NE HASZNÁLD V30/31/33 FW-hez VAGY TÖNKRE TESZED A FEJEGYSÉGED, mely így folyamatosan a Mazda logónál fog maradni! A biztonság kedvéért a program leállítja a telepítést, ha egy nem kompatibilis verziót észlel! Ahhoz, hogy ezt felülírd, át kell írnod a tweaks.sh-ban a kódrészt, amely a verzióbiztonságért felel, vagy hozzá kell addnod a saját verziódat a támogatottak listájához. **CSAK SAJÁT FELELŐSSÉGRE!**"
+ }, {
+ "id": 2,
+ "title": "Visszaállítás",
+ "msg": "**Szinte minden tweak-et** le lehet törölni, hogy visszaálljon a rendszer az alaphelyzetbe.
Alapértelmezett háttér:
\n\n - AZ AIO minden módosított fájlról egy biztonsági mentés készít, a változtatás előtt. Ezeket a fájlokat használja az eredeti állípot visszaállításához. Ezenfelül az AIO szintén tartalmazza az eredeti fájlok másolatát, arra az esetre, ha mégse állnának biztonsági mentések rendelkezésere. Jövőbeni verziókban lesz egy olyan funkció, amely lehetővé teszi, hogy a saját rendszer fájlai legyenek az AIO-ba elmentve, így leegyszerűsítve a jövőbeni verziók támogatását. - Általánosságban kimondható, hogy minden kompatibilis FW verzióval nyugodtan visszaállíthatóak olyan tweak-ek is, melyek nem lettek telepítve, DE tartsd észben, hogy ebben az esetben az AIO átírja az eredeti fájlokat a központi biztonsági mentésben található fájlokkal. Tehát lehetőség szerint, ne törölj olyan tweak-eket, amelyek nem lettek telepítve, hogy ne legyen felesleges változtatás a rendszereden.",
+ "t2": "Mely beállításokat nem lehet visszaállítani az AIO-val?",
+ "msg2": "
MZD-AIO-TI néhány olyan fájlt is módosít, amelyet nem lehet az applikáció segítségével visszaállítani.
Ez a három fájl soha ne legyen visszaállítva, mert bármely hiba a visszaállítás során ahhoz vezethet, hogy az MZD örökre fennakadjon. Ezek a fájlok csak azért kerülnek változtatásra, hogy ne tudjon a rendszer egy váratlan újraindítást produkálni telepítés közben. **Csak az első indításkor** amikor a telepítő lefut a rendszeren, biztonsági mentést készít ezekről a fájlokról. **NE VÁLTOZTASD MAGAD EZEKET A FÁJLOKAT, KÜLÖNBEN TÖNKRETEHETED A RENDSZEREDET!**\n\n- /jci/sm/sm.conf (Android Auto is módosítja)\n- /jci/opera/opera_home/opera.ini \n- /jci/opera/opera_dir/userjs/fps.js\n\n##### These Ennek a 2 tweak-nek nincs visszaállítási lehetősége, mert ezeknek már alapból működnie kéne.\n\n- Wifi (É-Ameriaki régió)\n- ssh_bringback"
+ }, {
+ "id": 3,
+ "title": "Hibaelhárítás",
+ "msg": "Itt van néhány gyakori probléma és a megoldásuk. \n#### Ha folyamatosan hibákba futsz vagy elakadsz::\n - Általában hozzáférési jogosultságokkal van probléma: a kívánt erőforrás foglalt, vagy le van terhelve. Ez akkor lép fel, ha egy fájlt vagy mappát nem lehet elérni, mert már meg van nyitva, vagy éppen egy másik program használja. Kompilálás alatt zárj be minden mappát és dokumentumot, főleg azokat amelyeket a MZD-AIO-TI is használ(*pl: '_copy_to_usb'*)\n - ISokszor próbáltam egyszerre az össze tweak kompilálását, ha te esetleg mégis valami hibába futsz folyamatosan, kérlek jelezd. - Ha a telepítő nem indul amikor bedugod az autóban, akkor formázd újra FAT32 formátumra a pendrice-odat és csatlakoztass le minden más USB eszközt. Az is segíthet, ha kikapcsolod a bluetooth-t. A Navigáció SD kártyája maradjon bent.",
+ "t2": "Probléma a videó lejátszóval",
+ "msg2": " Próbáld:\n\n- Helyezd a filmjeidet egy 'Movies' nevű mappába! \n\n- Használj H264 videó codec-et és MPEG-4 AAC audió codec-et videókhoz - Csatlakoztass le minden USB eszközt, különösen azokat, amelyek sok MP3-at tartalmaznak - Csak egy MP3-at másolj a videók mellé a pendrivera - Csak kevés videót másolj a pendrive-odra (nem kell törölnöd fájlokat, elég ha megváltoztatod a kiterjesztését *._mp4-re, mert így már nem lesznek felismerve) \n\n- Indítsd újra a gépedet és próbálj meg lejátszani egy videót - Zárd be a lejátszót és indítsd újra - Ha ez nem segít, akkor változtasd meg a hangbemenetet - Néha az első videó akadozik, vagy nem indul el, kattints a \"következő\" gombra, amely így a következő videót fogja elindítani - Támogatott videóformátumok: MP4, AVI, FLV, WMV"
+ }, {
+ "id": 4,
+ "title": "Hozzájárulás",
+ "msg": "A kezelői felület az én munkám, de a projekt legfontosabb részei a tweak-ek maguk. Közösségek, mint pl. a Mazda3Revolution Forum és sok fejlesztő tette le az alapokat, melyekre ez a program épül és a jövőbeni fejlesztésre is nagy befolyással lesznek. Ha szeretnéd, hogy a te általad fejlesztett tweak is bekerüljön, akkor teszteld először a lehető legalaposabban.
Ha JavaScript vagy AngularJS varázsló vagy, akkor nyugodtan takarítsd fel a kódot (kicsit káosz van benne ... bocsi) vagy implementáld a felületet \"angulárisan\"
Github Repo",
+ "t2": "Problémák",
+ "msg2": "- Az 59.xx.xxx FW verziók app-jei nem láthatók a menüben (Speedometer és Video Player) és a \"dátum a fejlécben\" mod is problémás (az érintett FW verziókon nem lehet telepíteni) - Hogyha nincs elég hely a pendrive-on, akkor legfagy a program a fájlok másolása közben. Ez általában akkor történik, amikor a swap fájlt másoljuk egy olyan pendrive-ra, amely már majdnem tele van. Egy jövőbeni verzió megoldja majd a problémát és egy felugró hibaablak fogja jelezni ezt. - Ha telepítetted a \"háttérkép nélküli gombok\" mod-ot és telepíted a színsémákat, akkor visszaáll a gombok háttere. Ezt megelőzheted, ha mindkét tweak-et egyszere telepíted. - A Google Fordító megpróbálja a kódot néhány helyen lefordítani, ez nem várt dolgokat produkálhat. Használd ezt a fordítóban egy új nyelvre való fordításra, hogy az bekerüljön a jövőbeni verziókba és mások is tudják használni fordításkor."
+ }, {
+ "id": 5,
+ "title": "Tippek & trükkök",
+ "msg": "I Itt találhatsz néhány trükköt ennek a programnak a használatáról. Itt van egy leírás, hogy hogyan indítsd el a CMU rendszert a gépeden.
First of all uninstall Android Auto from your system. Click the CMU-Autorun link above and download the repository (download button is on the top right next to \"Find File\"). Copy the \"installer\" Folder to a blank USB drive to install the autorun script, this script will run every time the system boots up. The script looks at the root of the SD card (if available) for a file called \"run.sh\" and if found, executes the file. After installing, copy the \"dryrun\" folder onto an SD card to test that the installation worked correctly.
AA - Copy the contents of the \"headunit\" folder to the root of a blank SD card, connect before booting up infotanment system, a message will show the first time to confirm it is running. \nPlug in an Android Auto compatible phone to start.
Caveats: The device with the headunit files must be connected before booting up the infotainment system to run. Once the headunit app is running it is loaded into memory and will silently run in the background, this means that even if you remove the SD card the headunit app will still be running in memory. To stop the process you can do one of these things:
Turn off the vehicle for about 5-10 minutes
Hard reset (hold: mute + nav + back)
Login SSH, enter command 'killall headunit'
Want to run tweaks from an SD card?
With autorun script installed copy tweak files to an SD card. Rename \"tweaks.sh\" to \"run.sh\". Boot up the system and tweaks will run as expected. NOTE: I/O to SD card is slower than USB so installation will take longer.",
+ "t2": "Technikai rész",
+ "msg2": "Ez az app Electron-nal and AngularJS-szel készült"
+ }, {
+ "id": 6,
+ "title": "Segítség & Beállítások",
+ "msg": "
"
+ }],
"FAQs": {
"title": "GYIK",
"msg": "Gyakran ismételt kérdések: ",
@@ -108,134 +100,101 @@
"q10": "Tudnál további tweak-eket írni?",
"a10": "Javítottam több létező tweak-en és a tweak.sh-n is, de van rendes munkám és a kezelői felület fejlesztése is sok időt vesz igénybe. DE vannak saját ötleteim is a jövőre és természetesen javaslatokat is szívesen fogadok, de nem ígérhetem a mihamarabbi teljesítést. Az App jobb alján megtalálhatod az elérhetőségeimet, azon keresztül tudsz üzenni nekem."
},
- "tourMsgs": [
- {
- "id": 0,
- "msg": "
Üdvözlet a MZD-AIO-TI-ben!
Mazda All In One Tweaks telepítő
Egy telepítő és törlő program több mint 40 \"tweak\"-hez a Mazda MZD Infotainment rendszeréhez."
- },
- {
- "id": 1,
- "msg": "Ezek a főbb tweak-ek. Itt kiválaszthatod telepítésüket vagy törlésüket."
- },
- {
- "id": 2,
- "msg": "Itt találod a kiválasztott tweak-eket és egyéb beállításokat is itt tudsz elvégezni, valamint további információkat találszhatsz a súgóban az egyen pontokhoz, ha rájuk kattintasz."
- },
- {
- "id": 3,
- "msg": "További beállítások, mint pl. JCI mappa biztonsági mentése vagy a Wifi bekapcsolása az Északamerikai verziókhoz."
- },
- {
- "id": 4,
- "msg": "Ezeket a beállításokat lehet visszaállítani a gyári beállításokra, ha kiválasztod az alapértelmezett értékeket."
- },
- {
- "id": 5,
- "msg": "A menük további súgó témákhoz ill. hasznos információkhoz és leírásokhoz tartalmaznak linkeket."
- },
- {
- "id": 6,
- "msg": "Ha kiválasztottad minden szükséges tweak-et, kattints ide a kompilálás elindításához!"
- },
- {
- "id": 7,
- "msg": "Másold a \"_copy_to_usb\" mappa teljes tartalmát egy üres, FAT32 formátumú pendrive-ra. Csatlakoztasd a pendrive-ot az autó USB portjához és a telepítő pár percen belül megkezdi a telepítést. Távolíts el minden egyéb dolgot az USB csatlakozókról, de a NAVIGÁCIÓ SD kártyája maradjon bedugva. Bluetooth és wifi kapcsolatok kikapcsolása is segít. A telepítés végeztél a rendszer automatikusan újraindul, ezután eltávolíthatod a pendrive-ot és élvezheted az új tweak-jeidet."
- },
- {
- "id": 8,
- "msg": "További információk a MazdaTweaks.com!-on"
- }
- ],
- "popupMsgs": [
- {
- "id": 0,
- "msg": "Kompilálás... Várj..."
- },
- {
- "id": 1,
- "msg": "Tweak fájlok helye"
- },
- {
- "id": 2,
- "msg": "(A jobb eredmény érdekében, formázott pendrive-ot használj)"
- },
- {
- "id": 3,
- "msg": "Másolás a pendrive-ra"
- },
- {
- "id": 4,
- "msg": "Még nem"
- },
- {
- "id": 5,
- "msg": "Pendrive megnyitása"
- },
- {
- "id": 6,
- "msg": "Talált pendrive-ok"
- },
- {
- "id": 7,
- "msg": "Szeretnéd a fájlokat a pendrive-ra másolni?"
- },
- {
- "id": 8,
- "msg": "Válassz egy pendrive-ot, amelyre a fájlok át lesznek másolva"
- },
- {
- "id": 9,
- "msg": "Nem található pendrive. Másold a teljes tartalmat"
- },
- {
- "id": 10,
- "msg": "egy üres, FAT32 formátumú pendrive-ra"
- },
- {
- "id": 11,
- "msg": "Másolás a pendrive-ra"
- },
- {
- "id": 12,
- "msg": "Kérlek várj..."
- },
- {
- "id": 13,
- "msg": "Swapfájl kicsomagolása ide:"
- },
- {
- "id": 14,
- "msg": "Ez eltart pár percig... légy türelemmel."
- },
- {
- "id": 15,
- "msg": "Swapfile mérete: 1 GB."
- },
- {
- "id": 16,
- "msg": "Amíg vársz, itt van pár információ"
- },
- {
- "id": 17,
- "msg": "Újrakezdés"
- },
- {
- "id": 18,
- "msg": "AIO Compile Log mutatása"
- },
- {
- "id": 19,
- "msg": "Kilépés"
- },
- {
- "id": 20,
- "msg": "Siker!"
- },
- {
- "id": 21,
- "msg": "_copy_to_usb mappa törlése másolás után"
- }
- ],
+ "tourMsgs": [{
+ "id": 0,
+ "msg": "
Üdvözlet a MZD-AIO-TI-ben!
Mazda All In One Tweaks telepítő
Egy telepítő és törlő program több mint 40 \"tweak\"-hez a Mazda MZD Infotainment rendszeréhez."
+ }, {
+ "id": 1,
+ "msg": "Ezek a főbb tweak-ek. Itt kiválaszthatod telepítésüket vagy törlésüket."
+ }, {
+ "id": 2,
+ "msg": "Itt találod a kiválasztott tweak-eket és egyéb beállításokat is itt tudsz elvégezni, valamint további információkat találszhatsz a súgóban az egyen pontokhoz, ha rájuk kattintasz."
+ }, {
+ "id": 3,
+ "msg": "További beállítások, mint pl. JCI mappa biztonsági mentése vagy a Wifi bekapcsolása az Északamerikai verziókhoz."
+ }, {
+ "id": 4,
+ "msg": "Ezeket a beállításokat lehet visszaállítani a gyári beállításokra, ha kiválasztod az alapértelmezett értékeket."
+ }, {
+ "id": 5,
+ "msg": "A menük további súgó témákhoz ill. hasznos információkhoz és leírásokhoz tartalmaznak linkeket."
+ }, {
+ "id": 6,
+ "msg": "Ha kiválasztottad minden szükséges tweak-et, kattints ide a kompilálás elindításához!"
+ }, {
+ "id": 7,
+ "msg": "Másold a \"_copy_to_usb\" mappa teljes tartalmát egy üres, FAT32 formátumú pendrive-ra. Csatlakoztasd a pendrive-ot az autó USB portjához és a telepítő pár percen belül megkezdi a telepítést. Távolíts el minden egyéb dolgot az USB csatlakozókról, de a NAVIGÁCIÓ SD kártyája maradjon bedugva. Bluetooth és wifi kapcsolatok kikapcsolása is segít. A telepítés végeztél a rendszer automatikusan újraindul, ezután eltávolíthatod a pendrive-ot és élvezheted az új tweak-jeidet."
+ }, {
+ "id": 8,
+ "msg": "További információk a MazdaTweaks.com!-on"
+ }],
+ "popupMsgs": [{
+ "id": 0,
+ "msg": "Kompilálás... Várj..."
+ }, {
+ "id": 1,
+ "msg": "Tweak fájlok helye"
+ }, {
+ "id": 2,
+ "msg": "(A jobb eredmény érdekében, formázott pendrive-ot használj)"
+ }, {
+ "id": 3,
+ "msg": "Másolás a pendrive-ra"
+ }, {
+ "id": 4,
+ "msg": "Még nem"
+ }, {
+ "id": 5,
+ "msg": "Pendrive megnyitása"
+ }, {
+ "id": 6,
+ "msg": "Talált pendrive-ok"
+ }, {
+ "id": 7,
+ "msg": "Szeretnéd a fájlokat a pendrive-ra másolni?"
+ }, {
+ "id": 8,
+ "msg": "Válassz egy pendrive-ot, amelyre a fájlok át lesznek másolva"
+ }, {
+ "id": 9,
+ "msg": "Nem található pendrive. Másold a teljes tartalmat"
+ }, {
+ "id": 10,
+ "msg": "egy üres, FAT32 formátumú pendrive-ra"
+ }, {
+ "id": 11,
+ "msg": "Másolás a pendrive-ra"
+ }, {
+ "id": 12,
+ "msg": "Kérlek várj..."
+ }, {
+ "id": 13,
+ "msg": "Swapfájl kicsomagolása ide:"
+ }, {
+ "id": 14,
+ "msg": "Ez eltart pár percig... légy türelemmel."
+ }, {
+ "id": 15,
+ "msg": "Swapfile mérete: 1 GB."
+ }, {
+ "id": 16,
+ "msg": "Amíg vársz, itt van pár információ"
+ }, {
+ "id": 17,
+ "msg": "Újrakezdés"
+ }, {
+ "id": 18,
+ "msg": "AIO Compile Log mutatása"
+ }, {
+ "id": 19,
+ "msg": "Kilépés"
+ }, {
+ "id": 20,
+ "msg": "Siker!"
+ }, {
+ "id": 21,
+ "msg": "_copy_to_usb mappa törlése másolás után"
+ }],
"mainOps": {
"wifi": {
"id": 0,
@@ -289,7 +248,7 @@
"testlabel": "Test Backups",
"skipconfirm": "Skip Confirmation",
"safetylvl": "safe",
- "toolTip": "
Retrieve CMU Data
Dump diagnostic files from the CMU to the USB Drive. Cleans out error files and core dumps from the system.
Skip Confirmation
Allows for the installation to run without prompting for confirmation to begin the install. Mainly this is used for recovering when the touchscreen is not responding.
Copy Backups:
Copy original backups of modified system files, for safe keeping.
Test Backups:
Some tweaks have before and after copys of the files modified during the instalation. If you like that kind of thing they will copied to your-usb/bakups/test/.
"
+ "toolTip": "
Retrieve CMU Data
Dump diagnostic files from the CMU to the USB Drive. Cleans out error files and core dumps from the system.
Skip Confirmation
Allows for the installation to run without prompting for confirmation to begin the install. Mainly this is used for recovering when the touchscreen is not responding.
Copy Backups:
Copy original backups of modified system files, for safe keeping.
Test Backups:
Some tweaks have before and after copys of the files modified during the instalation. If you like that kind of thing they will copied to your-usb/bakups/test/.
Lehetővé teszi az érintőképernyő használatát menet közben is. Fix Cluster Compass: Some things will be disabled while driving but the touchscreen itself and the cluster compass will work",
- "img": "",
- "safetylvl": "safe",
- "extraOps": true,
- "advancedOp": false
- },
- {
- "id": 2,
- "OpName": "Biztonsági figyelmeztetés eltávolítása",
- "INST": "Biztonsági figyelmeztetés teljes eltávolítása",
- "DEINST": "Biztonsági figyelmeztetés visszaállítása 3,5mp-re",
- "toolTip": "
Biztonsági figyelmeztetés eltávolítása
Csökkenti a biztonsági figyelmeztetés mutatásának idejét 3.5 mp-ről 0.5 mp-re, vagy teljesen el is törli azt.",
- "img": "",
- "safetylvl": "safe",
- "extraOps": true,
- "advancedOp": false
- },
- {
- "id": 3,
- "OpName": "Tolatókamera biztonsági figyelmeztetés",
- "INST": "Tolatókamera biztonsági figyelmeztetésének eltávolítása",
- "DEINST": "Tolatókamera biztonsági figyelmeztetésének visszaállítása",
- "toolTip": "
Loop minden listához és almenühöz (zene, kapcsolatok, stb.). A legfelső pozícióból a legalsóba lehet ugrani, ill. fordítva. Now with remmove list loop option.",
- "img": "",
- "safetylvl": "safe",
- "extraOps": true,
- "advancedOp": false
- },
- {
- "id": 7,
- "OpName": "Rövid késleltetés mod",
- "INST": "shorter_delay_mod telepítése",
- "DEINST": "shorter_delay_mod visszaállítása",
- "toolTip": "
Rövid késleltetés mod.
Csökkenti a várakozási időt az oldalankénti lapozásnál 1.5 mp-ről auf 0.3 mp-re. A javított lista loopolás tweak törlése ezt a tweak-et is eltávolítja.",
- "img": "",
- "safetylvl": "safe",
- "extraOps": false,
- "advancedOp": false
- },
- {
- "id": 8,
- "OpName": "No More Beeps",
- "INST": "Disable All System Beeps",
- "DEINST": "Restore System Beeps",
- "toolTip": "
No More Beeps
Disable all 'Beeps' made by the system that are not silenced by the 'Settings > Sound > Beep' option. This also includes the beeps that cannot be silenced by the settings option.",
- "img": "",
- "safetylvl": "safe",
- "extraOps": false,
- "advancedOp": false
- },
- {
- "id": 9,
- "OpName": "Hangforrások listájának rendezése",
- "INST": "Hangforrások listájának megváltoztatása",
- "DEINST": "Hangforrások eredeti listájának visszaállítása",
- "toolTip": "
Nagyobb album fedőképek mutatása. Extra Options: Full Width Titles & Hide Album Art",
- "img": "full_titles.png",
- "safetylvl": "safe",
- "extraOps": true,
- "advancedOp": false
- },
- {
- "id": 15,
- "OpName": "Remove Background Overlays",
- "INST": "Remove the background overlays",
- "DEINST": "Background behind buttons back to original",
- "toolTip": "
No Background Behind Buttons
Remove the background behind the buttons and other semi-transparent overlay backgrounds. Overlays that can be removed: Now Playing, List View, In Call, Text Message View, and Behind Buttons",
- "img": "NoButtonBackground.jpg",
- "safetylvl": "safe",
- "extraOps": true,
- "advancedOp": false
- },
- {
- "id": 16,
- "OpName": "Üres album fedőképkeretek megváltoztatása",
- "INST": "Üres album fedőképkeretek megváltoztatása",
- "DEINST": "Üres album fedőképkeretek visszaállítása",
- "toolTip": "
Üres album fedőképkeretek megváltoztatása
Az üres albumfedőkép, mely akkor jelenik meg ha nincs az előadóhoz tartozó kép a Gracenote adatbankban, eltűnik. Helyette egy rádió képe lesz látható, akkor is ha nincs fedőkép MP3 \"tag\"-ként. Támogatott fájl formátumok: jpg, jpeg és png (bármely méret). Figyelem: A választott kép át lesz konvertálva 146px x 146px-es méretre, DE NEM LESZ LEVÁGVA, és .png formátumba.",
- "img": "",
- "safetylvl": "safe",
- "extraOps": true,
- "advancedOp": false
- },
- {
- "id": 17,
- "OpName": "Videólejátszó",
- "INST": "Videólejátszó telepítése",
- "DEINST": "Videólejátszó törlése",
- "toolTip": "
Telepítsük a swap fájlt egy olyan pendrivera, amely a kocsiban marad... A telepítő fájlok törlődnek ezután nem szabad a pendrive-ot menet közben leválasztani, mert a rendszer futásához szükséges adatok vannak rajta és tárhelyként is van használva... A pendrive-ot a jövőben csak akkor csatlakoztasd le, ha az MZD ki van kapcsolva.",
- "img": "",
- "safetylvl": "warning",
- "extraOps": true,
- "advancedOp": false
- },
- {
- "id": 19,
- "OpName": "Speedometer",
- "INST": "Speedometer telepítése",
- "DEINST": "Speedometer törlése",
- "toolTip": "
Speedometer íránytűvel App-ként mutatása az alkalmazás menüben
a sebességmérő alatt km/h vagy mph látszik a beállítások függvényében
Max. mutatható sebesség: 240 km/h
Fogyasztási adatoks
Optimalizált grafikus elemek új sebességmérővel
Kis sebességmérő tű, mely a legnagyobb sebességet mutatja az analóg skálán
A skála különböző hosszúságú és világosságú az 5, 10 ill. 20 km/h-s felbontás függvényében
Jobboldali táblázat német és angol szövegekre lett optimalizálva
Minden számnak van árnyéka a jobb olvashatóság érdekében
Haladási iránytól függő iránytű a sebesség körül
Animált felület a fejlécben GPS által mért sebességgel és haladási iránnyal, mely egy érintéssel az órára bármelyik menüben előhozható vagy elrejthető
Szélességi és hosszúsági fokok a jobboldali táblázatban
Ha a navigáció vagy a tolatókamera aktiválódik, automatikusan elindul
A kis sebességmérő fejlécben való mutatása a \"dátum a fejlécben\" mod V2.2 igényli, ezért ez automatikusan kiválasztásra kerül, ha nem történt még meg..",
- "img": "mzd_SpeedoCompass.gif",
- "safetylvl": "safe",
- "extraOps": true,
- "advancedOp": false
- },
- {
- "id": 22,
- "OpName": "Fogyasztás Tweak",
- "INST": "Fogyasztás Tweak telepítése",
- "DEINST": "Fogyasztás Tweak visszaállítása",
- "toolTip": "
This is an experimental app that I made to test the limits of app functionality. For each success there were several failures.
Every function in this app is not guaranteed to work but here are some useful and/or fun things you can do:
'Apps' Tab:
Home: Goes home. This was the easy part.
Go to: USB A, USB B, Bluetooth (audio context).
Previous, Next - Works without changing contexts
Stop (and Start*) Android Auto Headunit process.
Killing headunit process with allow Bluetooth calling to work correctly.
Starting the process does not work properly yet, reboot CMU to restart headunit process.
Stop and Start Castscreen Receiver
Useful for troubleshooting if it is not functioning correctly.
Both of these do work but there is a possibility that a memory issue may prevent the process from properly starting in which case a reboot is required to allow the process to run.
'Tweaks' Tab:
Many familiar AIO layout related tweaks that can be applied on the fly
Applied tweaks are automatically saved to localStorage and saved tweaks are applied on boot.
Toggle each individual tweak on or off.
One button to reset all tweaks.
NOTE: AIO Tweaks App will not UNDO installed tweaks, they will mix and may result in unexpected and/or interesting layouts
'Options' Tab:
Touchscreen: NOTE: Changes to the touchscreen functionality are applied when the vehicle comes to a COMPLETE STOP
Enable Touchscreen and Menu
Normally disabled menu items while driving ie. Text messages & enter address for navigation,
Compass is disabled
Enable Touchscreen and Compass
Compass is functional
Menu items are disabled
Disable Touchscreen
Touchscreen and Menu Items disabled
Compass is functional
Show Background: Show only background (any button to exit).
Reboot: To Reboot.
",
- "img": "AIO_Tweaks-Screen.png",
- "safetylvl": "safe",
- "extraOps": false,
- "advancedOp": false
- },
- {
- "id": 21,
- "OpName": "Zeneszámok név szerinti rendezése és FLAC támogatás",
- "INST": "media_order patch és FLAC támogatás telepítése",
- "DEINST": "media_order patch és FLAC támogatás visszaállítása",
- "toolTip": "
Zeneszámok név szerinti rendezése és FLAC támogatás
Zenék név szerinti rendezése és nem dátum szerinti rendezése. FLAC formátum támogatása.
Audio Order Patch & FLAC Support is only compatible with these FW Versions:
",
- "img": "",
- "safetylvl": "warning",
- "extraOps": false,
- "advancedOp": true
- }
- ]
+ "tweakOps": [{
+ "id": 1,
+ "OpName": "Érintőképernyő menet közben",
+ "INST": "Lehetővé teszi az érintőképernyő használatát menet közben is",
+ "DEINST": "Deaktiválja menet közben az érintőképernyőt",
+ "toolTip": "
Érintőképernyő
Lehetővé teszi az érintőképernyő használatát menet közben is. Fix Cluster Compass: Some things will be disabled while driving but the touchscreen itself and the cluster compass will work",
+ "img": "",
+ "safetylvl": "safe",
+ "extraOps": true,
+ "advancedOp": false
+ }, {
+ "id": 2,
+ "OpName": "Biztonsági figyelmeztetés eltávolítása",
+ "INST": "Biztonsági figyelmeztetés teljes eltávolítása",
+ "DEINST": "Biztonsági figyelmeztetés visszaállítása 3,5mp-re",
+ "toolTip": "
Biztonsági figyelmeztetés eltávolítása
Csökkenti a biztonsági figyelmeztetés mutatásának idejét 3.5 mp-ről 0.5 mp-re, vagy teljesen el is törli azt.",
+ "img": "",
+ "safetylvl": "safe",
+ "extraOps": true,
+ "advancedOp": false
+ }, {
+ "id": 3,
+ "OpName": "Tolatókamera biztonsági figyelmeztetés",
+ "INST": "Tolatókamera biztonsági figyelmeztetésének eltávolítása",
+ "DEINST": "Tolatókamera biztonsági figyelmeztetésének visszaállítása",
+ "toolTip": "
Loop minden listához és almenühöz (zene, kapcsolatok, stb.). A legfelső pozícióból a legalsóba lehet ugrani, ill. fordítva. Now with remmove list loop option.",
+ "img": "",
+ "safetylvl": "safe",
+ "extraOps": true,
+ "advancedOp": false
+ }, {
+ "id": 7,
+ "OpName": "Rövid késleltetés mod",
+ "INST": "shorter_delay_mod telepítése",
+ "DEINST": "shorter_delay_mod visszaállítása",
+ "toolTip": "
Rövid késleltetés mod.
Csökkenti a várakozási időt az oldalankénti lapozásnál 1.5 mp-ről auf 0.3 mp-re. A javított lista loopolás tweak törlése ezt a tweak-et is eltávolítja.",
+ "img": "",
+ "safetylvl": "safe",
+ "extraOps": false,
+ "advancedOp": false
+ }, {
+ "id": 8,
+ "OpName": "No More Beeps",
+ "INST": "Disable All System Beeps",
+ "DEINST": "Restore System Beeps",
+ "toolTip": "
No More Beeps
Disable all 'Beeps' made by the system that are not silenced by the 'Settings > Sound > Beep' option. This also includes the beeps that cannot be silenced by the settings option.",
+ "img": "",
+ "safetylvl": "safe",
+ "extraOps": false,
+ "advancedOp": false
+ }, {
+ "id": 9,
+ "OpName": "Hangforrások listájának rendezése",
+ "INST": "Hangforrások listájának megváltoztatása",
+ "DEINST": "Hangforrások eredeti listájának visszaállítása",
+ "toolTip": "
Nagyobb album fedőképek mutatása. Extra Options: Full Width Titles & Hide Album Art",
+ "img": "full_titles.png",
+ "safetylvl": "safe",
+ "extraOps": true,
+ "advancedOp": false
+ }, {
+ "id": 15,
+ "OpName": "Remove Background Overlays",
+ "INST": "Remove the background overlays",
+ "DEINST": "Background behind buttons back to original",
+ "toolTip": "
No Background Behind Buttons
Remove the background behind the buttons and other semi-transparent overlay backgrounds. Overlays that can be removed: Now Playing, List View, In Call, Text Message View, and Behind Buttons",
+ "img": "NoButtonBackground.jpg",
+ "safetylvl": "safe",
+ "extraOps": true,
+ "advancedOp": false
+ }, {
+ "id": 16,
+ "OpName": "Üres album fedőképkeretek megváltoztatása",
+ "INST": "Üres album fedőképkeretek megváltoztatása",
+ "DEINST": "Üres album fedőképkeretek visszaállítása",
+ "toolTip": "
Üres album fedőképkeretek megváltoztatása
Az üres albumfedőkép, mely akkor jelenik meg ha nincs az előadóhoz tartozó kép a Gracenote adatbankban, eltűnik. Helyette egy rádió képe lesz látható, akkor is ha nincs fedőkép MP3 \"tag\"-ként. Támogatott fájl formátumok: jpg, jpeg és png (bármely méret). Figyelem: A választott kép át lesz konvertálva 146px x 146px-es méretre, DE NEM LESZ LEVÁGVA, és .png formátumba.",
+ "img": "",
+ "safetylvl": "safe",
+ "extraOps": true,
+ "advancedOp": false
+ }, {
+ "id": 17,
+ "OpName": "Videólejátszó",
+ "INST": "Videólejátszó telepítése",
+ "DEINST": "Videólejátszó törlése",
+ "toolTip": "
Telepítsük a swap fájlt egy olyan pendrivera, amely a kocsiban marad... A telepítő fájlok törlődnek ezután nem szabad a pendrive-ot menet közben leválasztani, mert a rendszer futásához szükséges adatok vannak rajta és tárhelyként is van használva... A pendrive-ot a jövőben csak akkor csatlakoztasd le, ha az MZD ki van kapcsolva.",
+ "img": "",
+ "safetylvl": "warning",
+ "extraOps": true,
+ "advancedOp": false
+ }, {
+ "id": 19,
+ "OpName": "Speedometer",
+ "INST": "Speedometer telepítése",
+ "DEINST": "Speedometer törlése",
+ "toolTip": "
Speedometer íránytűvel App-ként mutatása az alkalmazás menüben
a sebességmérő alatt km/h vagy mph látszik a beállítások függvényében
Max. mutatható sebesség: 240 km/h
Fogyasztási adatoks
Optimalizált grafikus elemek új sebességmérővel
Kis sebességmérő tű, mely a legnagyobb sebességet mutatja az analóg skálán
A skála különböző hosszúságú és világosságú az 5, 10 ill. 20 km/h-s felbontás függvényében
Jobboldali táblázat német és angol szövegekre lett optimalizálva
Minden számnak van árnyéka a jobb olvashatóság érdekében
Haladási iránytól függő iránytű a sebesség körül
Animált felület a fejlécben GPS által mért sebességgel és haladási iránnyal, mely egy érintéssel az órára bármelyik menüben előhozható vagy elrejthető
Szélességi és hosszúsági fokok a jobboldali táblázatban
Ha a navigáció vagy a tolatókamera aktiválódik, automatikusan elindul
A kis sebességmérő fejlécben való mutatása a \"dátum a fejlécben\" mod V2.2 igényli, ezért ez automatikusan kiválasztásra kerül, ha nem történt még meg..",
+ "img": "mzd_SpeedoCompass.gif",
+ "safetylvl": "safe",
+ "extraOps": true,
+ "advancedOp": false
+ }, {
+ "id": 22,
+ "OpName": "Fogyasztás Tweak",
+ "INST": "Fogyasztás Tweak telepítése",
+ "DEINST": "Fogyasztás Tweak visszaállítása",
+ "toolTip": "
This is an experimental app that I made to test the limits of app functionality. For each success there were several failures.
Every function in this app is not guaranteed to work but here are some useful and/or fun things you can do:
'Apps' Tab:
Home: Goes home. This was the easy part.
Go to: USB A, USB B, Bluetooth (audio context).
Previous, Next - Works without changing contexts
Stop (and Start*) Android Auto Headunit process.
Killing headunit process with allow Bluetooth calling to work correctly.
Starting the process does not work properly yet, reboot CMU to restart headunit process.
Stop and Start Castscreen Receiver
Useful for troubleshooting if it is not functioning correctly.
Both of these do work but there is a possibility that a memory issue may prevent the process from properly starting in which case a reboot is required to allow the process to run.
'Tweaks' Tab:
Many familiar AIO layout related tweaks that can be applied on the fly
Applied tweaks are automatically saved to localStorage and saved tweaks are applied on boot.
Toggle each individual tweak on or off.
One button to reset all tweaks.
NOTE: AIO Tweaks App will not UNDO installed tweaks, they will mix and may result in unexpected and/or interesting layouts
'Options' Tab:
Touchscreen: NOTE: Changes to the touchscreen functionality are applied when the vehicle comes to a COMPLETE STOP
Enable Touchscreen and Menu
Normally disabled menu items while driving ie. Text messages & enter address for navigation,
Compass is disabled
Enable Touchscreen and Compass
Compass is functional
Menu items are disabled
Disable Touchscreen
Touchscreen and Menu Items disabled
Compass is functional
Show Background: Show only background (any button to exit).
Reboot: To Reboot.
",
+ "img": "AIO_Tweaks-Screen.png",
+ "safetylvl": "safe",
+ "extraOps": false,
+ "advancedOp": false
+ }, {
+ "id": 21,
+ "OpName": "Zeneszámok név szerinti rendezése és FLAC támogatás",
+ "INST": "media_order patch és FLAC támogatás telepítése",
+ "DEINST": "media_order patch és FLAC támogatás visszaállítása",
+ "toolTip": "
Zeneszámok név szerinti rendezése és FLAC támogatás
Zenék név szerinti rendezése és nem dátum szerinti rendezése. FLAC formátum támogatása.
Audio Order Patch & FLAC Support is only compatible with these FW Versions:
Copy original backups of modified system files, for safe keeping.
Test Backups:
Some tweaks have before and after copys of the files modified during the instalation. If you like that kind of thing they will copied to your-usb/bakups/test/.
"
+ "toolTip": "
Copy Backups:
Copy original backups of modified system files, for safe keeping.
Test Backups:
Some tweaks have before and after copys of the files modified during the instalation. If you like that kind of thing they will copied to your-usb/bakups/test/.
Is a very exciting addition to AIO and opens the door to many possibilities. Developers can use the npm package "casdk" to create a ready-to-go app template in seconds. Using JavaScript and CSS, developers can easily build amazing apps on the CASDK framework.
-
-
Here are 2 more apps that can be installed specifically for developers:
+
+
+
+ ×
+
+
CASDK
Is a very exciting addition to AIO and opens the door to many possibilities. Developers can use the npm package "casdk" to create a ready-to-go app template in seconds. Using JavaScript and CSS, developers can easily build amazing apps on the CASDK framework.
+
+
Here are 2 more apps that can be installed specifically for developers:
+
+
+
+
+
+
+
-
-
-
-
-
+
The CASDK framework was originally designed to be run entirely from an SD card. With AIO the framework and apps are installed onto system disk so that apps will be able to run without an SD Card connected. CASDK apps can still be run from an SD card by selecting the option below. If the SD card is connected during installation AIO will offer to install the apps directly to the SD card. Apps can also be installed by copying the app folder to "/apps" on the root of the SD Card. Also the name of the app folder needs to be added to "/apps/apps.js." Using this method any CASDK app can be used even one you have developed yourself!
+
+
+
-
The CASDK framework was originally designed to be run entirely from an SD card. With AIO the framework and apps are installed onto system disk so that apps will be able to run without an SD Card connected. CASDK apps can still be run from an SD card by selecting the option below. If the SD card is connected during installation AIO will offer to install the apps directly to the SD card. Apps can also be installed by copying the app folder to "/apps" on the root of the SD Card. Also the name of the app folder needs to be added to "/apps/apps.js." Using this method any CASDK app can be used even one you have developed yourself!
To costomize the Bar Speedometer edit the file (from USB Drive or _copy_to_usb folder): 'config/speedometer_bar/speedometer-config.js'
+
To customize the Bar Speedometer edit the file (from USB Drive or _copy_to_usb folder): 'config/speedometer_bar/speedometer-config.js'
/** speedometer-config.js ************************************************************** *\
|* ========================= *|
|* Speedometer Configuration - Used to configure position of Speedometer values. *|
@@ -16,7 +16,8 @@
To costomize the Bar Speedometer e
|* Note: Only numbers inside [] brackets determine position, order in this list DOES NOT *|
|* ******* DELETE THE CONFIG FILE TO REUSE YOUR CURRENT CONFIG-SPEEDOMETER.JS ********** *|
\* ************************************************************************************* */
-var spdTbl = { // Default Layout:
+var spdBottomRows = 3; //Number of Bottom Rows
+var spdTbl = { // Example Layout:
vehSpeed: [0, 0, 0], //Vehicle Speed
topSpeed: [0, 1, 1], //Top Speed
avgSpeed: [0, 1, 2], //Average Speed
@@ -45,3 +46,72 @@
To costomize the Bar Speedometer e
batSOC: [1, 1, 0], //Battery Charge State (i-stop)
};
+
+// OverRide Values
+/* ************************************************** */
+/* Set overRideSpeed to true to use your values below */
+/* If this is false the following values are not used */
+var overRideSpeed=false;
+/* ************************************************** */
+/* * Start OverRide Variables *********************** */
+var SORV = {
+ // Set the language for the speedometer
+ // Available EN, ES, DE, PL, SK, TR, FR, IT
+ language: "EN",
+
+ // Used for metric/US english conversion flag (C/F, KPH/MPH, Meter/Feet, L per 100km/MPG)
+ // Set isMPH: true for MPH, Feet, MPG
+ // Set isMPH: false for KPH, Meter
+ isMPH: false,
+
+ // Set This to true to start with the Bar Speedometer Mod
+ // False to use the analog speedometer
+ barSpeedometerMod: true,
+
+ // Set true to enable multicontroller and other mod features in classic mode
+ // If false then use classic speedometer without Mods
+ speedMod: true,
+
+ // Set to true to start the classic speedometer in analog mode
+ // False to start in digital mode
+ startAnalog: true,
+
+ // Set it true for the StatusBar Speedometer
+ // False if you don't want the small speedometer in statusbar
+ StatusBarSpeedometer: true,
+
+ // Set to true for Outside Temperature & Fuel Efficiency in the statusbar
+ // False for Compass & Altitude
+ sbTemp: false,
+
+ // Set true if you want the original speedometer background image as in version 4.2 or below
+ // False for no background
+ // If "true" the opacity above will be ignored
+ original_background_image: false,
+
+ // Set the opacity of black background color for speedometer, to reduce the visibility of custom MZD background images
+ // Possible values 0.0 (full transparent) until 1.0 (complete black background)
+ black_background_opacity: 0.0,
+
+ // Set unit for fuel efficiency to km/L
+ // False for L/100km
+ fuelEffunit_kml: false,
+
+ // Set this to true for Fahrenheit
+ // False for Celsius
+ tempIsF: false,
+
+ // For the Speed Bar false for Current Vehicle Speed
+ // Set This to true if you want the Colored Bar to measure engine speed
+ engineSpeedBar: false,
+
+ // Set This to true to hide the Speed Bar
+ // False shows he bar
+ hideSpeedBar: false,
+
+ // Set this to true to enable counter animation on the speed number
+ // False to disable speed counter animation
+ // The animation causes the digital number to lag by 1 second
+ speedAnimation: false,
+};
+
WARNING: V59.00.502+ HAS LOCKED OUT TWEAKS INSTALLATION
-
IF YOU ARE CONSIDERING UPDATING TO V59.00.502 OR HIGHER THEN INSTALLING THE ID7_RECOVERY PACK WILL ALLOW FOR A SEAMLESS UPDATE WITHOUT ANY LOSS OF ACCESS
-
IF YOU HAVE ALREADY UPDATED OR PURCHASED THE VEHICLE WITH V59.OO.502+ YOUR ONLY OPTION RIGHT NOW IS TO CONNECT VIA SERIAL CONNECTION . THEN YOU WILL NEED TO INSTALL THE ID7_RECOVERY PACK AFTER GAINING SERIAL ACCESS.
+
+
WARNING: FIRMWARE V59.00.502+ AND HIGHER HAS REMOVED THE ABILITY TO INSTALL TWEAKS!
+
IF YOU ARE CONSIDERING UPDATING TO V59.00.502 OR HIGHER THEN INSTALLING THE AUTORUN & RECOVERY PACK WILL ALLOW FOR A SEAMLESS UPDATE WITHOUT ANY LOSS OF ACCESS
+
+
IF YOU HAVE ALREADY UPDATED OR PURCHASED THE VEHICLE WITH V59.OO.502+ YOUR ONLY OPTION RIGHT NOW IS TO CONNECT VIA SERIAL CONNECTION AND INSTALL
+ THE AUTORUN & RECOVERY PACK AFTER GAINING SERIAL ACCESS.
×{{trans[10].label}} HINT: Double click to paste to a text field. (only works for single line text boxes for now)
- {{trans[2].label}} {{newLanguage}}.aio.json {{trans[3].label}})
-
-
-
-
- {{trans[4].label}} aio@mazdatweaks.com or open a {{trans[5].label}} on GitHub.
-
+
+
MZD-AIO-TI {{trans[0].label}}
+
+ ×{{trans[10].label}}
+ HINT: Double click to paste to a text field. (only works for single line text boxes for now)
Analog, Modded and Bar Speedometers are now All In One!
+
All options are available and will be applied to the proper Speedometer
+
Choose which speedometer to start with by default (if starting with Bar Speedometer other options will still determine the starting state of the Classic Speedometer)
+
The speedometer-config.js file now has all the options, set a variable to determine if override values are used or installed options.
+
Invalid Values Show "---" Such As Gear Position/Lever for Manual Transmissions
+
Gear Lever Shows P - R - N - D
+
Toggles will Show The Action In A Statusbar Notification
+
Hold "Up" on multicontroller to switch between Classic and Bar Speedometer Mode
+
Hold "Down" toggles "Basic Speedo" to disable single click toggles (in Classic mode)
+
Modded Speedo (in Classic mode):
+
+
Single click "Up" to increase size of values
+
Multicontroller "Select" toggles between Digital and Analog speed
+
Single click "Down" to show alternate values
+
+
+
Bar Speedometer:
+
+
Configure The Amount of Bottom Rows in "speedometer-config.js" (Default 4)
+
Hold "Down" to show/hide speed bar
+
+ TAP Any 2 Values To Swap Their Positions!
+
+
Any Values Can Be Swapped Even The Main
+
When The Main Value Is Swapped An SBN Will Show With The Value Name
+
Tap Below The Bottom Row To Swap Hidden Values In Other Rows
+
Exiting The App Will Reset Positions To Your Default
Included with the
+ 1 Second Diagnostic Menu tweak because it is part of the Diagnostic App
+
In v59 "JCI Test Mode" was disabled in the Diagnostic App
+
+
This tweak brings back Test Mode for v59
+
Makes it easier to get to in v55-v58 (Just press the T/M button)
+
+
+
Once Test Mode is started type 11 to open the well known Test Menu
+
+
+ BE CAREFUL IN TEST MODE, DON'T DO ANYTHING YOU ARE UNSURE ABOUT!
+
+
+
+
+
Tweak Installer Changes/Fixes
+
+
+
App install/uninstall now uses NodeJS to add/remove from app list
+
+
Allows for cleaner installations
+
Backward compatible
+
Solves the issue of all apps disappearing off the app list when only 1 is uninstalled due to improperly formatted JSON file
+
"
+ Legacy App Install" in install options to use the old method (using bash)
+
+
The only reason I can think of for this is if you already have an improperly formatted JSON file then you need to uninstall all apps with legacy installer because the NodeJS code will throw an error. Other than that the NodeJS code will never
+ cause an improperly formatted JSON file.