Example usage for com.google.api.client.googleapis MethodOverride intercept

List of usage examples for com.google.api.client.googleapis MethodOverride intercept

Introduction

In this page you can find the example usage for com.google.api.client.googleapis MethodOverride intercept.

Prototype

public void intercept(HttpRequest request) throws IOException 

Source Link

Usage

From source file:com.phonegap.calendar.android.core.CalendarClientFactory.java

License:Apache License

/**
 * This method creates an instance of Google CalendarClient
 * if it does not exists, for this aim we need use the 
 * account manager and the {@link GoogleAccountUtils} methods
 * in order to get the access token and fill the corresponding 
 * init values into the new ClientCalendar instance 
 * @param context ANdroid app context//from   w  w w.  j  ava2 s  . c o  m
 * @return CalendarClient instance with access into the google calendar account 
 */
static public CalendarClient getInstance(Context context) {

    if (calendarClient == null) {

        transport = AndroidHttp.newCompatibleTransport();
        accountManager = new GoogleAccountManager(context);
        settings = context.getSharedPreferences(PREF, 0);
        authToken = settings.getString(PREF_AUTH_TOKEN, null);

        if (authToken == null) {
            GoogleAccountUtils googleAccountsUtils = new GoogleAccountUtils();
            //here you must specify the account in which you want work on
            if (AccountsUtils.getAccountsByType(context, "com.google").length > 0) {
                authToken = googleAccountsUtils.selectAccount(context,
                        AccountsUtils.getAccountsByType(context, "com.google")[0]);
            } else {
                Log.e(TAG, "You have not any account asociated into this device");
                return null;
            }
        }

        gsessionid = settings.getString(PREF_GSESSIONID, null);

        final MethodOverride override = new MethodOverride(); // needed for PATCH

        HttpRequestInitializer initializer = new HttpRequestInitializer() {

            @Override
            public void initialize(HttpRequest request) throws IOException {

                GoogleHeaders headers = new GoogleHeaders();
                headers.setApplicationName("Google-CalendarAndroidSample/1.0");
                headers.gdataVersion = "2";
                request.headers = headers;
                calendarClient.initializeParser(request);

                request.interceptor = new HttpExecuteInterceptor() {

                    public void intercept(HttpRequest request) throws IOException {
                        GoogleHeaders headers = (GoogleHeaders) request.headers;
                        headers.setGoogleLogin(authToken);
                        request.url.set("gsessionid", gsessionid);
                        override.intercept(request);
                    }
                };
                request.unsuccessfulResponseHandler = new HttpUnsuccessfulResponseHandler() {

                    public boolean handleResponse(HttpRequest request, HttpResponse response,
                            boolean retrySupported) {
                        switch (response.statusCode) {
                        case 302:
                            GoogleUrl url = new GoogleUrl(response.headers.location);
                            gsessionid = (String) url.getFirst("gsessionid");
                            SharedPreferences.Editor editor = settings.edit();
                            editor.putString(PREF_GSESSIONID, gsessionid);
                            editor.commit();
                            return true;
                        case 401:
                            accountManager.invalidateAuthToken(authToken);
                            authToken = null;
                            SharedPreferences.Editor editor2 = settings.edit();
                            editor2.remove(PREF_AUTH_TOKEN);
                            editor2.commit();
                            return false;
                        }
                        return false;
                    }
                };

            }
        };

        calendarClient = new CalendarClient(transport.createRequestFactory(initializer));
    }
    return calendarClient;
}

From source file:net.rhinox.api.client.cliniccal.calendar.android.ClinicCalStartActivity.java

License:Apache License

