converse-desktop/app/services/chimeverse-service.js

82 lines
2.8 KiB
JavaScript
Raw Normal View History

2020-05-09 15:07:42 +00:00
let angApp = require(__dirname + '/../init')
2020-05-13 20:00:36 +00:00
const chimeversePlugin = require(__dirname +'/../../libs/converse.js/3rdparty/chimeverse-plugin')
angApp.factory('ChimeVerseService', ($window, $timeout, CredentialsServise, SystemService, AppStateService, SettingsService) => {
2020-05-09 15:07:42 +00:00
let chimeverseService = {}
chimeverseService._notifyMessage = () => {
SystemService.playAudio()
SystemService.showEnvelope()
}
chimeverseService._hideNotifyMessage = () => {
SystemService.hideEnvelope()
}
chimeverseService.logout = () => {
2020-05-11 18:26:51 +00:00
let credentials = CredentialsServise.getCredentials()
2020-05-09 15:07:42 +00:00
credentials.then((result) => {
2020-05-11 18:26:51 +00:00
let remove = CredentialsServise.removeCredentials(result.login)
2020-05-09 15:07:42 +00:00
console.log('Remove credential on logout')
remove.then(() => {
AppStateService.set(AppStateService.APP_STATE_LOGIN)
})
})
}
chimeverseService.initConverse = (bosh, login, password) => {
AppStateService.set(AppStateService.APP_STATE_DEFAULT) // Always set to default state before init
2020-05-13 20:00:36 +00:00
chimeversePlugin.register(login)
2020-05-09 15:07:42 +00:00
let lang = navigator.language
2020-05-12 15:06:16 +00:00
let allowBookmarks = SettingsService.get('allowBookmarks')
let omemoDefault = SettingsService.get('omemoDefault')
let xmppResource = '.' + (Math.random().toString(36)+'00000000000000000').slice(2, 7); // Generate 5 char unique str
2020-05-13 20:00:36 +00:00
$timeout(() => {
converse.initialize({
allow_bookmarks: allowBookmarks,
2020-05-18 20:48:06 +00:00
auto_login: true,
auto_reconnect: true,
2020-05-13 20:00:36 +00:00
bosh_service_url: bosh,
2020-05-18 20:48:06 +00:00
// debug: true,
i18n: lang,
jid: login + '/Chimeverse'+xmppResource,
2020-05-18 20:48:06 +00:00
omemo_default: omemoDefault,
2020-05-13 20:00:36 +00:00
password: password,
priority: 50,
2020-05-18 20:48:06 +00:00
view_mode: 'embedded',
whitelisted_plugins: ['chimeVerse'],
2020-05-13 20:00:36 +00:00
})
}, 50)
}
chimeverseService.getCredentialsAndLogin = () => {
let credentials = CredentialsServise.getCredentials()
credentials.then((result) => {
chimeverseService.initConverse(result.bosh, result.login, result.password)
}, (error) => {
AppStateService.set(AppStateService.APP_STATE_LOGIN)
2020-05-09 15:07:42 +00:00
})
}
2020-05-13 20:00:36 +00:00
2020-05-12 16:55:56 +00:00
chimeverseService.chatToOpen = null
2020-05-09 15:07:42 +00:00
$window.document.addEventListener('conversejs-logout', function (e) {
chimeverseService.logout()
2020-05-13 20:00:36 +00:00
})
2020-05-09 15:07:42 +00:00
$window.document.addEventListener('conversejs-unread', function (e) {
2020-05-12 16:55:56 +00:00
let sender = e.detail
chimeverseService.chatToOpen = sender
2020-05-09 15:07:42 +00:00
chimeverseService._notifyMessage()
2020-05-13 20:00:36 +00:00
})
2020-05-09 15:07:42 +00:00
$window.document.addEventListener('conversejs-no-unread', function (e) {
chimeverseService._hideNotifyMessage()
2020-05-13 20:00:36 +00:00
})
2020-05-09 15:07:42 +00:00
return chimeverseService
})