package com.example.khaalijeb.newlistview_module;
import android.content.BroadcastReceiver; import android.content.ComponentName; import android.content.Context; import android.content.Intent; import android.content.IntentFilter; import android.content.SharedPreferences; import android.content.pm.PackageInfo; import android.content.pm.PackageManager; import android.content.pm.Signature; import android.location.Address; import android.location.Geocoder; import android.net.Uri; import android.os.Bundle; import android.support.annotation.Nullable; import android.support.design.widget.NavigationView; import android.support.design.widget.TabLayout; import android.support.v4.app.Fragment; import android.support.v4.app.FragmentManager; import android.support.v4.app.FragmentPagerAdapter; import android.support.v4.view.ViewPager; import android.support.v4.widget.DrawerLayout; import android.support.v7.app.ActionBarDrawerToggle; import android.support.v7.app.AppCompatActivity; import android.support.v7.widget.Toolbar; import android.util.Base64; import android.util.Log; import android.view.LayoutInflater; import android.view.Menu; import android.view.MenuItem; import android.view.View; import android.view.WindowManager; import android.widget.Button; import android.widget.ImageView; import android.widget.TextView; import android.widget.Toast;
import com.facebook.AccessToken; import com.facebook.AccessTokenTracker; import com.facebook.CallbackManager; import com.facebook.FacebookCallback; import com.facebook.FacebookException; import com.facebook.FacebookSdk; import com.facebook.GraphRequest; import com.facebook.GraphResponse; import com.facebook.ProfileTracker; import com.facebook.login.LoginResult; import com.facebook.login.widget.LoginButton; import com.facebook.share.model.ShareLinkContent; import com.facebook.share.widget.ShareDialog; import com.google.android.gms.auth.api.Auth; import com.google.android.gms.auth.api.signin.GoogleSignInAccount; import com.google.android.gms.auth.api.signin.GoogleSignInOptions; import com.google.android.gms.auth.api.signin.GoogleSignInResult; import com.google.android.gms.common.ConnectionResult; import com.google.android.gms.common.Scopes; import com.google.android.gms.common.SignInButton; 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 com.google.android.gms.plus.Plus; import com.google.android.gms.plus.PlusShare; import com.google.android.gms.plus.model.people.Person; import com.squareup.okhttp.OkHttpClient;
import org.json.JSONException; import org.json.JSONObject;
import java.io.IOException; import java.security.MessageDigest; import java.security.NoSuchAlgorithmException; import java.util.ArrayList; import java.util.List;
import models.success_message; import retrofit.Callback; import retrofit.RestAdapter; import retrofit.RetrofitError; import retrofit.client.OkClient; import retrofit.client.Response;
public class MainActivity extends AppCompatActivity implements GoogleApiClient.ConnectionCallbacks, GoogleApiClient.OnConnectionFailedListener, Notifications.MyNotificationsListener, Brandship.MyBrandshipListener {
private static final int RC_SIGN_IN = 9001;
@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
super.onActivityResult(requestCode, resultCode, data);
// Result returned from launching the Intent from GoogleSignInApi.getSignInIntent(...);
Log.d("api", "onactivityresult requestcode: " + requestCode);
if (requestCode == RC_SIGN_IN) {
Log.d("api", "google onactivityresult");
GoogleSignInResult result = Auth.GoogleSignInApi.getSignInResultFromIntent(data);
handleSignInResult(result);
} else {
Log.d("api", "facebook onactivityresult" + "requestcode: " + requestCode);
mCallbackmanager.onActivityResult(requestCode, resultCode, data)
;
}
}
private void handleSignInResult(GoogleSignInResult result) {
Log.d("google", "handleSignInResult:" + result.isSuccess());
if (result.isSuccess()) {
// Signed in successfully, show authenticated UI.
GoogleSignInAccount acct = result.getSignInAccount();
if (acct != null) {
Toast.makeText(getBaseContext(), "Google Sign In Welcome " + acct.getDisplayName() + acct.getGrantedScopes() + acct.getEmail() + acct.getPhotoUrl() + acct.getId(), Toast.LENGTH_LONG).show();
Log.d("api", "Google Sign In Welcome " + acct.getDisplayName() + acct.getGrantedScopes() + acct.getEmail() + acct.getPhotoUrl() + acct.getId());
}
Log.d("api", "Google Sign In Welcome " + acct.toString() + acct.describeContents() + acct.getGrantedScopes() + acct.getEmail() + acct.getPhotoUrl() + acct.getId());
if (Plus.PeopleApi.getCurrentPerson(mGoogleApiClient) != null) {
Log.d("api", "true");
Toast.makeText(getBaseContext(), "true", Toast.LENGTH_LONG).show();
Person currentPerson = Plus.PeopleApi.getCurrentPerson(mGoogleApiClient);
String personName = currentPerson.getDisplayName();
String personGooglePlusProfile = currentPerson.getUrl();
int persongender = currentPerson.getGender();
String personbirthday = currentPerson.getBirthday();
Log.d("api", "connected" + "gender: " + persongender + " birthday: " + personbirthday);
} else {
Toast.makeText(getBaseContext(), "false", Toast.LENGTH_LONG).show();
Log.d("api", "false");
}
//
} else {
}
}
GoogleApiClient mGoogleApiClient;
@Override
public void onConnectionFailed(ConnectionResult connectionResult) {
// An unresolvable error has occurred and Google APIs (including Sign-In) will not
// be available.
Log.d("google", "onConnectionFailed:" + connectionResult);
}
private void signIn() {
Intent signInIntent = Auth.GoogleSignInApi.getSignInIntent(mGoogleApiClient);
startActivityForResult(signInIntent, RC_SIGN_IN);
}
private void signOut() {
Auth.GoogleSignInApi.signOut(mGoogleApiClient).setResultCallback(
new ResultCallback<Status>() {
@Override
public void onResult(Status status) {
}
});
}
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
GoogleSignInOptions gso = new GoogleSignInOptions.Builder(GoogleSignInOptions.DEFAULT_SIGN_IN)
.requestScopes(new Scope(Scopes.PLUS_LOGIN))
.requestEmail()
.build();
mGoogleApiClient = new GoogleApiClient.Builder(this)
.addConnectionCallbacks(this)
.addOnConnectionFailedListener(this)
.addApi(Plus.API)
.addScope(Plus.SCOPE_PLUS_LOGIN)
.addScope(Plus.SCOPE_PLUS_PROFILE)
.build();
mGoogleApiClient = new GoogleApiClient.Builder(this)
.enableAutoManage(this, this)
.addApi(Auth.GOOGLE_SIGN_IN_API, gso)
.addApi(Plus.API)
.build();
SignInButton signInButton = (SignInButton) findViewById(R.id.sign_in_button);
signInButton.setSize(SignInButton.SIZE_STANDARD);
signInButton.setScopes(gso.getScopeArray());
signInButton.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
signIn();
}
});
Button google_logout = (Button) findViewById(R.id.google_signout);
google_logout.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
signOut();
}
});
//
}
@Override
public void onConnected(Bundle bundle) {
Log.d("api", "google connected");
//
if (Plus.PeopleApi.getCurrentPerson(mGoogleApiClient) != null) {
Person currentPerson = Plus.PeopleApi.getCurrentPerson(mGoogleApiClient);
String personName = currentPerson.getDisplayName();
String personGooglePlusProfile = currentPerson.getUrl();
int persongender = currentPerson.getGender();
String personbirthday = currentPerson.getBirthday();
Log.d("api", "connected" + "gender: " + persongender + " birthday: " + personbirthday);
}
//
}
@Override
public void onConnectionSuspended(int i) {
Log.d("api", "google connection suspended");
}
}