Snippets

Anbu EBkxX: Untitled snippet

Created by Anbu
package com.bkno3.app;

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(){
        if(mInstance == null)
        {
            mInstance = new loginSingleton();
        }
        return mInstance;

    }

    private class getConfiguration extends AsyncTask<String, Void, String> {
        @Override
        protected String doInBackground(String... urls){
            try{
                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) {

            try {
                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();


            } catch (Exception e){

            }

        }
    }

    public void googleSignOut() {
        Auth.GoogleSignInApi.signOut(mGoogleApiClient).setResultCallback(
                new ResultCallback<Status>() {
                    @Override
                    public void onResult(Status status) {

                        Toast.makeText(getApplicationContext(), "signedout",Toast.LENGTH_LONG).show();
                    }
                });
    }


}

Comments (0)

HTTPS SSH

You can clone a snippet to your computer for local editing. Learn more.