function init_waydroid() {
document.getElementById('initialize-btn').outerHTML =
''
let init_worker = new Worker(
`data:text/javascript,
require('child_process').spawnSync('pkexec', ['waydroid', 'init'])
require('child_process').spawnSync('pkexec', ['systemctl', 'enable', '--now', 'waydroid-container'])
require('child_process').spawn('sh', ['-c', 'waydroid session start & disown'])
setTimeout(() => {
require('child_process').spawnSync('pkexec', ['waydroid', 'shell', 'pm', 'disable', 'com.android.inputmethod.latin'])
require('child_process').spawnSync('waydroid', ['prop', 'set', 'persist.waydroid.multi_windows', 'true'])
if (require('child_process').spawnSync('sh', ['-c', 'LC_ALL=C lspci']).stdout.includes('NVIDIA')) {
require('child_process').spawnSync('sh', ['-c', 'echo "ro.hardware.gralloc=default" | pkexec tee -a /var/lib/waydroid/waydroid.cfg'])
require('child_process').spawnSync('sh', ['-c', 'echo "ro.hardware.egl=swiftshader" | pkexec tee -a /var/lib/waydroid/waydroid.cfg'])
}
require('child_process').spawn('sh', ['-c', 'pkexec waydroid upgrade -o; waydroid session stop; waydroid session start'])
setTimeout(() => { postMessage('success') }, 1000)
}, 2000)
`
)
init_worker.onmessage = e => {
if (e.data == 'success') {
document.getElementById('waydroid-initialize-settings').classList.add('d-none')
document.getElementById('waydroid-initialized-settings').classList.remove('d-none')
document.getElementById('first-time-waydroid').classList.remove('d-none')
}
}
}
function install_aurora_store() {
document.getElementById('aurora-store-btn').outerHTML =
``
let aurora_store_worker = new Worker(
`data:text/javascript,
require('child_process').spawnSync('sh', ['-c', 'mkdir -p ~/.cache/blend-settings; rm -f ~/.cache/blend-settings/aurora.apk'])
let s1 = require('child_process').spawnSync('sh', ['-c', 'wget -O ~/.cache/blend-settings/aurora.apk https://gitlab.com/AuroraOSS/AuroraStore/uploads/bbc1bd5a77ab2b40bbf288ccbef8d1f0/AuroraStore_4.1.1.apk']).status
if (s1 != 0) {
postMessage('failed')
} else {
require('child_process').spawn('waydroid', ['session', 'start'])
setTimeout(() => {
require('child_process').spawnSync('sh', ['-c', 'waydroid app install ~/.cache/blend-settings/aurora.apk'])
setTimeout(() => postMessage('success'), 200)
}, 2000)
}
`
)
aurora_store_worker.onmessage = e => {
if (e.data == 'success') {
document.getElementById('aurora-store-btn').outerHTML =
``
} else if (e.data == 'failed') {
document.getElementById('aurora-store-btn').outerHTML =
``
setTimeout(() => {
document.getElementById('aurora-store-btn').outerHTML =
``
}, 2000)
}
}
}
function install_f_droid() {
document.getElementById('f-droid-btn').outerHTML =
``
let f_droid_worker = new Worker(
`data:text/javascript,
require('child_process').spawnSync('sh', ['-c', 'mkdir -p ~/.cache/blend-settings; rm -f ~/.cache/blend-settings/f-droid.apk'])
let s1 = require('child_process').spawnSync('sh', ['-c', 'wget -O ~/.cache/blend-settings/f-droid.apk https://f-droid.org/F-Droid.apk']).status
if (s1 != 0) {
postMessage('failed')
} else {
require('child_process').spawn('waydroid', ['session', 'start'])
setTimeout(() => {
require('child_process').spawnSync('sh', ['-c', 'waydroid app install ~/.cache/blend-settings/f-droid.apk'])
setTimeout(() => postMessage('success'), 200)
}, 2000)
}
`
)
f_droid_worker.onmessage = e => {
if (e.data == 'success') {
document.getElementById('f-droid-btn').outerHTML =
``
} else if (e.data == 'failed') {
document.getElementById('f-droid-btn').outerHTML =
``
setTimeout(() => {
document.getElementById('f-droid-btn').outerHTML =
``
}, 2000)
}
}
}
function waydroid_open_settings() {
require('child_process').spawn('waydroid', ['app', 'launch', 'com.android.settings'])
}
require('fs').stat('/var/lib/waydroid', (err, stat) => {
if (err == null) {
document.getElementById('waydroid-initialize-settings').classList.add('d-none')
document.getElementById('waydroid-initialized-settings').classList.remove('d-none')
if (require('child_process').spawnSync('sh', ['-c', 'LC_ALL=C lspci']).stdout.includes('NVIDIA')) {
document.getElementById('nvidia-warning-installed').classList.remove('d-none')
}
require('child_process').spawn('waydroid', ['session', 'start'])
setTimeout(() => {
if (require('child_process').spawnSync('waydroid', ['app', 'list']).stdout.includes('com.aurora.store')) {
document.getElementById('aurora-store-btn').outerHTML =
``
} else {
document.getElementById('aurora-store-btn').outerHTML =
``
}
if (require('child_process').spawnSync('waydroid', ['app', 'list']).stdout.includes('org.fdroid.fdroid')) {
document.getElementById('f-droid-btn').outerHTML =
``
} else {
document.getElementById('f-droid-btn').outerHTML =
``
}
}, 1000)
} else {
if (require('child_process').spawnSync('sh', ['-c', 'LC_ALL=C lspci']).stdout.includes('NVIDIA')) {
document.getElementById('nvidia-warning').classList.remove('d-none')
}
}
})
$('#automatic-state-toggle').on('change', () => {
if (!document.getElementById('automatic-state-toggle').checked) {
let enable_autostate_worker = new Worker(
`data:text/javascript,
let s = require('child_process').spawnSync('pkexec', ['rm', '-f', '/blend/states/.disable_states']).status
if (s === 0) {
postMessage('success')
} else {
postMessage('failure')
}
`
)
enable_autostate_worker.onmessage = e => {
if (e.data == 'success') {
document.getElementById('automatic-state-toggle').checked = false
} else {
document.getElementById('automatic-state-toggle').checked = true
}
}
} else {
let disable_autostate_worker = new Worker(
`data:text/javascript,
let s = require('child_process').spawnSync('pkexec', ['blend-system', 'toggle-states']).status
if (s === 0) {
postMessage('success')
} else {
postMessage('failure')
}
`
)
disable_autostate_worker.onmessage = e => {
if (e.data == 'success') {
document.getElementById('automatic-state-toggle').checked = true
} else {
document.getElementById('automatic-state-toggle').checked = false
}
}
}
});