package com.samsunghack.apps.android.utils;
import android.content.Context;
import android.net.Uri;
import android.os.Bundle;
import android.util.Log;
import android.view.View;
import com.google.android.gms.common.ConnectionResult;
import com.google.android.gms.common.GooglePlayServicesClient.ConnectionCallbacks;
import com.google.android.gms.common.GooglePlayServicesClient.OnConnectionFailedListener;
import com.google.android.gms.plus.GooglePlusUtil;
import com.google.android.gms.plus.PlusClient;
import com.google.android.gms.plus.PlusOneButton;
public class GPlusUtils implements ConnectionCallbacks, OnConnectionFailedListener {
private final static String TAG="GPlusUtils";
PlusClient mPlusClient = null;
PlusOneButton mPlusOneButton;
Uri mAppUri = null;
// The request code must be 0 or higher.
private static final int PLUS_ONE_REQUEST_CODE = 0;
public PlusClient setupGooglePlusButton(Context context, PlusOneButton plusOneButton,Uri appUri) {
if((plusOneButton!=null) && (context!=null)) {
int plusAppStatus = GooglePlusUtil.checkGooglePlusApp(context);
mPlusOneButton = plusOneButton;
mAppUri = appUri;
switch (plusAppStatus) {
case GooglePlusUtil.SUCCESS:
Log.d(TAG,"Google+ Status: SUCCESS");
mPlusClient = new PlusClient.Builder(context, this,this)
.clearScopes()
.build();
break;
case GooglePlusUtil.APP_MISSING:
Log.d(TAG,"Google+ Status: APP_MISSING");
plusOneButton.setVisibility(View.GONE);
break;
case GooglePlusUtil.APP_UPDATE_REQUIRED:
Log.d(TAG,"Google+ Status: APP_UPDATE_REQUIRED");
plusOneButton.setVisibility(View.GONE);
break;
case GooglePlusUtil.APP_DISABLED:
Log.d(TAG,"Google+ Status: APP_DISABLED");
plusOneButton.setVisibility(View.GONE);
break;
default:
plusOneButton.setVisibility(View.GONE);
break;
}
}
return mPlusClient;
}
public void connectPlusClient() {
if(mPlusClient!=null) mPlusClient.connect();
}
public void disconnectPlusClient() {
if(mPlusClient!=null) mPlusClient.disconnect();
}
public void initPlusOneButton() {
if(mPlusOneButton!=null && (mPlusClient!=null)) {
mPlusOneButton.initialize(mPlusClient, mAppUri.toString(), PLUS_ONE_REQUEST_CODE);
}
}
public PlusClient getPlusClient() {
return mPlusClient;
}
@Override
public void onConnectionFailed(ConnectionResult arg0) {
Log.d(TAG,"Google Plus connection failed");
}
@Override
public void onDisconnected() {
Log.d(TAG,"Google Plus disconnected");
}
@Override
public void onConnected(Bundle arg0) {
Log.d(TAG,"Google Plus connection succeeded");
}
}