Android Open Source - blekit-android Foursquare Checkin Activity






From Project

Back to project page blekit-android.

License

The source code is released under:

Copyright (C) 2014 Upnext Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software wi...

If you think the Android project blekit-android listed in this page is inappropriate, such as containing malicious code/tools or violating the copyright, please email info at java2s dot com, thanks.

Java Source Code

/*
 * Copyright (c) 2014 UP-NEXT. All rights reserved.
 * http://www.up-next.com//  w  w  w.j  a v a  2 s.co  m
 *
 * Permission is hereby granted, free of charge, to any person
 * obtaining a copy of this software and associated documentation
 * files (the "Software"), to deal in the Software without
 * restriction, including without limitation the rights to use,
 * copy, modify, merge, publish, distribute, sublicense, and/or sell
 * copies of the Software, and to permit persons to whom the
 * Software is furnished to do so, subject to the following
 * conditions:
 *
 * The above copyright notice and this permission notice shall be
 * included in all copies or substantial portions of the Software.
 *
 * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
 * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES
 * OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
 * NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT
 * HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
 * WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
 * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
 * OTHER DEALINGS IN THE SOFTWARE.
 */
package com.upnext.blekit.actions.foursquare;

import android.app.Activity;
import android.content.Intent;
import android.os.AsyncTask;
import android.os.Bundle;

import com.foursquare.android.nativeoauth.FoursquareOAuth;
import com.foursquare.android.nativeoauth.model.AccessTokenResponse;
import com.foursquare.android.nativeoauth.model.AuthCodeResponse;
import com.upnext.blekit.util.L;
import com.upnext.blekit.util.http.HttpClient;

import java.util.HashMap;
import java.util.Map;

/**
 * Helper Activity for Foursquare interaction.
 *
 * @author Roman Wozniak (roman@up-next.com)
 */
public class FoursquareCheckinActivity extends Activity {

    private static final int REQUEST_CODE_FSQ_CONNECT = 1;
    private static final int REQUEST_CODE_FSQ_TOKEN_EXCHANGE = 2;

    private FoursquareCheckinActionParams params;
    private String accessToken;

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

        if( getIntent()==null ) {
            finish();
            return;
        }

        params = getIntent().getParcelableExtra( "params" );
        if( params==null ) {
            finish();
            return;
        }

        Intent intent = FoursquareOAuth.getConnectIntent(this, params.client_id);
        boolean isPlay = FoursquareOAuth.isPlayStoreIntent(intent);
        L.d( "isPlay " + isPlay );
        startActivityForResult(intent, REQUEST_CODE_FSQ_CONNECT);
    }

    @Override
    protected void onActivityResult(int requestCode, int resultCode, Intent data) {

        switch (requestCode) {
            case REQUEST_CODE_FSQ_CONNECT:
                AuthCodeResponse codeResponse = FoursquareOAuth.getAuthCodeFromResult(resultCode, data);
                Intent intent = FoursquareOAuth.getTokenExchangeIntent(
                        this,
                        params.client_id,
                        params.secret_code,
                        codeResponse.getCode());
                startActivityForResult(intent, REQUEST_CODE_FSQ_TOKEN_EXCHANGE);
                break;

            case REQUEST_CODE_FSQ_TOKEN_EXCHANGE:
                AccessTokenResponse tokenResponse = FoursquareOAuth.getTokenFromResult(resultCode, data);
                L.d( "tokenResponse " + tokenResponse.getAccessToken() );
                if( tokenResponse.getException()==null && tokenResponse.getAccessToken()!=null ) {
                    checkin(tokenResponse.getAccessToken());
                }

                break;
        }
    }

    private void checkin(String accessToken) {
        this.accessToken = accessToken;
        CheckinAsyncTask task = new CheckinAsyncTask();
        task.execute();
    }

    private class CheckinAsyncTask extends AsyncTask<Void, Void, Void> {

        @Override
        protected Void doInBackground(Void... p) {
            HttpClient client = new HttpClient( "https://api.foursquare.com/v2/checkins/add" );
            Map<String, String> reqParams = new HashMap<String, String>();
            reqParams.put( "oauth_token", accessToken );
            reqParams.put( "venueId", params.venue_id );
            reqParams.put( "broadcast", params.broadcast );
            reqParams.put( "shout", params.message );
            client.post( Void.class, reqParams );

            return null;
        }

        @Override
        protected void onPostExecute(Void aVoid) {
            finish();
        }
    }
}




