diff --git a/hooks/browser/after_prepare.js b/hooks/browser/after_prepare.js deleted file mode 100644 index 0a06e669..00000000 --- a/hooks/browser/after_prepare.js +++ /dev/null @@ -1,46 +0,0 @@ -#!/usr/bin/env node -'use strict'; - -var fs = require('fs'); - -var getPreferenceValue = function(config, name) { - var value = config.match(new RegExp('name="' + name + '" value="(.*?)"', "i")); - if(value && value[1]) { - return value[1] - } else { - return null - } -}; -var getPreferenceValueFromPackageJson = function (config, name) { - var value = config.match(new RegExp('"' + name + '":\\s"(.*?)"', "i")); - if (value && value[1]) { - return value[1] - } else { - return null - } -}; - -var WEB_APPLICATION_CLIENT_ID = ''; - -if(process.argv.join("|").indexOf("WEB_APPLICATION_CLIENT_ID=") > -1) { - WEB_APPLICATION_CLIENT_ID = process.argv.join("|").match(/WEB_APPLICATION_CLIENT_ID=(.*?)(\||$)/)[1] -} else { - var config = fs.readFileSync("config.xml").toString(); - WEB_APPLICATION_CLIENT_ID = getPreferenceValue(config, "WEB_APPLICATION_CLIENT_ID"); - if (!WEB_APPLICATION_CLIENT_ID) { - var packageJson = fs.readFileSync("package.json").toString(); - WEB_APPLICATION_CLIENT_ID = getPreferenceValueFromPackageJson(packageJson, "WEB_APPLICATION_CLIENT_ID"); - } -} - -var files = [ - "platforms/browser/www/plugins/cordova-plugin-googleplus/src/browser/GooglePlusProxy.js", - "platforms/browser/platform_www/plugins/cordova-plugin-googleplus/src/browser/GooglePlusProxy.js" -]; - -for(var i=0; i - - - - - - - - - - - - - - - - - - diff --git a/src/android/GooglePlus.java b/src/android/GooglePlus.java index c6316a90..4b8370ea 100644 --- a/src/android/GooglePlus.java +++ b/src/android/GooglePlus.java @@ -47,9 +47,7 @@ */ public class GooglePlus extends CordovaPlugin implements GoogleApiClient.OnConnectionFailedListener { - public static final String ACTION_IS_AVAILABLE = "isAvailable"; public static final String ACTION_LOGIN = "login"; - public static final String ACTION_TRY_SILENT_LOGIN = "trySilentLogin"; public static final String ACTION_LOGOUT = "logout"; public static final String ACTION_DISCONNECT = "disconnect"; public static final String ACTION_GET_SIGNING_CERTIFICATE_FINGERPRINT = "getSigningCertificateFingerprint"; @@ -59,7 +57,7 @@ public class GooglePlus extends CordovaPlugin implements GoogleApiClient.OnConne private final static String FIELD_TOKEN_EXPIRES_IN = "expires_in"; private final static String VERIFY_TOKEN_URL = "https://www.googleapis.com/oauth2/v1/tokeninfo?access_token="; - //String options/config object names passed in to login and trySilentLogin + //String options/config object names passed in to login public static final String ARGUMENT_WEB_CLIENT_ID = "webClientId"; public static final String ARGUMENT_SCOPES = "scopes"; public static final String ARGUMENT_OFFLINE_KEY = "offline"; @@ -98,11 +96,7 @@ public void onActivityResult(ActivityResult result) { public boolean execute(String action, CordovaArgs args, CallbackContext callbackContext) throws JSONException { this.savedCallbackContext = callbackContext; - if (ACTION_IS_AVAILABLE.equals(action)) { - final boolean available = true; - savedCallbackContext.success(toStatus("success", String.valueOf(available))); - - } else if (ACTION_LOGIN.equals(action)) { + if (ACTION_LOGIN.equals(action)) { //pass args into api client build buildGoogleApiClient(args.optJSONObject(0)); @@ -110,13 +104,6 @@ public boolean execute(String action, CordovaArgs args, CallbackContext callback Log.i(TAG, "Trying to Log in!"); signIn(); - } else if (ACTION_TRY_SILENT_LOGIN.equals(action)) { - //pass args into api client build - buildGoogleApiClient(args.optJSONObject(0)); - - Log.i(TAG, "Trying to do silent login!"); - trySilentLogin(); - } else if (ACTION_LOGOUT.equals(action)) { Log.i(TAG, "Trying to logout!"); signOut(); @@ -215,23 +202,12 @@ private void signIn() { this.signInActivityLauncher.launch(signInIntent); } - /** - * Tries to log the user in silently using existing sign in result information - */ - private void trySilentLogin() { - ConnectionResult apiConnect = mGoogleApiClient.blockingConnect(); - - if (apiConnect.isSuccess()) { - handleSignInResult(Auth.GoogleSignInApi.silentSignIn(this.mGoogleApiClient).await()); - } - } - /** * Signs the user out from the client */ private void signOut() { if (this.mGoogleApiClient == null) { - savedCallbackContext.error(toStatus("error", "Please use login or trySilentLogin before logging out")); + savedCallbackContext.error(toStatus("error", "Please use login before logging out")); return; } @@ -259,7 +235,7 @@ public void onResult(Status status) { */ private void disconnect() { if (this.mGoogleApiClient == null) { - savedCallbackContext.error(toStatus("error", "Please use login or trySilentLogin before disconnecting")); + savedCallbackContext.error(toStatus("error", "Please use login before disconnecting")); return; } diff --git a/src/browser/GooglePlusProxy.js b/src/browser/GooglePlusProxy.js deleted file mode 100644 index 96a647cf..00000000 --- a/src/browser/GooglePlusProxy.js +++ /dev/null @@ -1,141 +0,0 @@ -var __googleSdkReady = false; -var __googleCallbacks = []; - -var GooglePlusProxy = { - - isAvailable: function (success, error) { - if (!__googleSdkReady) { - return __googleCallbacks.push(function() { - this.isAvailable(success, error); - }); - } - - success(window.gapi !== undefined); - }, - - updateSigninStatus: function (isSignedIn, success, error) { - if (isSignedIn) { - var auth2 = gapi.auth2.getAuthInstance(); - var user = auth2.currentUser.get(); - if (!user) { - error({'error': 'User not found.'}); - return false; - } - - var profile = user.getBasicProfile(); - var authResponse = user.getAuthResponse(true); - if (success) { - success({ - "accessToken": authResponse['access_token'], - "expires": authResponse['expires_at'], - "expires_in": authResponse['expires_in'], - "idToken": authResponse['id_token'], - "serverAuthCode": authResponse['server_auth_code'], - "email": profile.getEmail(), - "userId": profile.getId(), - "displayName": profile.getName(), - "familyName": profile.getFamilyName(), - "givenName": profile.getGivenName(), - "imageUrl": profile.getImageUrl() - }); - } - - } else { - if (error) error({'error': 'User not logged in.'}); - } - }, - - trySilentLogin: function (success, error, options) { - if (!__googleSdkReady) { - return __googleCallbacks.push(function() { - this.trySilentLogin(success, error, options); - }); - } - - GooglePlusProxy.updateSigninStatus(gapi.auth2.getAuthInstance().isSignedIn.get(), success, error); - }, - - login: function (success, error, options) { - var that = this; - if (!__googleSdkReady) { - return __googleCallbacks.push(function() { - that.login(success, error, options); - }); - } - - gapi.auth2.getAuthInstance().signIn(options).then(function () { - GooglePlusProxy.updateSigninStatus(gapi.auth2.getAuthInstance().isSignedIn.get(), success, error); - }, function(err) { - error(err); - }); - }, - - logout: function (success, error) { - if (!__googleSdkReady) { - return __googleCallbacks.push(function() { - this.logout(success, error); - }); - } - - gapi.auth2.getAuthInstance().signOut().then(success, function(err) { - error(err); - }); - }, - - disconnect: function (success, error) { - if (!__googleSdkReady) { - return __googleCallbacks.push(function() { - this.disconnect(success, error); - }); - } - - gapi.auth2.getAuthInstance().disconnect().then(success, function(err) { - error(err); - }); - }, - - getSigningCertificateFingerprint: function (success, error) { - console.warn('Not implemented.'); - console.trace(); - } -}; - -if (window.location.protocol === "file:") { - console.warn("Google API is not supported when using file:// protocol"); -} else { - window.handleClientLoad = function() { - gapi.load('auth2', function () { - gapi.auth2.init({ - client_id: "WEB_APPLICATION_CLIENT_ID" // CLIENT_ID is populated by the cordova after_prepare hook - }).then(function () { - __googleSdkReady = true; - - for (var i = 0; i < __googleCallbacks.length; i++) { - __googleCallbacks[i].call(GooglePlusProxy); - } - - // Listen for sign-in state changes. - gapi.auth2.getAuthInstance().isSignedIn.listen(GooglePlusProxy.updateSigninStatus); - }, function(error) { - if (error.details) { - console.error(error.details); - } else { - console.error(error); - } - }); - }); - }; - - (function(d, s, id){ - var js, fjs = d.getElementsByTagName(s)[0]; - if (d.getElementById(id)) {return;} - js = d.createElement(s); js.id = id; - js.onload = function () { window.handleClientLoad(); }; - js.onreadystatechange = function () { if (this.readyState === 'complete') js.onload(); }; - js.src = "https://apis.google.com/js/api.js"; - fjs.parentNode.insertBefore(js, fjs); - }(document, 'script', 'googleplus-jssdk')); -} - -module.exports = GooglePlusProxy; -require("cordova/exec/proxy").add("GooglePlus", module.exports); diff --git a/www/GooglePlus.js b/www/GooglePlus.js index 2e327ad4..d0f1523c 100755 --- a/www/GooglePlus.js +++ b/www/GooglePlus.js @@ -1,28 +1,26 @@ function GooglePlus() { } -GooglePlus.prototype.isAvailable = function (callback) { - cordova.exec(callback, null, "GooglePlus", "isAvailable", []); -}; +function makeCbWithProcessedResult(callback) { + return function processCallback(result) { + return callback.call(this, JSON.parse(result)); + } +} GooglePlus.prototype.login = function (options, successCallback, errorCallback) { - cordova.exec(successCallback, errorCallback, "GooglePlus", "login", [options]); -}; - -GooglePlus.prototype.trySilentLogin = function (options, successCallback, errorCallback) { - cordova.exec(successCallback, errorCallback, "GooglePlus", "trySilentLogin", [options]); + cordova.exec(makeCbWithProcessedResult(successCallback), makeCbWithProcessedResult(errorCallback), "GooglePlus", "login", [options]); }; GooglePlus.prototype.logout = function (successCallback, errorCallback) { - cordova.exec(successCallback, errorCallback, "GooglePlus", "logout", []); + cordova.exec(makeCbWithProcessedResult(successCallback), makeCbWithProcessedResult(errorCallback), "GooglePlus", "logout", []); }; GooglePlus.prototype.disconnect = function (successCallback, errorCallback) { - cordova.exec(successCallback, errorCallback, "GooglePlus", "disconnect", []); + cordova.exec(makeCbWithProcessedResult(successCallback), makeCbWithProcessedResult(errorCallback), "GooglePlus", "disconnect", []); }; GooglePlus.prototype.getSigningCertificateFingerprint = function (successCallback, errorCallback) { - cordova.exec(successCallback, errorCallback, "GooglePlus", "getSigningCertificateFingerprint", []); + cordova.exec(makeCbWithProcessedResult(successCallback), makeCbWithProcessedResult(errorCallback), "GooglePlus", "getSigningCertificateFingerprint", []); }; GooglePlus.install = function () { @@ -34,4 +32,4 @@ GooglePlus.install = function () { return window.plugins.googleplus; }; -cordova.addConstructor(GooglePlus.install); \ No newline at end of file +cordova.addConstructor(GooglePlus.install); diff --git a/yarn.lock b/yarn.lock deleted file mode 100644 index f4b35c80..00000000 --- a/yarn.lock +++ /dev/null @@ -1,8 +0,0 @@ -# THIS IS AN AUTOGENERATED FILE. DO NOT EDIT THIS FILE DIRECTLY. -# yarn lockfile v1 - - -q@*: - version "1.5.1" - resolved "https://registry.yarnpkg.com/q/-/q-1.5.1.tgz#7e32f75b41381291d04611f1bf14109ac00651d7" - integrity sha512-kV/CThkXo6xyFEZUugw/+pIOywXcDbFYgSct5cT3gqlbkBE1SJdwy6UQoZvodiWF/ckQLZyDE/Bu1M6gVu5lVw==