private void createCalendarClient() {
    accountManager = new GoogleAccountManager(this);
    settings = this.getSharedPreferences(PREF, 0);
    authToken = settings.getString(PREF_AUTH_TOKEN, null);
    gsessionid = settings.getString(PREF_GSESSIONID, null);

    final MethodOverride override = new MethodOverride(); // needed for PATCH

    client = new CalendarClient(transport.createRequestFactory(new HttpRequestInitializer() {

        public void initialize(HttpRequest request) {
            GoogleHeaders headers = new GoogleHeaders();
            headers.setApplicationName("ClinicCalStartActivity/1.0");
            headers.gdataVersion = "2";
            request.headers = headers;/*w w  w . j  a  va  2 s . c o  m*/

            client.initializeParser(request);
            request.interceptor = new HttpExecuteInterceptor() {

                public void intercept(HttpRequest request) throws IOException {
                    GoogleHeaders headers = (GoogleHeaders) request.headers;
                    headers.setGoogleLogin(authToken);
                    request.url.set("gsessionid", gsessionid);
                    override.intercept(request);
                }
            };

            request.unsuccessfulResponseHandler = new HttpUnsuccessfulResponseHandler() {

                public boolean handleResponse(HttpRequest request, HttpResponse response,
                        boolean retrySupported) {
                    switch (response.statusCode) {
                    case 302:
                        GoogleUrl url = new GoogleUrl(response.headers.location);
                        gsessionid = (String) url.getFirst("gsessionid");
                        SharedPreferences.Editor editor = settings.edit();
                        editor.putString(PREF_GSESSIONID, gsessionid);
                        editor.commit();
                        return true;
                    case 401:
                        accountManager.invalidateAuthToken(authToken);
                        authToken = null;
                        SharedPreferences.Editor editor2 = settings.edit();
                        editor2.remove(PREF_AUTH_TOKEN);
                        editor2.commit();
                        return false;
                    }
                    return false;
                }
            };
        }
    }));

}

From source file:osse.android.moldhold.calendarActivity.java

License:Apache License

@Override
public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);

    accountManager = new GoogleAccountManager(this);
    settings = getSharedPreferences(PREF, MODE_PRIVATE);

    // Try to get from preferences (will be empty at initial run)
    authToken = settings.getString("AUTH_TOKEN", null);
    gsessionid = settings.getString("GSESSION_ID", null);
    accountName = settings.getString("ACCOUNT_NAME", null);
    calendarID = settings.getString("CALENDAR_ID", null);

    final MethodOverride override = new MethodOverride(); // needed for PATCH
    client = new CalendarClient(transport.createRequestFactory(new HttpRequestInitializer() {

        public void initialize(HttpRequest request) {
            Log.d(TAG, "in new CalendarClient - initialize()");
            GoogleHeaders headers = new GoogleHeaders();
            headers.setApplicationName("MoldHold/1.0");
            headers.gdataVersion = "2";
            request.headers = headers;// w  w  w.  j av a  2s  . c  om
            client.initializeParser(request);
            request.interceptor = new HttpExecuteInterceptor() {

                public void intercept(HttpRequest request) throws IOException {
                    GoogleHeaders headers = (GoogleHeaders) request.headers;
                    headers.setGoogleLogin(authToken);
                    request.url.set("gsessionid", gsessionid);
                    override.intercept(request);
                }
            };
            // redefining unsuccessfulResponseHandler
            request.unsuccessfulResponseHandler = new HttpUnsuccessfulResponseHandler() {

                public boolean handleResponse(HttpRequest request, HttpResponse response,
                        boolean retrySupported) {

                    Log.d(TAG, "in new CalendarClient - handleResponse()");

                    switch (response.statusCode) {
                    case 302: // found
                        GoogleUrl url = new GoogleUrl(response.headers.location);
                        gsessionid = (String) url.getFirst("gsessionid");
                        SharedPreferences.Editor editor = settings.edit();
                        editor.putString("GSESSION_ID", gsessionid);
                        editor.commit();
                        return true;
                    case 401: // unauthorized -> bad authToken 
                        Log.d(TAG, "401 invalid token");

                        accountManager.invalidateAuthToken(authToken);
                        authToken = null;
                        SharedPreferences.Editor editor2 = settings.edit();
                        editor2.remove("AUTH_TOKEN");
                        editor2.commit();
                        return false;
                    }
                    return false; // any other status code
                }
            };
        } // end public void initialize
    })); // end new calendarClient

    Log.d(TAG, "calling gotAccount in onCreate()");
    gotAccount();
    Log.d(TAG, "calling executeRefreshCalendars in onCreate()");
    executeRefreshCalendars();

    // trying to make main UI thread wait for new authToken to be
    // obtained before continuing on...
    /*   if (authToken == null) {
          setContentView(R.layout.status);   
          while(authToken == null) {
    //Log.d(TAG, "main thread yielding...");
    //Thread.yield();   // OOPS, can't do this...
    ;
          }
       }*/

    Log.d(TAG, "checking if calendar exists...");
    boolean found = checkCalendarExists();
    if (found == false) {
        Log.d(TAG, "creating new calendar...");
        createNewCalendar(); // saves calendarID to preferences
    }
    Log.d(TAG, "calendar was found, now checking cal id...");

    if (calendarID == null) {
        Log.d(TAG, "Shit, calendarID is null... this should never happend...");
        //finish();       // handle...
    }

    // Must setContentView before calling findViewById for buttons!!!
    setContentView(R.layout.calendar);

    dateDisplay = (TextView) findViewById(R.id.dateDisplay);
    btnOk = (Button) findViewById(R.id.btnOk);
    btnOk.setOnClickListener(new OnClickListener() {

        @Override
        public void onClick(View v) {
            // add event using date
            EventEntry event = newEvent();
            addNewEvent(event);
            Intent intent = new Intent();
            setResult(Activity.RESULT_OK, intent);
            finish(); // return to mainActivity
        }
    });

    btnPickDate = (Button) findViewById(R.id.btnPickDate);
    btnPickDate.setOnClickListener(new OnClickListener() {

        @Override
        public void onClick(View v) {
            showDialog(DATE_DIALOG_ID);
        }
    });

    // get extras from mainActivity
    Bundle extras = getIntent().getExtras();
    if (extras != null) {
        productName = extras.getString("DESCRIPTION");
        shelfLife = extras.getLong("SHELF_LIFE");

    }
    setAlarmDate();
    dateDisplay.setText(new StringBuilder().append("Your ").append(productName).append(" has a shelf life of ")
            .append(shelfLife).append(" days. An alarm notifying you of its expiration ")
            .append("will be set for:\n").append(cMonth + 1).append("-") // Month is 0 based so add 1
            .append(cDay).append("-").append(cYear).append(" "));
}