Java Source Code List

com.upnext.blekit.ActionsFactory.java
com.upnext.blekit.AverageIBeacon.java
com.upnext.blekit.BLEKitClient.java
com.upnext.blekit.BLEKitIntentProcessor.java
com.upnext.blekit.BLEKitService.java
com.upnext.blekit.BLEKit.java
com.upnext.blekit.BackgroundMode.java
com.upnext.blekit.BeaconEvent.java
com.upnext.blekit.ConditionsFactory.java
com.upnext.blekit.Config.java
com.upnext.blekit.EventOccurenceUnit.java
com.upnext.blekit.Proximity.java
com.upnext.blekit.StartupReceiver.java
com.upnext.blekit.actions.AlertActionParams.java
com.upnext.blekit.actions.AlertAction.java
com.upnext.blekit.actions.BLEAction.java
com.upnext.blekit.actions.BaseNotificationParams.java
com.upnext.blekit.actions.ContentActionParams.java
com.upnext.blekit.actions.ContentAction.java
com.upnext.blekit.actions.NotificationActionParams.java
com.upnext.blekit.actions.NotificationAction.java
com.upnext.blekit.actions.YelpActionParams.java
com.upnext.blekit.actions.YelpAction.java
com.upnext.blekit.actions.facebook.FacebookCheckinActionParams.java
com.upnext.blekit.actions.facebook.FacebookCheckinAction.java
com.upnext.blekit.actions.facebook.FacebookCheckinActivity.java
com.upnext.blekit.actions.foursquare.FoursquareCheckinActionParams.java
com.upnext.blekit.actions.foursquare.FoursquareCheckinAction.java
com.upnext.blekit.actions.foursquare.FoursquareCheckinActivity.java
com.upnext.blekit.conditions.BLECondition.java
com.upnext.blekit.conditions.CameFarCondition.java
com.upnext.blekit.conditions.CameImmediateCondition.java
com.upnext.blekit.conditions.CameNearCondition.java
com.upnext.blekit.conditions.EnterCondition.java
com.upnext.blekit.conditions.HttpOkCondition.java
com.upnext.blekit.conditions.HttpOkParams.java
com.upnext.blekit.conditions.LeaveCondition.java
com.upnext.blekit.conditions.OccurenceCondition.java
com.upnext.blekit.conditions.OccurenceParams.java
com.upnext.blekit.conditions.StaysCondition.java
com.upnext.blekit.conditions.StaysParams.java
com.upnext.blekit.listeners.BLEKitStateListener.java
com.upnext.blekit.listeners.BeaconEventListener.java
com.upnext.blekit.listeners.ZoneUpdateListener.java
com.upnext.blekit.model.Action.java
com.upnext.blekit.model.Beacon.java
com.upnext.blekit.model.Condition.java
com.upnext.blekit.model.CurrentBeaconProximity.java
com.upnext.blekit.model.Location.java
com.upnext.blekit.model.Trigger.java
com.upnext.blekit.model.Zone.java
com.upnext.blekit.receiver.LoggingReceiver.java
com.upnext.blekit.util.BeaconPreferences.java
com.upnext.blekit.util.BeaconsDB.java
com.upnext.blekit.util.ExpressionEvaluator.java
com.upnext.blekit.util.JsonParser.java
com.upnext.blekit.util.L.java
com.upnext.blekit.util.Rand.java
com.upnext.blekit.util.http.Error.java
com.upnext.blekit.util.http.HttpClient.java
com.upnext.blekit.util.http.HttpUtils.java
com.upnext.blekit.util.http.Response.java