overte/scripts/system/+android/goto.js

96 lines
2.2 KiB
JavaScript

"use strict";
//
// goto-android.js
// scripts/system/
//
// Created by Gabriel Calero & Cristian Duarte on 12 Sep 2017
// Copyright 2017 High Fidelity, Inc.
//
// Distributed under the Apache License, Version 2.0.
// See the accompanying file LICENSE or http://www.apache.org/licenses/LICENSE-2.0.html
//
var window;
var logEnabled = false;
function printd(str) {
if (logEnabled)
print("[goto-android.js] " + str);
}
function init() {
}
function fromQml(message) { // messages are {method, params}, like json-rpc. See also sendToQml.
switch (message.method) {
case 'shownChanged':
if (notifyShownChange) {
notifyShownChange(message.params.shown);
} ;
break;
case 'hide':
module.exports.hide();
module.exports.onHidden();
break;
default:
print('[goto-android.js] Unrecognized message from AddressBarDialog.qml:', JSON.stringify(message));
}
}
function sendToQml(message) {
window.sendToQml(message);
}
var isVisible = false;
var notifyShownChange;
module.exports = {
init: function() {
window = new QmlFragment({
qml: "AddressBarDialog.qml",
visible: false
});
},
show: function() {
Controller.setVPadHidden(true);
if (window) {
window.fromQml.connect(fromQml);
window.setVisible(true);
isVisible = true;
}
},
hide: function() {
Controller.setVPadHidden(false);
if (window) {
window.fromQml.disconnect(fromQml);
window.setVisible(false);
}
isVisible = false;
},
destroy: function() {
if (window) {
window.close();
window = null;
}
},
isVisible: function() {
return isVisible;
},
width: function() {
return window ? window.size.x : 0;
},
height: function() {
return window ? window.size.y : 0;
},
position: function() {
return window && isVisible ? window.position : null;
},
setOnShownChange: function(f) {
notifyShownChange = f;
},
onHidden: function() { }
};
init();