From source file:osse.android.moldhold.calendarSetupActivity.java

License:Apache License

@Override
public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);

    // setContentLayout to validating... page or something??

    accountManager = new GoogleAccountManager(this);
    settings = getSharedPreferences(PREF, MODE_PRIVATE);

    // Try to get from preferences (will be empty at initial run)
    authToken = settings.getString("AUTH_TOKEN", null);
    gsessionid = settings.getString("GSESSION_ID", null);
    accountName = settings.getString("ACCOUNT_NAME", null);

    final MethodOverride override = new MethodOverride(); // needed for PATCH
    client = new CalendarClient(transport.createRequestFactory(new HttpRequestInitializer() {

        public void initialize(HttpRequest request) {
            Log.d(TAG, "in new CalendarClient - initialize()");
            GoogleHeaders headers = new GoogleHeaders();
            headers.setApplicationName("MoldHold/1.0");
            headers.gdataVersion = "2";
            request.headers = headers;/*from w  w  w  .ja va  2  s.c o  m*/
            client.initializeParser(request);
            request.interceptor = new HttpExecuteInterceptor() {

                public void intercept(HttpRequest request) throws IOException {
                    GoogleHeaders headers = (GoogleHeaders) request.headers;
                    headers.setGoogleLogin(authToken);
                    request.url.set("gsessionid", gsessionid);
                    override.intercept(request);
                }
            };
            // redefining unsuccessfulResponseHandler
            request.unsuccessfulResponseHandler = new HttpUnsuccessfulResponseHandler() {

                public boolean handleResponse(HttpRequest request, HttpResponse response,
                        boolean retrySupported) {

                    Log.d(TAG, "in new CalendarClient - handleResponse()");

                    switch (response.statusCode) {
                    case 302: // found
                        GoogleUrl url = new GoogleUrl(response.headers.location);
                        gsessionid = (String) url.getFirst("gsessionid");
                        SharedPreferences.Editor editor = settings.edit();
                        editor.putString("GSESSION_ID", gsessionid);
                        editor.commit();
                        return true;
                    case 401: // unauthorized -> bad authToken 
                        Log.d(TAG, "401 invalid token");

                        accountManager.invalidateAuthToken(authToken);
                        authToken = null;
                        SharedPreferences.Editor editor2 = settings.edit();
                        editor2.remove("AUTH_TOKEN");
                        editor2.commit();
                        return false;
                    }
                    return false; // any other status code
                }
            };
        } // end public void initialize
    })); // end new calendarClient

    Log.d(TAG, "calling gotAccount in onCreate()");
    gotAccount();
    Log.d(TAG, "calling executeRefreshCalendars in onCreate()");
    executeRefreshCalendars();

    Log.d(TAG, "checking if calendar exists...");
    if (!checkCalendarExists()) {
        Log.d(TAG, "creating new calendar...");
        createNewCalendar();
    }
    Log.d(TAG, "finishing...");
    Intent intent = this.getIntent();
    // put extras...
    this.setResult(RESULT_OK, intent);
    finish(); // return to mainActivity
}