move main application view over to messageReceiver namespace

The goal here is to allow synchronous property lookup between objects
and mvc/backbone semantics.

// FREEBIE
This commit is contained in:
Sam Vevang 2017-01-09 08:45:47 -06:00 committed by lilia
parent ef4b4da2a3
commit e4a21d1a53
3 changed files with 45 additions and 18 deletions

View file

@ -11,7 +11,7 @@
<link href="/stylesheets/manifest.css" rel="stylesheet" type="text/css" />
<script type="text/javascript" src="js/chromium.js"></script>
</head>
<body class='signal index'>
<body id="signal-container" class='signal index'>
<script type="text/javascript" src="js/index.js"></script>
</body>
</html>

View file

@ -120,6 +120,9 @@
window.textsecure.messaging = new textsecure.MessageSender(
SERVER_URL, SERVER_PORTS, USERNAME, PASSWORD
);
deferredInit.resolve(owsDesktopApp);
if (firstRun === true && textsecure.storage.user.getDeviceId() != '1') {
if (!storage.get('theme-setting') && textsecure.storage.get('userAgent') === 'OWI') {
storage.put('theme-setting', 'ios');
@ -293,4 +296,38 @@
timestamp: timestamp, source: pushMessage.source
});
}
var App = Backbone.Model.extend({
initialize: function(opts) {
this.inboxView = null;
},
getAppView: function(destWindow) {
var self = this;
return ConversationController.updateInbox().then(function() {
try {
if (self.inboxView) { self.inboxView.remove(); }
self.inboxView = new Whisper.InboxView({model: self, window: destWindow});
destWindow.openConversation = function(conversation) {
if (conversation) {
self.inboxView.openConversation(null, conversation);
}
};
destWindow.openConversation(getOpenConversation());
return self.inboxView;
} catch (e) {
console.log(e);
}
});
}
});
window.owsDesktopApp = new App();
var deferredInit = $.Deferred();
window.initLoading = deferredInit.promise();
})();

View file

@ -15,25 +15,15 @@
logError(error);
};
var view;
function render() {
extension.windows.getBackground(function(bg) {
bg.ConversationController.updateInbox().then(function() {
try {
if (view) { view.remove(); }
var $body = bg.$('body',document).empty();
view = new bg.Whisper.InboxView({window: window});
view.$el.prependTo($body);
window.openConversation = function(conversation) {
if (conversation) {
view.openConversation(null, conversation);
}
};
openConversation(bg.getOpenConversation());
} catch (e) {
logError(e);
}
var inboxPromise = bg.initLoading.done(function(owsDesktopApp) {
owsDesktopApp.getAppView(window).then(function(appView) {
var bodyEl = document.getElementById('signal-container');
bodyEl.innerHTML = "";
bodyEl.append(appView.el);
});
});
});
}