+import android.app.Application;
+import android.content.SharedPreferences;
+import android.os.AsyncTask;
+import android.widget.Toast;
+import com.google.android.gms.auth.api.Auth;
+import com.google.android.gms.auth.api.signin.GoogleSignInOptions;
+import com.google.android.gms.common.Scopes;
+import com.google.android.gms.common.api.GoogleApiClient;
+import com.google.android.gms.common.api.ResultCallback;
+import com.google.android.gms.common.api.Scope;
+import com.google.android.gms.common.api.Status;
+import org.json.JSONObject;
+import java.io.IOException;
+ * Created by root on 12/09/16.
+public class loginSingleton extends Application {
+ private static loginSingleton mInstance = null;
+ public GoogleApiClient mGoogleApiClient;
+ SharedPreferences storeToken;
+ private loginSingleton(){
+ String stringUrl = "xxx"; //url to get google client id from my API
+ new getConfiguration().execute(stringUrl);
+ public static loginSingleton getInstance(){
+ mInstance = new loginSingleton();
+ private class getConfiguration extends AsyncTask<String, Void, String> {
+ protected String doInBackground(String... urls){
+ WebRequest apiconn = new WebRequest();
+ return apiconn.apiConnectionGet(urls[0]);
+ } catch (IOException e){
+ return "Unable to make the API call. Url may be invalid";
+ protected void onPostExecute(String result) {
+ JSONObject reader = new JSONObject(result);
+ String googleid = reader.getString("GOOGLE_CLIENT_ID");
+ GoogleSignInOptions gso = new GoogleSignInOptions.Builder(GoogleSignInOptions.DEFAULT_SIGN_IN).requestScopes(new Scope(Scopes.PLUS_LOGIN)).requestServerAuthCode(googleid, false).requestEmail().build();
+ mGoogleApiClient = new GoogleApiClient.Builder(loginSingleton.this).enableAutoManage(this/*FragmentActivity*/, this /*OnConnectionFailedListener*/).addApi(Auth.GOOGLE_SIGN_IN_API, gso).build();
+ public void googleSignOut() {
+ Auth.GoogleSignInApi.signOut(mGoogleApiClient).setResultCallback(
+ new ResultCallback<Status>() {
+ public void onResult(Status status) {
+ Toast.makeText(getApplicationContext(), "signedout",Toast.LENGTH_LONG).show();