diff --git a/app-src/scripts/main/global-services/google-api-s.js b/app-src/scripts/main/global-services/google-api-s.js index 8daac00dbe..67db737cec 100644 --- a/app-src/scripts/main/global-services/google-api-s.js +++ b/app-src/scripts/main/global-services/google-api-s.js @@ -88,6 +88,7 @@ if (this.$rootScope.r.googleTokens.accessToken && !isExpired) { this.accessToken = this.$rootScope.r.googleTokens.accessToken; + this.isLoggedIn = true; return new Promise((resolve) => resolve()); } @@ -99,6 +100,7 @@ this.accessToken = token; this.$rootScope.r.googleTokens.accessToken = this.accessToken; //this.$rootScope.r.googleTokens.refreshToken = data.refresh_token; + this.isLoggedIn = true; resolve(); // TODO remove // mainWindow.webContents.removeListener('did-finish-load', handler); @@ -109,11 +111,13 @@ return this.initClientLibraryIfNotDone() .then((user) => { if (user && user.Zi && user.Zi.access_token) { + this.isLoggedIn = true; this.saveToken(user); } else { return window.gapi.auth2.getAuthInstance().signIn() .then((res) => { console.log(res); + this.isLoggedIn = true; this.saveToken(res); }); } @@ -131,6 +135,8 @@ } logout() { + this.isLoggedIn = false; + if (this.IS_ELECTRON) { this.accessToken = undefined; this.$rootScope.r.googleTokens.accessToken = undefined; @@ -138,12 +144,18 @@ resolve(); }); } else { - return window.gapi.auth2.getAuthInstance().signOut(); + if (window.gapi) { + return window.gapi.auth2.getAuthInstance().signOut(); + } else { + return new Promise((resolve) => { + resolve(); + }); + } } } handleError(err) { - console.log(err); + this.$log(err); this.SimpleToast('ERROR', 'GoogleApi Error'); return this.$q.reject(); } diff --git a/app-src/scripts/main/global-services/google-drive-sync-s.js b/app-src/scripts/main/global-services/google-drive-sync-s.js index c0f9d67c5c..04316331f1 100644 --- a/app-src/scripts/main/global-services/google-drive-sync-s.js +++ b/app-src/scripts/main/global-services/google-drive-sync-s.js @@ -13,10 +13,17 @@ class GoogleDriveSync { /* @ngInject */ - constructor(AppStorage, GoogleApi, $rootScope) { + constructor(AppStorage, GoogleApi, $rootScope, SimpleToast, $q) { this.AppStorage = AppStorage; this.GoogleApi = GoogleApi; this.$rootScope = $rootScope; + this.SimpleToast = SimpleToast; + this.$q = $q; + + if (this.$rootScope.r.config.googleDriveSync.isAutoLogin) { + GoogleApi.login(); + } + } getLocalAppData() { @@ -37,7 +44,11 @@ } loadFrom() { - return this.GoogleApi.loadFile(this.$rootScope.r.googleDriveSync.backupDocId); + return this.GoogleApi.loadFile(this.$rootScope.r.googleDriveSync.backupDocId) + .then((res) => { + console.log(res); + return this.$q.when(res); + }); } } diff --git a/app-src/scripts/settings/backup-settings/backup-settings-d.html b/app-src/scripts/settings/backup-settings/backup-settings-d.html index 3653a79a40..352d4a7900 100644 --- a/app-src/scripts/settings/backup-settings/backup-settings-d.html +++ b/app-src/scripts/settings/backup-settings/backup-settings-d.html @@ -39,20 +39,20 @@
Login Logout @@ -61,14 +61,14 @@ Save Backup now Load from Google Drive diff --git a/app-src/scripts/settings/backup-settings/backup-settings-d.js b/app-src/scripts/settings/backup-settings/backup-settings-d.js index 9f1cdf42dd..f8f3e1974b 100644 --- a/app-src/scripts/settings/backup-settings/backup-settings-d.js +++ b/app-src/scripts/settings/backup-settings/backup-settings-d.js @@ -54,23 +54,14 @@ }; vm.login = () => { - vm.isLoading = true; - - return GoogleApi.login() - .then(() => { - vm.isLoggedIn = true; - vm.isLoading = false; - }); + return GoogleApi.login(); }; vm.logout = () => { - vm.isLoading = true; - return GoogleApi.logout() - .then(() => { - vm.isLoggedIn = false; - vm.isLoading = false; - }); + return GoogleApi.logout(); }; + + vm.GoogleApi = GoogleApi; } })();