Here are the examples of the java api com.facebook.AccessToken taken from open source projects. By voting up you can indicate which examples are most useful and appropriate.
67 Examples
19
Source : SessionManager.java
with Apache License 2.0
from WassimBenltaief
with Apache License 2.0
from WassimBenltaief
/**
* Check if user is loggedIn
* @return true id accessToken is not expired, false otherwise.
*/
public boolean isLoggedIn() {
AccessToken accessToken = getAccessToken();
return accessToken != null && !accessToken.isExpired();
}
19
Source : LoginActivity.java
with Apache License 2.0
from OmarAliSaid
with Apache License 2.0
from OmarAliSaid
// [START auth_with_facebook]
private void handleFacebookAccessToken(AccessToken token) {
Log.d(TAG, "handleFacebookAccessToken:" + token);
AuthCredential credential = FacebookAuthProvider.getCredential(token.getToken());
mAuth.signInWithCredential(credential).addOnCompleteListener(this, new OnCompleteListener<AuthResult>() {
@Override
public void onComplete(@NonNull Task<AuthResult> task) {
if (task.isSuccessful()) {
// Sign in success, update UI with the signed-in user's information
Log.d(TAG, "signInWithCredential:success");
updateUI(mAuth.getCurrentUser());
} else {
// If sign in fails, display a message to the user.
Log.w(TAG, "signInWithCredential:failure", task.getException());
Toast.makeText(LoginActivity.this, "Authentication failed.", Toast.LENGTH_SHORT).show();
}
}
});
}
19
Source : FacebookToken.java
with Apache License 2.0
from NFLeo
with Apache License 2.0
from NFLeo
public clreplaced FacebookToken extends BaseToken {
private String userId;
private String applicationId;
private Date lastRefresh;
private Date dataAccessExpirationTime;
private AccessToken mAccessToken;
public FacebookToken(AccessToken token) {
setAccessTokenBean(token);
setAccessToken(token.getToken());
setOpenid(token.getUserId());
setUserId(token.getUserId());
setApplicationId(token.getApplicationId());
setLastRefresh(token.getLastRefresh());
}
public String getUserId() {
return userId;
}
public void setUserId(String userId) {
this.userId = userId;
}
public String getApplicationId() {
return applicationId;
}
public void setApplicationId(String applicationId) {
this.applicationId = applicationId;
}
public Date getLastRefresh() {
return lastRefresh;
}
public void setLastRefresh(Date lastRefresh) {
this.lastRefresh = lastRefresh;
}
public Date getDataAccessExpirationTime() {
return dataAccessExpirationTime;
}
public void setDataAccessExpirationTime(Date dataAccessExpirationTime) {
this.dataAccessExpirationTime = dataAccessExpirationTime;
}
public AccessToken getAccessTokenBean() {
return mAccessToken;
}
public void setAccessTokenBean(AccessToken accessToken) {
mAccessToken = accessToken;
}
@Override
public String toString() {
return "FaceBookToken{" + "userId='" + userId + '\'' + ", applicationId='" + applicationId + '\'' + ", lastRefresh=" + lastRefresh + ", dataAccessExpirationTime=" + dataAccessExpirationTime + '}';
}
}
19
Source : FacebookToken.java
with Apache License 2.0
from NFLeo
with Apache License 2.0
from NFLeo
public void setAccessTokenBean(AccessToken accessToken) {
mAccessToken = accessToken;
}
19
Source : FacebookSignupProvider.java
with Apache License 2.0
from moldedbits
with Apache License 2.0
from moldedbits
@Override
public void onSuccess(AccessToken token) {
super.onSuccess(token);
}
19
Source : FacebookOnBoardingProvider.java
with Apache License 2.0
from moldedbits
with Apache License 2.0
from moldedbits
@Override
public void onSuccess(AccessToken token) {
if (resultListener != null) {
resultListener.onSuccess(ArgusState.SIGNED_IN);
}
}
19
Source : FacebookNetwork.java
with MIT License
from maksim88
with MIT License
from maksim88
@Override
public com.maksim88.easylogin.AccessToken getAccessToken() {
if (com.facebook.AccessToken.getCurrentAccessToken() != null && accessToken == null) {
AccessToken facebookToken = AccessToken.getCurrentAccessToken();
accessToken = new com.maksim88.easylogin.AccessToken.Builder(facebookToken.getToken()).userId(facebookToken.getUserId()).build();
}
return accessToken;
}
19
Source : FirebaseHelper.java
with MIT License
from IramML
with MIT License
from IramML
public void registerByFacebookAccount() {
AccessToken accessToken = AccessToken.getCurrentAccessToken();
GraphRequest request = GraphRequest.newMeRequest(accessToken, new GraphRequest.GraphJSONObjectCallback() {
@Override
public void onCompleted(JSONObject object, GraphResponse response) {
final String name = object.optString("name");
final String id = object.optString("id");
final String email = object.optString("email");
final User user = new User();
users.addValueEventListener(new ValueEventListener() {
@Override
public void onDataChange(@NonNull DataSnapshot dataSnapshot) {
User post = dataSnapshot.child(id).getValue(User.clreplaced);
if (post == null)
showRegisterPhone(user, id, name, email);
else
loginSuccess();
}
@Override
public void onCancelled(@NonNull DatabaseError databaseError) {
}
});
}
});
request.executeAsync();
}
19
Source : FacebookLoginActivity.java
with Apache License 2.0
from firebase
with Apache License 2.0
from firebase
// [END on_activity_result]
// [START auth_with_facebook]
private void handleFacebookAccessToken(AccessToken token) {
Log.d(TAG, "handleFacebookAccessToken:" + token);
AuthCredential credential = FacebookAuthProvider.getCredential(token.getToken());
mAuth.signInWithCredential(credential).addOnCompleteListener(this, new OnCompleteListener<AuthResult>() {
@Override
public void onComplete(@NonNull Task<AuthResult> task) {
if (task.isSuccessful()) {
// Sign in success, update UI with the signed-in user's information
Log.d(TAG, "signInWithCredential:success");
FirebaseUser user = mAuth.getCurrentUser();
updateUI(user);
} else {
// If sign in fails, display a message to the user.
Log.w(TAG, "signInWithCredential:failure", task.getException());
Toast.makeText(FacebookLoginActivity.this, "Authentication failed.", Toast.LENGTH_SHORT).show();
updateUI(null);
}
}
});
}
19
Source : LoginResult.java
with Apache License 2.0
from eviltnan
with Apache License 2.0
from eviltnan
/**
* This clreplaced shows the results of a login operation.
*/
public clreplaced LoginResult {
private final AccessToken accessToken;
private final Set<String> recentlyGrantedPermissions;
private final Set<String> recentlyDeniedPermissions;
/**
* The constructor.
*
* @param accessToken The new access token.
* @param recentlyGrantedPermissions The recently granted permissions.
* @param recentlyDeniedPermissions The recently denied permissions.
*/
public LoginResult(AccessToken accessToken, Set<String> recentlyGrantedPermissions, Set<String> recentlyDeniedPermissions) {
this.accessToken = accessToken;
this.recentlyGrantedPermissions = recentlyGrantedPermissions;
this.recentlyDeniedPermissions = recentlyDeniedPermissions;
}
/**
* Getter for the new access token.
* @return the new access token.
*/
public AccessToken getAccessToken() {
return accessToken;
}
/**
* Getter for the recently granted permissions.
* @return the recently granted permissions.
*/
public Set<String> getRecentlyGrantedPermissions() {
return recentlyGrantedPermissions;
}
/**
* Getter for the recently denied permissions.
* @return the recently denied permissions.
*/
public Set<String> getRecentlyDeniedPermissions() {
return recentlyDeniedPermissions;
}
}
19
Source : LoginManager.java
with Apache License 2.0
from eviltnan
with Apache License 2.0
from eviltnan
static LoginResult computeLoginResult(final LoginClient.Request request, final AccessToken newToken) {
Set<String> requestedPermissions = request.getPermissions();
Set<String> grantedPermissions = new HashSet<String>(newToken.getPermissions());
// If it's a reauth, subset the granted permissions to just the requested permissions
// so we don't report implicit permissions like user_profile as recently granted.
if (request.isRerequest()) {
grantedPermissions.retainAll(requestedPermissions);
}
Set<String> deniedPermissions = new HashSet<String>(requestedPermissions);
deniedPermissions.removeAll(grantedPermissions);
return new LoginResult(newToken, grantedPermissions, deniedPermissions);
}
19
Source : LoginClient.java
with Apache License 2.0
from eviltnan
with Apache License 2.0
from eviltnan
private static AccessToken createFromTokenWithRefreshedPermissions(AccessToken token, Collection<String> grantedPermissions, Collection<String> declinedPermissions) {
return new AccessToken(token.getToken(), token.getApplicationId(), token.getUserId(), grantedPermissions, declinedPermissions, token.getSource(), token.getExpires(), token.getLastRefresh());
}
19
Source : LoginClient.java
with Apache License 2.0
from eviltnan
with Apache License 2.0
from eviltnan
void validateSameFbidAndFinish(Result pendingResult) {
if (pendingResult.token == null) {
throw new FacebookException("Can't validate without a token");
}
AccessToken previousToken = AccessToken.getCurrentAccessToken();
AccessToken newToken = pendingResult.token;
try {
Result result = null;
if (previousToken != null && newToken != null && previousToken.getUserId().equals(newToken.getUserId())) {
result = Result.createTokenResult(pendingRequest, pendingResult.token);
} else {
result = Result.createErrorResult(pendingRequest, "User logged in as different Facebook user.", null);
}
complete(result);
} catch (Exception ex) {
complete(Result.createErrorResult(pendingRequest, "Caught exception", ex.getMessage()));
}
}
19
Source : LoginPresenter.java
with Apache License 2.0
from derohimat
with Apache License 2.0
from derohimat
void handleFacebookAccessToken(AccessToken token) {
mView.showProgress();
Timber.d("handleFacebookAccessToken:" + token);
AuthCredential credential = FacebookAuthProvider.getCredential(token.getToken());
mAuth.signInWithCredential(credential).addOnCompleteListener((Activity) mContext, task -> {
mView.hideProgress();
Timber.d("signInWithCredential:onComplete:" + task.isSuccessful());
if (!task.isSuccessful()) {
Timber.w("signInWithFbCredential", task.getException());
mEventBus.post(new LoginEvent(false, "Fb Auth Failed : " + task.getException().getMessage()));
} else {
Timber.w("signInWithFbCredential", "success with email " + task.getResult().getUser().getEmail());
mEventBus.post(new LoginEvent(true, "Fb Auth Success"));
}
});
}
19
Source : FacebookProviderHandler.java
with MIT License
from baumblatt
with MIT License
from baumblatt
@Override
public boolean isAuthenticated() {
AccessToken accessToken = AccessToken.getCurrentAccessToken();
return accessToken != null && !accessToken.isExpired();
}
19
Source : FacebookProviderHandler.java
with MIT License
from baumblatt
with MIT License
from baumblatt
private void handleFacebookAccessToken(AccessToken token) {
AuthCredential credential = FacebookAuthProvider.getCredential(token.getToken());
this.plugin.handleAuthCredentials(credential);
}
19
Source : FacebookProviderHandler.java
with MIT License
from baumblatt
with MIT License
from baumblatt
@Override
public void fillResult(AuthCredential credential, JSObject jsResult) {
AccessToken accessToken = AccessToken.getCurrentAccessToken();
if (accessToken != null && !accessToken.isExpired()) {
jsResult.put("idToken", accessToken.getToken());
}
}
19
Source : FacebookSdkWrapper.java
with Apache License 2.0
from AnywhereSoftware
with Apache License 2.0
from AnywhereSoftware
private void handleFacebookAccessToken(AccessToken token) {
AuthCredential credential = FacebookAuthProvider.getCredential(token.getToken());
BA.Log("signInWithCredential start");
auth.signInWithCredential(credential).addOnCompleteListener(new OnCompleteListener<AuthResult>() {
@Override
public void onComplete(Task<AuthResult> arg0) {
BA.Log("signInWithCredential complete: " + arg0.isSuccessful());
if (arg0.isSuccessful() == false)
BA.Log("error: " + arg0.getException());
}
});
}
19
Source : MainActivity.java
with GNU General Public License v3.0
from anshulkhattar
with GNU General Public License v3.0
from anshulkhattar
private void handleFacebookAccessToken(AccessToken token) {
Log.d(TAG, "handleFacebookAccessToken:" + token);
AuthCredential credential = FacebookAuthProvider.getCredential(token.getToken());
// sign with credential which create from firebase auth
mAuth.signInWithCredential(credential).addOnCompleteListener(this, new OnCompleteListener<AuthResult>() {
@Override
public void onComplete(@NonNull Task<AuthResult> task) {
if (task.isSuccessful()) {
// Sign in success, update UI with the signed-in user's information
Log.d(TAG, "signInWithCredential:success");
FirebaseUser user = mAuth.getCurrentUser();
btnFacebook.setEnabled(true);
updateUI(user);
} else {
// If sign in fails, display a message to the user.
Log.w(TAG, "signInWithCredential:failure", task.getException());
Toast.makeText(MainActivity.this, "Authentication failed.", Toast.LENGTH_SHORT).show();
btnFacebook.setEnabled(true);
updateUI(null);
}
// ...
}
});
}
18
Source : RequestAction.java
with Apache License 2.0
from WassimBenltaief
with Apache License 2.0
from WassimBenltaief
protected void execute() {
if (sessionManager.isLoggedIn()) {
AccessToken accessToken = sessionManager.getAccessToken();
Bundle bundle = updateAppSecretProof();
GraphRequest request = new GraphRequest(accessToken, getGraphPath(), bundle, HttpMethod.GET);
request.setVersion(configuration.getGraphVersion());
runRequest(request);
} else {
String reason = Errors.getError(Errors.ErrorMsg.LOGIN);
Logger.logError(getClreplaced(), reason, null);
if (mSingleEmitter != null) {
mSingleEmitter.onError(new FacebookAuthorizationException(reason));
}
}
}
18
Source : LoginActivity.java
with MIT License
from vishalroygeek
with MIT License
from vishalroygeek
private void handleFacebookAccessToken(AccessToken token) {
AuthCredential credential = FacebookAuthProvider.getCredential(token.getToken());
mAuth.signInWithCredential(credential).addOnCompleteListener(this, new OnCompleteListener<AuthResult>() {
@Override
public void onComplete(@NonNull Task<AuthResult> task) {
if (task.isSuccessful()) {
saveUserDetails(mAuth.getCurrentUser().getDisplayName(), mAuth.getCurrentUser().getPhotoUrl().toString());
} else {
if (task.getException().toString().contains("already exists with the same email address")) {
buttonsState(true);
Toast.makeText(LoginActivity.this, "Account with same Facebook email already exists !", Toast.LENGTH_LONG).show();
} else {
buttonsState(true);
Toast.makeText(LoginActivity.this, "Unable to Login !", Toast.LENGTH_LONG).show();
}
}
}
});
}
18
Source : SignInActivity.java
with GNU General Public License v3.0
from TudorCretu
with GNU General Public License v3.0
from TudorCretu
public clreplaced SignInActivity extends BaseActivity implements GoogleApiClient.OnConnectionFailedListener, View.OnClickListener {
public FirebaseAuth mAuth;
public FirebaseUser mUser;
public FirebaseAuth.AuthStateListener mAuthListener;
private static final int RC_SIGN_IN = 9001;
private GoogleApiClient mGoogleApiClient;
private static final String TAG = "TAG";
private TwitterLoginButton mLoginButton;
private CallbackManager mCallbackManager;
private static final String Facebook_TAG = "FacebookActivity";
public AccessToken mAccessToken;
public Intent goMain;
@Override
public void onBackPressed() {
// disable going back to the MainActivity
moveTaskToBack(true);
}
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
goMain = new Intent(this, MainActivity.clreplaced);
// Configure Twitter SDK
TwitterAuthConfig authConfig = new TwitterAuthConfig(getString(R.string.twitter_consumer_key), getString(R.string.twitter_consumer_secret));
Fabric.with(this, new Twitter(authConfig));
setContentView(R.layout.activity_signin);
mAuth = FirebaseAuth.getInstance();
setGooglePlusButtonText((SignInButton) findViewById(R.id.google_login_button), "Log in with Google");
// Button listeners
findViewById(R.id.google_login_button).setOnClickListener(this);
// [START config_signin]
// Configure Google Sign In
GoogleSignInOptions gso = new GoogleSignInOptions.Builder(GoogleSignInOptions.DEFAULT_SIGN_IN).requestIdToken(getString(R.string.default_web_client_id)).requestEmail().requestProfile().build();
// [END config_signin]
mGoogleApiClient = new GoogleApiClient.Builder(this).enableAutoManage(this, /* FragmentActivity */
this).addApi(Auth.GOOGLE_SIGN_IN_API, gso).build();
// [START initialize_twitter_login]
mLoginButton = (TwitterLoginButton) findViewById(R.id.twitter_login_button);
mLoginButton.setCallback(new Callback<TwitterSession>() {
@Override
public void success(Result<TwitterSession> result) {
Log.d(TAG, "twitterLogin:success" + result);
handleTwitterSession(result.data);
}
@Override
public void failure(TwitterException exception) {
Log.w(TAG, "twitterLogin:failure", exception);
}
});
// [END initialize_twitter_login]
mCallbackManager = CallbackManager.Factory.create();
LoginButton loginButton = (LoginButton) findViewById(R.id.facebook_login_button);
loginButton.setReadPermissions("email", "public_profile");
loginButton.registerCallback(mCallbackManager, new FacebookCallback<LoginResult>() {
@Override
public void onSuccess(LoginResult loginResult) {
mAuth = FirebaseAuth.getInstance();
Log.w(Facebook_TAG, "mAuth is:" + mAuth);
mUser = mAuth.getCurrentUser();
Log.w(Facebook_TAG, "mUser is:" + mUser);
mAccessToken = loginResult.getAccessToken();
Log.w(Facebook_TAG, "AccessToken is:" + mAccessToken);
Log.w(Facebook_TAG, " loginResult is:" + loginResult);
Log.w(Facebook_TAG, "Here is the handle Facebook Access token");
handleFacebookAccessToken(loginResult.getAccessToken());
}
@Override
public void onCancel() {
Log.w(Facebook_TAG, "here is onCancer");
}
@Override
public void onError(FacebookException error) {
Log.w(Facebook_TAG, "Here is onError");
}
});
LoginManager.getInstance().registerCallback(mCallbackManager, new FacebookCallback<LoginResult>() {
@Override
public void onSuccess(LoginResult loginResult) {
Log.w(Facebook_TAG, "Here is onSuccess in login manager");
mAuth = FirebaseAuth.getInstance();
Log.w(Facebook_TAG, "mAuth is:" + mAuth);
mUser = mAuth.getCurrentUser();
Log.w(Facebook_TAG, "mUser is:" + mUser);
mAccessToken = loginResult.getAccessToken();
Log.w(Facebook_TAG, "AccessToken is:" + mAccessToken);
Log.w(Facebook_TAG, " loginResult is:" + loginResult);
Log.w(Facebook_TAG, "Here is the handle Facebook Access token");
handleFacebookAccessToken(loginResult.getAccessToken());
}
@Override
public void onCancel() {
Log.w(Facebook_TAG, "Here is oncancer in login manager");
}
@Override
public void onError(FacebookException exception) {
Log.w(Facebook_TAG, "Here is onerror in login manager");
}
});
}
// [START on_start_check_user]
@Override
public void onStart() {
super.onStart();
// Check if user is signed in (non-null) and update UI accordingly.
mUser = mAuth.getCurrentUser();
mAuthListener = new FirebaseAuth.AuthStateListener() {
@Override
public void onAuthStateChanged(@NonNull FirebaseAuth mAuth) {
mUser = mAuth.getCurrentUser();
if (mUser != null) {
startActivity(goMain);
} else {
}
}
};
mAuth.addAuthStateListener(mAuthListener);
}
// [END on_start_check_user]
@Override
public void onResume() {
super.onResume();
mUser = mAuth.getCurrentUser();
if (mUser != null) {
startActivity(goMain);
}
}
// [END onactivityresult]
// [START auth_with_google]
private void firebaseAuthWithGoogle(GoogleSignInAccount acct) {
Log.d(TAG, "firebaseAuthWithGoogle:" + acct.getId());
// [START_EXCLUDE silent]
showProgressDialog();
// [END_EXCLUDE]
AuthCredential credential = GoogleAuthProvider.getCredential(acct.getIdToken(), null);
mAuth.signInWithCredential(credential).addOnCompleteListener(this, new OnCompleteListener<AuthResult>() {
@Override
public void onComplete(@NonNull Task<AuthResult> task) {
if (task.isSuccessful()) {
// Sign in success, update UI with the signed-in user's information
Log.d(TAG, "signInWithCredential:success");
mUser = mAuth.getCurrentUser();
} else {
// If sign in fails, display a message to the user.
Log.w(TAG, "signInWithCredential:failure", task.getException());
Toast.makeText(SignInActivity.this, "Authentication failed.", Toast.LENGTH_SHORT).show();
}
// [START_EXCLUDE]
hideProgressDialog();
// [END_EXCLUDE]
}
});
}
// [END auth_with_google]
// [START signin]
private void signIn() {
Intent signInIntent = Auth.GoogleSignInApi.getSignInIntent(mGoogleApiClient);
startActivityForResult(signInIntent, RC_SIGN_IN);
}
// [END signin]
@Override
public void onConnectionFailed(@NonNull ConnectionResult connectionResult) {
// An unresolvable error has occurred and Google APIs (including Sign-In) will not
// be available.
Log.d(TAG, "onConnectionFailed:" + connectionResult);
Toast.makeText(this, "Google Play Services error.", Toast.LENGTH_SHORT).show();
}
@Override
public void onClick(View v) {
int i = v.getId();
if (i == R.id.google_login_button) {
signIn();
} else if (i == R.id.EmailPreplacedword_login_button) {
startActivity(new Intent(SignInActivity.this, EmailPreplacedwordActivity.clreplaced));
}
}
// End google
// Start Twitter
// [START auth_with_twitter]
private void handleTwitterSession(TwitterSession session) {
Log.d(TAG, "handleTwitterSession:" + session);
// [START_EXCLUDE silent]
showProgressDialog();
// [END_EXCLUDE]
AuthCredential credential = TwitterAuthProvider.getCredential(session.getAuthToken().token, session.getAuthToken().secret);
mAuth.signInWithCredential(credential).addOnCompleteListener(this, new OnCompleteListener<AuthResult>() {
@Override
public void onComplete(@NonNull Task<AuthResult> task) {
if (task.isSuccessful()) {
// Sign in success, update UI with the signed-in user's information
Log.d(TAG, "signInWithCredential:success");
FirebaseUser user = mAuth.getCurrentUser();
} else {
// If sign in fails, display a message to the user.
Log.w(TAG, "signInWithCredential:failure", task.getException());
Toast.makeText(SignInActivity.this, "Authentication failed.", Toast.LENGTH_SHORT).show();
}
// [START_EXCLUDE]
hideProgressDialog();
// [END_EXCLUDE]
}
});
}
// [END auth_with_twitter]
// End Twitter
// Start Facebook
private void handleFacebookAccessToken(AccessToken token) {
Log.d(Facebook_TAG, "handleFacebookAccessToken:" + token);
AuthCredential credential = FacebookAuthProvider.getCredential(token.getToken());
mAuth.signInWithCredential(credential).addOnCompleteListener(this, new OnCompleteListener<AuthResult>() {
@Override
public void onComplete(@NonNull Task<AuthResult> task) {
if (task.isSuccessful()) {
// Sign in success, update UI with the signed-in user's information
Log.w(Facebook_TAG, "signInWithCredential:success");
mUser = mAuth.getCurrentUser();
} else {
// If sign in fails, display a message to the user.
Log.w(Facebook_TAG, "signInWithCredential:failure", task.getException());
Toast.makeText(SignInActivity.this, "Authentication failed.", Toast.LENGTH_SHORT).show();
}
}
});
}
// End Facebook
// [START onactivityresult]
@Override
public void onActivityResult(int requestCode, int resultCode, Intent data) {
super.onActivityResult(requestCode, resultCode, data);
// Result returned from launching the Intent from GoogleSignInApi.getSignInIntent(...);
if (requestCode == RC_SIGN_IN) {
GoogleSignInResult result = Auth.GoogleSignInApi.getSignInResultFromIntent(data);
if (result.isSuccess()) {
// Google Sign In was successful, authenticate with Firebase
GoogleSignInAccount account = result.getSignInAccount();
firebaseAuthWithGoogle(account);
} else {
// Google Sign In failed, update UI appropriately
// [START_EXCLUDE]
// [END_EXCLUDE]
}
} else if (requestCode == TwitterAuthConfig.DEFAULT_AUTH_REQUEST_CODE) {
mLoginButton.onActivityResult(requestCode, resultCode, data);
} else if (requestCode == CallbackManagerImpl.RequestCodeOffset.Login.toRequestCode()) {
Log.w(Facebook_TAG, "Here it is the callbackManager");
// Preplaced the activity result back to the Facebook SDK
mCallbackManager.onActivityResult(requestCode, resultCode, data);
}
}
protected void setGooglePlusButtonText(SignInButton signInButton, String buttonText) {
// Find the TextView that is inside of the SignInButton and set its text
for (int i = 0; i < signInButton.getChildCount(); i++) {
View v = signInButton.getChildAt(i);
if (v instanceof TextView) {
TextView tv = (TextView) v;
tv.setText(buttonText);
tv.setTextSize(18);
return;
}
}
}
@Override
protected void onPostCreate(Bundle savedInstanceState) {
super.onPostCreate(savedInstanceState);
LoginButton loginButton = (LoginButton) findViewById(R.id.facebook_login_button);
float fbIconScale = 1.55F;
Drawable drawable = getResources().getDrawable(com.facebook.R.drawable.com_facebook_button_icon);
drawable.setBounds(0, 0, (int) (drawable.getIntrinsicWidth() * fbIconScale), (int) (drawable.getIntrinsicHeight() * fbIconScale));
loginButton.setCompoundDrawables(drawable, null, null, null);
loginButton.setCompoundDrawablePadding(getResources().getDimensionPixelSize(R.dimen.text_margin));
}
}
18
Source : SignInActivity.java
with GNU General Public License v3.0
from TudorCretu
with GNU General Public License v3.0
from TudorCretu
// [END auth_with_twitter]
// End Twitter
// Start Facebook
private void handleFacebookAccessToken(AccessToken token) {
Log.d(Facebook_TAG, "handleFacebookAccessToken:" + token);
AuthCredential credential = FacebookAuthProvider.getCredential(token.getToken());
mAuth.signInWithCredential(credential).addOnCompleteListener(this, new OnCompleteListener<AuthResult>() {
@Override
public void onComplete(@NonNull Task<AuthResult> task) {
if (task.isSuccessful()) {
// Sign in success, update UI with the signed-in user's information
Log.w(Facebook_TAG, "signInWithCredential:success");
mUser = mAuth.getCurrentUser();
} else {
// If sign in fails, display a message to the user.
Log.w(Facebook_TAG, "signInWithCredential:failure", task.getException());
Toast.makeText(SignInActivity.this, "Authentication failed.", Toast.LENGTH_SHORT).show();
}
}
});
}
18
Source : FBAccessTokenModule.java
with MIT License
from thebergamo
with MIT License
from thebergamo
/**
* Set {@link AccessToken} for the current session.
* @param accessTokenMap must satisfy the requirements in
* <a href="https://developers.facebook.com/docs/reference/android/current/clreplaced/AccessToken/">
* Facebook AccessToken</a>
*/
@ReactMethod
public void setCurrentAccessToken(ReadableMap accessTokenMap) {
AccessToken accessToken = Utility.buildAccessToken(accessTokenMap);
AccessToken.setCurrentAccessToken(accessToken);
}
18
Source : Welcome.java
with MIT License
from plazzy99
with MIT License
from plazzy99
// AccessToken accessToken = AccessToken.getCurrentAccessToken();
// boolean isLoggedIn = accessToken != null && !accessToken.isExpired();
private void handlerFacebookToken(AccessToken loginResult) {
Log.d("Facebok", "" + loginResult);
AuthCredential credential = FacebookAuthProvider.getCredential(loginResult.getToken());
mAuth.signInWithCredential(credential).addOnCompleteListener(this, new OnCompleteListener<AuthResult>() {
@Override
public void onComplete(@NonNull Task<AuthResult> task) {
if (task.isSuccessful()) {
// Login Successful
Log.w("facebook", "Log in successful");
startActivity(new Intent(getApplicationContext(), HomeActivity.clreplaced));
} else {
Log.w("Facebook", "login in failed " + task.getException());
}
}
});
}
18
Source : FacebookNetwork.java
with MIT License
from maksim88
with MIT License
from maksim88
private void addEmailToToken(final AccessToken fbAccessToken) {
GraphRequest meRequest = GraphRequest.newMeRequest(fbAccessToken, new GraphRequest.GraphJSONObjectCallback() {
@Override
public void onCompleted(JSONObject me, GraphResponse response) {
final String token = fbAccessToken.getToken();
final String userId = fbAccessToken.getUserId();
if (response.getError() != null) {
Log.d("FacebookNetwork", "Error occurred while fetching Facebook email");
accessToken = new com.maksim88.easylogin.AccessToken.Builder(token).userId(userId).build();
listener.onLoginSuccess(getNetwork());
} else {
final String email = me.optString(EMAIL_PERMISSION_FIELD);
final String name = me.optString(NAME_FIELD);
if (TextUtils.isEmpty(email)) {
Log.d("FacebookNetwork", "Email could not be fetched. The user might not have an email or have unchecked the checkbox while connecting.");
}
accessToken = new com.maksim88.easylogin.AccessToken.Builder(token).userId(userId).email(email).userName(name).build();
listener.onLoginSuccess(getNetwork());
}
}
});
Bundle parameters = new Bundle();
parameters.putString("fields", NAME_FIELD + "," + EMAIL_PERMISSION_FIELD);
meRequest.setParameters(parameters);
meRequest.executeAsync();
}
18
Source : LoginActivity.java
with MIT License
from im-minion
with MIT License
from im-minion
private void signInWithFacebook(AccessToken token) {
Log.d(TAG, "signInWithFacebook:" + token.getToken());
AuthCredential credential = FacebookAuthProvider.getCredential(token.getToken());
final String tokenString = token.getToken();
mAuth.signInWithCredential(credential).addOnCompleteListener(this, new OnCompleteListener<AuthResult>() {
@Override
public void onComplete(@NonNull Task<AuthResult> task) {
Log.d(TAG, "signInWithCredential:onComplete:" + task.isSuccessful());
//
// startActivity(new Intent(SignUp09.this, Dashboard.clreplaced));
// If sign in fails, display a message to the user. If sign in succeeds
// the auth state listener will be notified and logic to handle the
// signed in user can be handled in the listener.
if (!task.isSuccessful()) {
Log.w(TAG, "signInWithCredential", task.getException());
Toast.makeText(LoginActivity.this, "Sorry for inconvenience,Please try again..", Toast.LENGTH_SHORT).show();
} else {
// signInFacebook(tokenString);
Toast.makeText(LoginActivity.this, "Welcome..!", Toast.LENGTH_SHORT).show();
checkUserExist();
}
}
});
}
18
Source : FacebookSignIn.java
with Apache License 2.0
from FrogSquare
with Apache License 2.0
from FrogSquare
public void revokePermission(final String permission) {
AccessToken token = AccessToken.getCurrentAccessToken();
String uri = "me/permissions/" + permission;
GraphRequest graphRequest = GraphRequest.newDeleteObjectRequest(token, uri, new GraphRequest.Callback() {
@Override
public void onCompleted(GraphResponse response) {
FacebookRequestError error = response.getError();
if (error == null) {
Utils.d("GodotFireBase", "FB:Revoke:Response:" + response.toString());
getPermissions();
}
}
});
graphRequest.executeAsync();
}
18
Source : FacebookSignIn.java
with Apache License 2.0
from FrogSquare
with Apache License 2.0
from FrogSquare
/**
* GraphRequest *
*/
/**
* public void newRequest(final String uri, final String data) {
*
* }
*
* public void newPostRequest(final String uri, final String data) {
* AccessToken token = AccessToken.getCurrentAccessToken();
*
* GraphRequest graphRequest = GraphRequest.newDeleteObjectRequest(
* token, uri, new GraphRequest.Callback() {
* @Override
* public void onCompleted(GraphResponse response) {
* Utils.d("GodotFireBase", "Revoke Permission: " + permission);
* }
* });
*
* graphRequest.executeAsync();
* }
*
* public void newDeleteRequest(final String uri, final String data) {
*
* }
*/
/**
* GraphRequest *
*/
public void revokeAccess() {
mAuth.signOut();
AccessToken token = AccessToken.getCurrentAccessToken();
GraphRequest graphRequest = GraphRequest.newDeleteObjectRequest(token, "me/permissions", new GraphRequest.Callback() {
@Override
public void onCompleted(GraphResponse response) {
FacebookRequestError error = response.getError();
if (error == null) {
Utils.d("GodotFireBase", "FB:Delete:Access" + response.toString());
}
}
});
graphRequest.executeAsync();
}
18
Source : ShareApi.java
with Apache License 2.0
from eviltnan
with Apache License 2.0
from eviltnan
/**
* Returns true if the content can be shared. Warns if the access token is missing the
* publish_actions permission. Doesn't fail when this permission is missing, because the app
* could have been granted that permission in another installation.
*
* @return true if the content can be shared.
*/
public boolean canShare() {
if (this.getShareContent() == null) {
return false;
}
final AccessToken accessToken = AccessToken.getCurrentAccessToken();
if (accessToken == null) {
return false;
}
final Set<String> permissions = accessToken.getPermissions();
if (permissions == null || !permissions.contains("publish_actions")) {
Log.w(TAG, "The publish_actions permissions are missing, the share will fail unless" + " this app was authorized to publish in another installation.");
}
return true;
}
18
Source : LoginManager.java
with Apache License 2.0
from eviltnan
with Apache License 2.0
from eviltnan
private void finishLogin(AccessToken newToken, LoginClient.Request origRequest, FacebookException exception, boolean isCanceled, FacebookCallback<LoginResult> callback) {
if (newToken != null) {
AccessToken.setCurrentAccessToken(newToken);
Profile.fetchProfileForCurrentAccessToken();
}
if (callback != null) {
LoginResult loginResult = newToken != null ? computeLoginResult(origRequest, newToken) : null;
// If there are no granted permissions, the operation is treated as cancel.
if (isCanceled || (loginResult != null && loginResult.getRecentlyGrantedPermissions().size() == 0)) {
callback.onCancel();
} else if (exception != null) {
callback.onError(exception);
} else if (newToken != null) {
callback.onSuccess(loginResult);
}
}
}
18
Source : LoginManager.java
with Apache License 2.0
from eviltnan
with Apache License 2.0
from eviltnan
private LoginClient.Request createLoginRequestFromResponse(final GraphResponse response) {
Validate.notNull(response, "response");
AccessToken failedToken = response.getRequest().getAccessToken();
return createLoginRequest(failedToken != null ? failedToken.getPermissions() : null);
}
18
Source : GodotFacebook.java
with MIT License
from DrMoriarty
with MIT License
from DrMoriarty
public boolean isLoggedIn() {
Log.i("godot", "Facebook isLoggedIn");
AccessToken accessToken = AccessToken.getCurrentAccessToken();
if (accessToken == null || accessToken.isExpired()) {
// GodotLib.calldeferred(facebookCallbackId, "login_failed", new Object[]{"No token"});
return false;
} else {
// GodotLib.calldeferred(facebookCallbackId, "login_success", new Object[]{accessToken.getToken()});
return true;
}
}
18
Source : FacebookHelper.java
with Apache License 2.0
from davideas
with Apache License 2.0
from davideas
/*
* =================
* Account info
* =================
*/
/**
* Is logged in boolean.
*
* @return the boolean result of if the user is currently connected
*/
public boolean isLoggedIn() {
AccessToken accessToken = AccessToken.getCurrentAccessToken();
return accessToken != null;
}
18
Source : LoginActivity.java
with Mozilla Public License 2.0
from clementf2b
with Mozilla Public License 2.0
from clementf2b
private void handleFacebookAccessToken(AccessToken token) {
Log.d(TAG, "handleFacebookAccessToken:" + token);
final AuthCredential credential = FacebookAuthProvider.getCredential(token.getToken());
mAuth.signInWithCredential(credential).addOnCompleteListener(this, new OnCompleteListener<AuthResult>() {
@Override
public void onComplete(@NonNull Task<AuthResult> task) {
Log.d(TAG, "signInWithCredential:onComplete:" + task.isSuccessful());
// If sign in fails, display a message to the user. If sign in succeeds
// the auth state listener will be notified and logic to handle the
// signed in user can be handled in the listener.
if (!task.isSuccessful()) {
Log.w(TAG, "signInWithCredential", task.getException());
Snackbar snackbar = Snackbar.make(activity_login_layout, "Authentication failed.", Snackbar.LENGTH_SHORT);
snackbar.show();
} else {
Snackbar snackbar = Snackbar.make(activity_login_layout, "Login successfully", Snackbar.LENGTH_SHORT);
snackbar.show();
mProgress.dismiss();
checkUserExist();
}
}
}).addOnFailureListener(new OnFailureListener() {
@Override
public void onFailure(@NonNull Exception e) {
mProgress.dismiss();
Snackbar snackbar = Snackbar.make(activity_login_layout, e.toString(), Snackbar.LENGTH_SHORT);
snackbar.show();
}
});
}
17
Source : FacebookAuthClient.java
with MIT License
from rohjk
with MIT License
from rohjk
public clreplaced FacebookAuthClient extends AuthClient {
private static String TAG = "[FacebookAuthClient]";
private static int FACEBOOK_SDK_BASE_ERROR = -130;
private static int FACEBOOK_SDK_GRAPH_ERROR = FACEBOOK_SDK_BASE_ERROR - 1;
private static final String PERMISSIONS_PUBLIC_PROFILE = "public_profile";
private static final String PERMISSIONS_EMAIL = "email";
private static List<String> PERMISSIONS = new ArrayList();
static {
PERMISSIONS.add(PERMISSIONS_PUBLIC_PROFILE);
PERMISSIONS.add(PERMISSIONS_EMAIL);
}
private CallbackManager _callbackManager;
private SimpleAuthResultCallback<Void> loginCallback;
private AccessToken _accessToken;
private String _userEmail;
@Override
@SuppressWarnings("deprecation")
public void login(@NonNull final Activity activity, @NonNull final SimpleAuthResultCallback<Void> callback) {
facebookInit(activity, new SimpleAuthResultCallback<Void>() {
@Override
public void onResult(SimpleAuthResult<Void> facebookInitResult) {
if (facebookInitResult.isSuccess()) {
_accessToken = AccessToken.getCurrentAccessToken();
if (_accessToken != null) {
// 앱실행 후, Facebook SDK 초기화를 처음 실행하면 Working Thread에서 작업이 수행됨
// Login API를 호출한 곳에서 UI 변경을 할 수 없음
// UI 변경이 가능하도록 하기위해 메인 쓰레드에서 callback을 invoke 한다
activity.runOnUiThread(new Runnable() {
@Override
public void run() {
requestUserInfo(callback);
}
});
} else {
loginCallback = callback;
_callbackManager = CallbackManager.Factory.create();
LoginManager.getInstance().logInWithReadPermissions(activity, PERMISSIONS);
LoginManager.getInstance().registerCallback(_callbackManager, new FacebookCallback<LoginResult>() {
@Override
public void onSuccess(LoginResult loginResult) {
_accessToken = loginResult.getAccessToken();
requestUserInfo(callback);
}
@Override
public void onCancel() {
callback.onResult(SimpleAuthResult.<Void>getFailResult(AUTH_CLIENT_USER_CANCELLED_ERROR, AUTH_CLIENT_USER_CANCELLED_ERROR_MESSAGE));
}
@Override
public void onError(FacebookException facebookError) {
facebookError.printStackTrace();
callback.onResult(SimpleAuthResult.<Void>getFailResult(AUTH_CLIENT_LOGIN_ERROR, "FACEBOOK_LOGIN_FAIL"));
}
});
}
} else {
callback.onResult(facebookInitResult);
}
}
});
}
@SuppressWarnings("deprecation")
private void facebookInit(final Activity mActivity, final SimpleAuthResultCallback<Void> callback) {
if (SimpleAuthprovider.getInstance().getServerId(IdpType.FACEBOOK) == null) {
callback.onResult(SimpleAuthResult.<Void>getFailResult(AUTH_CLIENT_PROVIDER_ERROR, "SERVER_ID_NULL"));
} else {
FacebookSdk.setApplicationId(SimpleAuthprovider.getInstance().getServerId(IdpType.FACEBOOK));
try {
FacebookSdk.sdkInitialize(mActivity, new FacebookSdk.InitializeCallback() {
@Override
public void onInitialized() {
callback.onResult(SimpleAuthResult.<Void>getSuccessResult(null));
}
});
} catch (Exception ex) {
Log.i(TAG, "Failed to auto initialize the Facebook SDK", ex);
callback.onResult(SimpleAuthResult.<Void>getFailResult(AUTH_CLIENT_INIT_ERROR, "FAIL_TO_INIT_FACEBOOK_CLIENT"));
}
}
}
private void requestUserInfo(final SimpleAuthResultCallback<Void> callback) {
GraphRequest graphRequest = GraphRequest.newMeRequest(_accessToken, new GraphRequest.GraphJSONObjectCallback() {
@Override
public void onCompleted(JSONObject object, GraphResponse response) {
if (response.getError() == null) {
// Success
try {
_userEmail = object.getString("email");
callback.onResult(SimpleAuthResult.<Void>getSuccessResult(null));
} catch (Exception e) {
e.printStackTrace();
callback.onResult(SimpleAuthResult.<Void>getFailResult(FACEBOOK_SDK_BASE_ERROR, "GRAPH_REQUEST_PARSE_ERROR"));
}
} else {
// Fail
callback.onResult(SimpleAuthResult.<Void>getFailResult(FACEBOOK_SDK_GRAPH_ERROR, "REQUEST_GRAPH_ERROR"));
}
}
});
Bundle parameters = new Bundle();
parameters.putString("fields", PERMISSIONS_EMAIL);
graphRequest.setParameters(parameters);
graphRequest.executeAsync();
}
@Override
public void logout() {
LoginManager.getInstance().logOut();
clear();
}
private void clear() {
_accessToken = null;
_userEmail = null;
}
@Override
public String getToken() {
return (_accessToken != null) ? _accessToken.getToken() : "";
}
@Override
public String getEmail() {
return (_userEmail != null) ? _userEmail : "";
}
@Override
public IdpType getIdpType() {
return IdpType.FACEBOOK;
}
@Override
public boolean isSignedIn(@NonNull Activity activity) {
return _accessToken != null;
}
@Override
public void onActivityResult(int requestCode, int resultCode, Intent data) {
if (_callbackManager != null)
_callbackManager.onActivityResult(requestCode, resultCode, data);
}
}
17
Source : SignInBaseActivity.java
with MIT License
from PacktPublishing
with MIT License
from PacktPublishing
private void handleFacebookAccessToken(final AccessToken token) {
MyLg.d("KOI", "handleFacebookAccessToken:" + token);
AuthCredential credential = FacebookAuthProvider.getCredential(token.getToken());
mAuth.signInWithCredential(credential).addOnCompleteListener((Activity) context, new OnCompleteListener<AuthResult>() {
@Override
public void onComplete(@NonNull Task<AuthResult> task) {
MyLg.d(TAG, "signInWithCredential:onComplete:" + task.isSuccessful());
}
});
}
17
Source : ConnectPlugin.java
with Apache License 2.0
from NewSchoolApp
with Apache License 2.0
from NewSchoolApp
/**
* Create a Facebook Response object that matches the one for the Javascript SDK
* @return JSONObject - the response object
*/
public JSONObject getResponse() {
String response;
final AccessToken accessToken = AccessToken.getCurrentAccessToken();
if (hasAccessToken()) {
Date today = new Date();
long expiresTimeInterval = (accessToken.getExpires().getTime() - today.getTime()) / 1000L;
response = "{" + "\"status\": \"connected\"," + "\"authResponse\": {" + "\"accessToken\": \"" + accessToken.getToken() + "\"," + "\"expiresIn\": \"" + Math.max(expiresTimeInterval, 0) + "\"," + "\"session_key\": true," + "\"sig\": \"...\"," + "\"userID\": \"" + accessToken.getUserId() + "\"" + "}" + "}";
} else {
response = "{" + "\"status\": \"unknown\"" + "}";
}
try {
return new JSONObject(response);
} catch (JSONException e) {
e.printStackTrace();
}
return new JSONObject();
}
17
Source : FacebookHelper.java
with Apache License 2.0
from moldedbits
with Apache License 2.0
from moldedbits
public clreplaced FacebookHelper {
private List<String> facebookPermissions;
public interface FBLoginResultListener {
void onSuccess(AccessToken token);
void onFailure(String message);
}
private AccessToken token;
private CallbackManager callbackManager;
private FBLoginResultListener resultListener;
public FacebookHelper(FBLoginResultListener resultListener) {
this.resultListener = resultListener;
callbackManager = CallbackManager.Factory.create();
}
public void initialize() {
LoginManager.getInstance().registerCallback(callbackManager, new FacebookCallback<LoginResult>() {
@Override
public void onSuccess(LoginResult loginResult) {
GraphRequest graphRequest = GraphRequest.newMeRequest(loginResult.getAccessToken(), new GraphRequest.GraphJSONObjectCallback() {
@Override
public void onCompleted(JSONObject object, GraphResponse response) {
token = AccessToken.getCurrentAccessToken();
if (resultListener != null) {
resultListener.onSuccess(token);
}
}
});
Bundle parameters = new Bundle();
graphRequest.setParameters(parameters);
graphRequest.executeAsync();
}
@Override
public void onCancel() {
}
@Override
public void onError(FacebookException error) {
resultListener.onFailure(error.getMessage());
}
});
}
public void logout() {
if (AccessToken.getCurrentAccessToken() == null) {
return;
// already logged out
}
new GraphRequest(AccessToken.getCurrentAccessToken(), "/me/permissions/", null, HttpMethod.DELETE, new GraphRequest.Callback() {
@Override
public void onCompleted(GraphResponse graphResponse) {
LoginManager.getInstance().logOut();
}
}).executeAsync();
}
public void onActivityResult(int requestCode, int resultCode, Intent data) {
callbackManager.onActivityResult(requestCode, resultCode, data);
}
public void initiateLogin(Fragment fragment, List<String> faceBookPermissions) {
this.facebookPermissions = faceBookPermissions;
LoginManager.getInstance().logInWithReadPermissions(fragment, faceBookPermissions);
}
}
17
Source : HomeActivity.java
with MIT License
from IramML
with MIT License
from IramML
public clreplaced HomeActivity extends AppCompatActivity implements NavigationView.OnNavigationItemSelectedListener, OnMapReadyCallback, GoogleApiClient.ConnectionCallbacks, GoogleApiClient.OnConnectionFailedListener, GoogleMap.OnInfoWindowClickListener {
private ImageView carUberX, carUberBlack;
private Button btnRequestPickup;
private Toolbar toolbar;
private GoogleMap mMap;
private LinearLayout llPickupInput, llDestinationInput, llPickupPlace, llDestinationPlace;
private EditText etFinalPickup, etFinalDestination, etPickup, etDestination;
private RecyclerView rvPickupPlaces, rvDestinationPlaces;
private GoogleSignInAccount account;
private SupportMapFragment mapFragment;
private Marker riderMarket, destinationMarker;
private ArrayList<Marker> driverMarkers = new ArrayList<>();
// Gooogle
private GoogleApiClient mGoogleApiClient;
AccessToken accessToken = AccessToken.getCurrentAccessToken();
boolean isLoggedInFacebook = accessToken != null && !accessToken.isExpired();
private DatabaseReference driversAvailable;
private FirebaseStorage storage;
private StorageReference storageReference;
private IFCMService ifcmService;
private Location location;
private NetworkUtil networkUtil;
private String mPlaceLocation, mPlaceDestination;
private Double currentLat, currentLng;
private boolean isUberX = false, pickupPlacesSelected = false;
// km
private int radius = 1, distance = 1;
private static final int LIMIT = 3;
private String URL_BASE_API_PLACES = "https://maps.googleapis.com/maps/api/place/textsearch/json?";
public static boolean driverFound = false;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_home);
initViews();
verifyGoogleAccount();
storage = FirebaseStorage.getInstance();
storageReference = storage.getReference();
ifcmService = Common.getFCMService();
networkUtil = new NetworkUtil(this);
location = new Location(this, new locationListener() {
@Override
public void locationResponse(LocationResult response) {
// Add a icon_marker in Sydney and move the camera
currentLat = response.getLastLocation().getLareplacedude();
currentLng = response.getLastLocation().getLongitude();
Common.currenLocation = new LatLng(response.getLastLocation().getLareplacedude(), response.getLastLocation().getLongitude());
displayLocation();
if (mPlaceLocation == null) {
driversAvailable = FirebaseDatabase.getInstance().getReference(Common.driver_tbl);
driversAvailable.addValueEventListener(new ValueEventListener() {
@Override
public void onDataChange(@NonNull DataSnapshot dataSnapshot) {
loadAllAvailableDriver(new LatLng(currentLat, currentLng));
}
@Override
public void onCancelled(@NonNull DatabaseError databaseError) {
}
});
}
}
});
// Obtain the SupportMapFragment and get notified when the map is ready to be used.
mapFragment = (SupportMapFragment) getSupportFragmentManager().findFragmentById(R.id.map);
mapFragment.getMapAsync(this);
carUberX = findViewById(R.id.selectedUberX);
carUberBlack = findViewById(R.id.selectedUberBlack);
carUberX.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
boolean isToggle = !isUberX;
isUberX = true;
if (isToggle) {
carUberX.setImageResource(R.drawable.car_cui_select);
carUberBlack.setImageResource(R.drawable.car_vip);
}
loadAllAvailableDriver(new LatLng(currentLat, currentLng));
}
});
carUberBlack.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
boolean isToggle = isUberX;
isUberX = false;
if (isToggle) {
carUberX.setImageResource(R.drawable.car_cui);
carUberBlack.setImageResource(R.drawable.car_vip_select);
}
loadAllAvailableDriver(new LatLng(currentLat, currentLng));
}
});
btnRequestPickup = findViewById(R.id.btnPickupRequest);
btnRequestPickup.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
if (currentLat != null && currentLng != null) {
if (!driverFound)
requestPickup(Common.userID);
else
Common.sendRequestToDriver(Common.driverID, ifcmService, getApplicationContext(), Common.currenLocation);
}
}
});
etFinalPickup.setOnFocusChangeListener(new View.OnFocusChangeListener() {
@Override
public void onFocusChange(View view, boolean b) {
if (b) {
llPickupInput.setVisibility(View.VISIBLE);
llPickupPlace.setVisibility(View.GONE);
llDestinationInput.setVisibility(View.GONE);
llDestinationPlace.setVisibility(View.GONE);
etPickup.requestFocus();
}
}
});
etFinalDestination.setOnFocusChangeListener(new View.OnFocusChangeListener() {
@Override
public void onFocusChange(View view, boolean b) {
if (b) {
llPickupInput.setVisibility(View.GONE);
llPickupPlace.setVisibility(View.GONE);
llDestinationInput.setVisibility(View.VISIBLE);
llDestinationPlace.setVisibility(View.GONE);
etDestination.requestFocus();
}
}
});
etPickup.addTextChangedListener(new Texreplacedcher() {
@Override
public void beforeTextChanged(CharSequence charSequence, int i, int i1, int i2) {
}
@Override
public void onTextChanged(CharSequence charSequence, int i, int i1, int i2) {
getPlacesByString(charSequence.toString(), true);
}
@Override
public void afterTextChanged(Editable editable) {
}
});
etDestination.addTextChangedListener(new Texreplacedcher() {
@Override
public void beforeTextChanged(CharSequence charSequence, int i, int i1, int i2) {
}
@Override
public void onTextChanged(CharSequence charSequence, int i, int i1, int i2) {
getPlacesByString(charSequence.toString(), false);
}
@Override
public void afterTextChanged(Editable editable) {
}
});
updateFirebaseToken();
}
private void initViews() {
llPickupInput = findViewById(R.id.ll_pickup_input);
llPickupPlace = findViewById(R.id.ll_pickup_place);
llDestinationInput = findViewById(R.id.ll_destination_input);
llDestinationPlace = findViewById(R.id.ll_destination_place);
etFinalPickup = findViewById(R.id.et_final_pickup_location);
etFinalDestination = findViewById(R.id.et_final_destination);
etDestination = findViewById(R.id.et_destination);
etPickup = findViewById(R.id.et_pickup);
rvPickupPlaces = findViewById(R.id.rv_pickup_places);
rvPickupPlaces.setLayoutManager(new LinearLayoutManager(this, LinearLayoutManager.VERTICAL, false));
rvDestinationPlaces = findViewById(R.id.rv_destination_places);
rvDestinationPlaces.setLayoutManager(new LinearLayoutManager(this, LinearLayoutManager.VERTICAL, false));
toolbar = findViewById(R.id.toolbar);
setSupportActionBar(toolbar);
}
public void initDrawer() {
DrawerLayout drawer = (DrawerLayout) findViewById(R.id.drawer_layout);
ActionBarDrawerToggle toggle = new ActionBarDrawerToggle(this, drawer, toolbar, R.string.navigation_drawer_open, R.string.navigation_drawer_close);
drawer.addDrawerListener(toggle);
toggle.syncState();
NavigationView navigationView = (NavigationView) findViewById(R.id.nav_view);
navigationView.setNavigationItemSelectedListener(this);
View navigationHeaderView = navigationView.getHeaderView(0);
TextView tvName = (TextView) navigationHeaderView.findViewById(R.id.tvRiderName);
TextView tvStars = (TextView) findViewById(R.id.tvStars);
CircleImageView imageAvatar = (CircleImageView) navigationHeaderView.findViewById(R.id.imgAvatar);
tvName.setText(Common.currentUser.getName());
if (Common.currentUser.getRates() != null && !TextUtils.isEmpty(Common.currentUser.getRates()))
tvStars.setText(Common.currentUser.getRates());
if (isLoggedInFacebook)
Picreplacedo.get().load("https://graph.facebook.com/" + Common.userID + "/picture?width=500&height=500").into(imageAvatar);
else if (account != null)
Picreplacedo.get().load(account.getPhotoUrl()).into(imageAvatar);
if (Common.currentUser.getAvatarUrl() != null && !TextUtils.isEmpty(Common.currentUser.getAvatarUrl()))
Picreplacedo.get().load(Common.currentUser.getAvatarUrl()).into(imageAvatar);
}
private void loadUser() {
FirebaseDatabase.getInstance().getReference(Common.user_rider_tbl).child(Common.userID).addListenerForSingleValueEvent(new ValueEventListener() {
@Override
public void onDataChange(@NonNull DataSnapshot dataSnapshot) {
Common.currentUser = dataSnapshot.getValue(User.clreplaced);
initDrawer();
}
@Override
public void onCancelled(@NonNull DatabaseError databaseError) {
}
});
}
private void verifyGoogleAccount() {
GoogleSignInOptions gso = new GoogleSignInOptions.Builder(GoogleSignInOptions.DEFAULT_SIGN_IN).requestEmail().build();
mGoogleApiClient = new GoogleApiClient.Builder(this).enableAutoManage(this, this).addApi(Auth.GOOGLE_SIGN_IN_API, gso).build();
OptionalPendingResult<GoogleSignInResult> opr = Auth.GoogleSignInApi.silentSignIn(mGoogleApiClient);
if (opr.isDone()) {
GoogleSignInResult result = opr.get();
handleSignInResult(result);
} else {
opr.setResultCallback(new ResultCallback<GoogleSignInResult>() {
@Override
public void onResult(@NonNull GoogleSignInResult googleSignInResult) {
handleSignInResult(googleSignInResult);
}
});
}
}
private void updateFirebaseToken() {
FirebaseDatabase db = FirebaseDatabase.getInstance();
final DatabaseReference tokens = db.getReference(Common.token_tbl);
tokens.child(FirebaseAuth.getInstance().getUid()).setValue(FirebaseInstanceId.getInstance().getToken());
}
private void requestPickup(String uid) {
DatabaseReference dbRequest = FirebaseDatabase.getInstance().getReference(Common.pickup_request_tbl);
GeoFire mGeofire = new GeoFire(dbRequest);
mGeofire.setLocation(uid, new GeoLocation(Common.currenLocation.lareplacedude, Common.currenLocation.longitude), new GeoFire.CompletionListener() {
@Override
public void onComplete(String key, DatabaseError error) {
}
});
if (riderMarket.isVisible())
riderMarket.remove();
riderMarket = mMap.addMarker(new MarkerOptions().replacedle(getResources().getString(R.string.pickup_here)).snippet("").position(new LatLng(Common.currenLocation.lareplacedude, Common.currenLocation.longitude)).icon(BitmapDescriptorFactory.defaultMarker(BitmapDescriptorFactory.HUE_RED)));
riderMarket.showInfoWindow();
btnRequestPickup.setText(getResources().getString(R.string.getting_uber));
findDriver();
}
private void findDriver() {
DatabaseReference driverLocation;
if (isUberX)
driverLocation = FirebaseDatabase.getInstance().getReference(Common.driver_tbl).child("UberX");
else
driverLocation = FirebaseDatabase.getInstance().getReference(Common.driver_tbl).child("Uber Black");
GeoFire geoFire = new GeoFire(driverLocation);
GeoQuery geoQuery = geoFire.queryAtLocation(new GeoLocation(Common.currenLocation.lareplacedude, Common.currenLocation.longitude), radius);
geoQuery.removeAllListeners();
geoQuery.addGeoQueryEventListener(new GeoQueryEventListener() {
@Override
public void onKeyEntered(String key, GeoLocation location) {
if (!driverFound) {
driverFound = true;
Common.driverID = key;
btnRequestPickup.setText(getApplicationContext().getResources().getString(R.string.call_driver));
}
}
@Override
public void onKeyExited(String key) {
}
@Override
public void onKeyMoved(String key, GeoLocation location) {
}
@Override
public void onGeoQueryReady() {
if (!driverFound && radius < LIMIT) {
radius++;
findDriver();
} else {
if (!driverFound) {
Toast.makeText(HomeActivity.this, "No available any driver near you", Toast.LENGTH_SHORT).show();
btnRequestPickup.setText("REQUEST PICKUP");
}
}
}
@Override
public void onGeoQueryError(DatabaseError error) {
}
});
}
@Override
public void onBackPressed() {
DrawerLayout drawer = (DrawerLayout) findViewById(R.id.drawer_layout);
if (drawer.isDrawerOpen(GravityCompat.START)) {
drawer.closeDrawer(GravityCompat.START);
} else {
super.onBackPressed();
}
}
@SuppressWarnings("StatementWithEmptyBody")
@Override
public boolean onNavigationItemSelected(MenuItem item) {
// Handle navigation view item clicks here.
int id = item.gereplacedemId();
switch(id) {
case R.id.nav_trip_history:
showTripHistory();
break;
case R.id.nav_updateInformation:
showDialogUpdateInfo();
break;
case R.id.nav_signOut:
signOut();
break;
}
DrawerLayout drawer = (DrawerLayout) findViewById(R.id.drawer_layout);
drawer.closeDrawer(GravityCompat.START);
return true;
}
private void showTripHistory() {
Intent intent = new Intent(HomeActivity.this, TripHistoryActivity.clreplaced);
startActivity(intent);
}
private void showDialogUpdateInfo() {
AlertDialog.Builder alertDialog = new AlertDialog.Builder(HomeActivity.this);
alertDialog.setreplacedle("UPDATE INFORMATION");
LayoutInflater inflater = this.getLayoutInflater();
View layout_pwd = inflater.inflate(R.layout.layout_update_information, null);
final MaterialEditText etName = (MaterialEditText) layout_pwd.findViewById(R.id.etName);
final MaterialEditText etPhone = (MaterialEditText) layout_pwd.findViewById(R.id.etPhone);
final ImageView image_upload = (ImageView) layout_pwd.findViewById(R.id.imageUpload);
image_upload.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
chooseImage();
}
});
alertDialog.setView(layout_pwd);
alertDialog.setPositiveButton("UPDATE", new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialogInterface, int i) {
dialogInterface.dismiss();
final android.app.AlertDialog waitingDialog = new SpotsDialog.Builder().setContext(HomeActivity.this).build();
waitingDialog.show();
String name = etName.getText().toString();
String phone = etPhone.getText().toString();
Map<String, Object> updateInfo = new HashMap<>();
if (!TextUtils.isEmpty(name))
updateInfo.put("name", name);
if (!TextUtils.isEmpty(phone))
updateInfo.put("phone", phone);
DatabaseReference driverInformation = FirebaseDatabase.getInstance().getReference(Common.user_rider_tbl);
driverInformation.child(Common.userID).updateChildren(updateInfo).addOnCompleteListener(new OnCompleteListener<Void>() {
@Override
public void onComplete(@NonNull Task<Void> task) {
waitingDialog.dismiss();
if (task.isSuccessful())
Toast.makeText(HomeActivity.this, "Information Updated!", Toast.LENGTH_SHORT).show();
else
Toast.makeText(HomeActivity.this, "Information Update Failed!", Toast.LENGTH_SHORT).show();
}
});
}
});
alertDialog.setNegativeButton("CANCEL", new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialogInterface, int i) {
dialogInterface.dismiss();
}
});
alertDialog.show();
}
private void chooseImage() {
Dexter.withActivity(this).withPermissions(Manifest.permission.READ_EXTERNAL_STORAGE, Manifest.permission.WRITE_EXTERNAL_STORAGE).withListener(new MultiplePermissionsListener() {
@Override
public void onPermissionsChecked(MultiplePermissionsReport report) {
if (report.areAllPermissionsGranted()) {
Intent intent = new Intent(Intent.ACTION_PICK);
intent.setType("image/*");
startActivityForResult(intent, Common.PICK_IMAGE_REQUEST);
} else {
Toast.makeText(getApplicationContext(), "Permission denied", Toast.LENGTH_SHORT).show();
}
}
@Override
public void onPermissionRationaleShouldBeShown(List<PermissionRequest> permissions, PermissionToken token) {
token.continuePermissionRequest();
}
}).check();
}
@Override
protected void onActivityResult(int requestCode, int resultCode, @Nullable Intent data) {
super.onActivityResult(requestCode, resultCode, data);
if (requestCode == Common.PICK_IMAGE_REQUEST && resultCode == RESULT_OK && data != null && data.getData() != null) {
Uri saveUri = data.getData();
if (saveUri != null) {
final ProgressDialog progressDialog = new ProgressDialog(this);
progressDialog.setMessage("Uploading...");
progressDialog.show();
String imageName = UUID.randomUUID().toString();
final StorageReference imageFolder = storageReference.child("images/" + imageName);
imageFolder.putFile(saveUri).addOnSuccessListener(new OnSuccessListener<UploadTask.TaskSnapshot>() {
@Override
public void onSuccess(UploadTask.TaskSnapshot taskSnapshot) {
progressDialog.dismiss();
Toast.makeText(HomeActivity.this, "Uploaded!", Toast.LENGTH_SHORT).show();
imageFolder.getDownloadUrl().addOnSuccessListener(new OnSuccessListener<Uri>() {
@Override
public void onSuccess(Uri uri) {
Map<String, Object> avatarUpdate = new HashMap<>();
avatarUpdate.put("avatarUrl", uri.toString());
DatabaseReference driverInformations = FirebaseDatabase.getInstance().getReference(Common.user_rider_tbl);
driverInformations.child(Common.userID).updateChildren(avatarUpdate).addOnCompleteListener(new OnCompleteListener<Void>() {
@Override
public void onComplete(@NonNull Task<Void> task) {
if (task.isSuccessful())
Toast.makeText(HomeActivity.this, "Uploaded!", Toast.LENGTH_SHORT).show();
else
Toast.makeText(HomeActivity.this, "Uploaded error!", Toast.LENGTH_SHORT).show();
}
});
}
});
}
}).addOnProgressListener(new OnProgressListener<UploadTask.TaskSnapshot>() {
@Override
public void onProgress(UploadTask.TaskSnapshot taskSnapshot) {
double progress = (100.0 * taskSnapshot.getBytesTransferred()) / taskSnapshot.getTotalByteCount();
progressDialog.setMessage("Uploaded " + progress + "%");
}
});
}
}
}
private void signOut() {
if (account != null) {
Auth.GoogleSignInApi.signOut(mGoogleApiClient).setResultCallback(new ResultCallback<Status>() {
@Override
public void onResult(@NonNull Status status) {
if (status.isSuccess()) {
Intent intent = new Intent(HomeActivity.this, LoginActivity.clreplaced);
startActivity(intent);
finish();
} else {
Toast.makeText(HomeActivity.this, "Could not log out", Toast.LENGTH_SHORT).show();
}
}
});
} else if (isLoggedInFacebook) {
LoginManager.getInstance().logOut();
Intent intent = new Intent(HomeActivity.this, LoginActivity.clreplaced);
startActivity(intent);
finish();
} else {
FirebaseAuth.getInstance().signOut();
Intent intent = new Intent(HomeActivity.this, LoginActivity.clreplaced);
startActivity(intent);
finish();
}
}
private void handleSignInResult(GoogleSignInResult result) {
if (result.isSuccess()) {
account = result.getSignInAccount();
Common.userID = account.getId();
loadUser();
} else if (isLoggedInFacebook) {
GraphRequest request = GraphRequest.newMeRequest(accessToken, new GraphRequest.GraphJSONObjectCallback() {
@Override
public void onCompleted(JSONObject object, GraphResponse response) {
String id = object.optString("id");
Common.userID = id;
loadUser();
}
});
request.executeAsync();
} else {
Common.userID = FirebaseAuth.getInstance().getCurrentUser().getUid();
loadUser();
}
}
private void displayLocation() {
if (currentLat != null && currentLng != null) {
// presence system
driversAvailable = FirebaseDatabase.getInstance().getReference(Common.driver_tbl);
driversAvailable.addValueEventListener(new ValueEventListener() {
@Override
public void onDataChange(DataSnapshot dataSnapshot) {
// if have change from drivers table, we will reload all drivers available
loadAllAvailableDriver(new LatLng(currentLat, currentLng));
}
@Override
public void onCancelled(DatabaseError databaseError) {
}
});
loadAllAvailableDriver(new LatLng(currentLat, currentLng));
} else {
ShowMessage.messageError(this, Errors.WITHOUT_LOCATION);
}
}
private void loadAllAvailableDriver(final LatLng location) {
for (Marker driverMarker : driverMarkers) {
driverMarker.remove();
}
driverMarkers.clear();
if (!pickupPlacesSelected) {
if (riderMarket != null)
riderMarket.remove();
riderMarket = mMap.addMarker(new MarkerOptions().position(location).replacedle(getResources().getString(R.string.you)).icon(BitmapDescriptorFactory.fromResource(R.drawable.icon_marker)));
mMap.animateCamera(CameraUpdateFactory.newLatLngZoom(location, 15.0f));
}
DatabaseReference driverLocation;
if (isUberX)
driverLocation = FirebaseDatabase.getInstance().getReference(Common.driver_tbl).child("UberX");
else
driverLocation = FirebaseDatabase.getInstance().getReference(Common.driver_tbl).child("Uber Black");
GeoFire geoFire = new GeoFire(driverLocation);
GeoQuery geoQuery = geoFire.queryAtLocation(new GeoLocation(location.lareplacedude, location.longitude), distance);
geoQuery.removeAllListeners();
geoQuery.addGeoQueryEventListener(new GeoQueryEventListener() {
@Override
public void onKeyEntered(String key, final GeoLocation location) {
FirebaseDatabase.getInstance().getReference(Common.user_driver_tbl).child(key).addListenerForSingleValueEvent(new ValueEventListener() {
@Override
public void onDataChange(@NonNull DataSnapshot dataSnapshot) {
User driver = dataSnapshot.getValue(User.clreplaced);
String name;
String phone;
if (driver.getName() != null)
name = driver.getName();
else
name = "not available";
if (driver.getPhone() != null)
phone = "Phone: " + driver.getPhone();
else
phone = "Phone: none";
driverMarkers.add(mMap.addMarker(new MarkerOptions().position(new LatLng(location.lareplacedude, location.longitude)).flat(true).replacedle(name).snippet("Driver ID: " + dataSnapshot.getKey()).icon(BitmapDescriptorFactory.fromResource(R.drawable.car))));
}
@Override
public void onCancelled(@NonNull DatabaseError databaseError) {
}
});
}
@Override
public void onKeyExited(String key) {
}
@Override
public void onKeyMoved(String key, GeoLocation location) {
}
@Override
public void onGeoQueryReady() {
if (distance <= LIMIT) {
distance++;
loadAllAvailableDriver(location);
}
}
@Override
public void onGeoQueryError(DatabaseError error) {
}
});
}
@Override
public void onMapReady(GoogleMap googleMap) {
mMap = googleMap;
mMap.getUiSettings().setZoomControlsEnabled(true);
mMap.getUiSettings().setZoomGesturesEnabled(true);
mMap.setInfoWindowAdapter(new CustomInfoWindow(this));
googleMap.setMapStyle(MapStyleOptions.loadRawResourceStyle(this, R.raw.uber_style_map));
mMap.setOnMapClickListener(new GoogleMap.OnMapClickListener() {
@Override
public void onMapClick(LatLng latLng) {
if (destinationMarker != null)
destinationMarker.remove();
destinationMarker = mMap.addMarker(new MarkerOptions().position(latLng).icon(BitmapDescriptorFactory.fromResource(R.drawable.icon_destination_marker)).replacedle("Destination"));
mMap.animateCamera(CameraUpdateFactory.newLatLngZoom(latLng, 15.0f));
BottomSheetRiderFragment mBottomSheet = BottomSheetRiderFragment.newInstance(String.format("%f,%f", currentLat, currentLng), String.format("%f,%f", latLng.lareplacedude, latLng.longitude), true);
mBottomSheet.show(getSupportFragmentManager(), mBottomSheet.getTag());
}
});
mMap.setOnInfoWindowClickListener(this);
}
@Override
public void onRequestPermissionsResult(int requestCode, @NonNull String[] permissions, @NonNull int[] grantResults) {
super.onRequestPermissionsResult(requestCode, permissions, grantResults);
location.onRequestPermissionResult(requestCode, permissions, grantResults);
}
@Override
protected void onStop() {
super.onStop();
location.stopUpdateLocation();
}
@Override
protected void onStart() {
super.onStart();
displayLocation();
location.inicializeLocation();
}
@Override
public void onConnected(@Nullable Bundle bundle) {
}
@Override
public void onConnectionSuspended(int i) {
mGoogleApiClient.connect();
}
@Override
public void onConnectionFailed(@NonNull ConnectionResult connectionResult) {
}
@Override
public void onInfoWindowClick(Marker marker) {
if (!marker.getreplacedle().equals("You")) {
Intent intent = new Intent(HomeActivity.this, CallDriverActivity.clreplaced);
String ID = marker.getSnippet().replace("Driver ID: ", "");
intent.putExtra("driverID", ID);
intent.putExtra("lat", currentLat);
intent.putExtra("lng", currentLng);
startActivity(intent);
}
}
private void getPlacesByString(String s, final boolean isPickup) {
String queryEncode = s.toString();
try {
queryEncode = URLEncoder.encode(s.toString(), "UTF-8");
} catch (UnsupportedEncodingException e) {
e.printStackTrace();
}
String query = "&query=" + queryEncode;
String location = "&location=" + Common.currenLocation.lareplacedude + "," + Common.currenLocation.longitude;
String radius = "radius=1500";
String key = "&key=" + ConfigApp.GOOGLE_API_KEY;
String url = (URL_BASE_API_PLACES + radius + location + query + key).replaceAll(" ", "%20");
Log.d("URL_PLACES", url);
networkUtil.httpRequest(url, new HttpResponse() {
@Override
public void httpResponseSuccess(String response) {
pickupPlacesSelected = true;
Gson gson = new Gson();
PlacesResponse placesResponse = gson.fromJson(response, PlacesResponse.clreplaced);
for (Results result : placesResponse.results) {
if (result.geometry.location == null) {
placesResponse.results.remove(result);
} else if (result.geometry.location.lat == null || result.geometry.location.lat.equals("") || result.geometry.location.lat.equals("0.0")) {
placesResponse.results.remove(result);
} else if (result.geometry.location.lng == null || result.geometry.location.lng.equals("") || result.geometry.location.lng.equals("0.0")) {
placesResponse.results.remove(result);
}
}
if (isPickup)
implementPickupRecyclerView(placesResponse.results);
else
implementDestinationRecyclerView(placesResponse.results);
}
});
}
private void implementPickupRecyclerView(final ArrayList<Results> results) {
PlacesAdapter placesAdapter = new PlacesAdapter(this, results, new ClickListener() {
@Override
public void onClick(View view, int index) {
mPlaceLocation = results.get(index).formatted_address;
etFinalPickup.setText(mPlaceLocation);
llPickupInput.setVisibility(View.GONE);
llPickupPlace.setVisibility(View.VISIBLE);
llDestinationInput.setVisibility(View.GONE);
llDestinationPlace.setVisibility(View.VISIBLE);
Double lat = Double.valueOf(results.get(index).geometry.location.lat);
Double lng = Double.valueOf(results.get(index).geometry.location.lng);
LatLng latLng = new LatLng(lat, lng);
if (riderMarket != null)
riderMarket.remove();
riderMarket = mMap.addMarker(new MarkerOptions().position(latLng).icon(BitmapDescriptorFactory.fromResource(R.drawable.icon_marker)).replacedle("Pickup Here"));
mMap.animateCamera(CameraUpdateFactory.newLatLngZoom(latLng, 15.0f));
}
});
rvPickupPlaces.setAdapter(placesAdapter);
}
private void implementDestinationRecyclerView(final ArrayList<Results> results) {
PlacesAdapter placesAdapter = new PlacesAdapter(this, results, new ClickListener() {
@Override
public void onClick(View view, int index) {
mPlaceDestination = results.get(index).formatted_address;
etFinalDestination.setText(mPlaceDestination);
llPickupInput.setVisibility(View.GONE);
llPickupPlace.setVisibility(View.VISIBLE);
llDestinationInput.setVisibility(View.GONE);
llDestinationPlace.setVisibility(View.VISIBLE);
Double lat = Double.valueOf(results.get(index).geometry.location.lat);
Double lng = Double.valueOf(results.get(index).geometry.location.lng);
LatLng latLng = new LatLng(lat, lng);
if (destinationMarker != null)
destinationMarker.remove();
destinationMarker = mMap.addMarker(new MarkerOptions().position(latLng).icon(BitmapDescriptorFactory.fromResource(R.drawable.icon_destination_marker)).replacedle("Destination"));
mMap.animateCamera(CameraUpdateFactory.newLatLngZoom(latLng, 15.0f));
BottomSheetRiderFragment mBottomSheet = BottomSheetRiderFragment.newInstance(mPlaceLocation, mPlaceDestination, false);
mBottomSheet.show(getSupportFragmentManager(), mBottomSheet.getTag());
}
});
rvDestinationPlaces.setAdapter(placesAdapter);
}
}
17
Source : ProfileActivity.java
with Apache License 2.0
from hbmartin
with Apache License 2.0
from hbmartin
private void firebaseAuthWithFacebook(AccessToken token) {
Timber.e("firebaseAuthWithFacebook:" + token);
AuthCredential credential = FacebookAuthProvider.getCredential(token.getToken());
mAuth.signInWithCredential(credential).addOnCompleteListener(this, mAuthCompleteListener);
}
17
Source : FacebookSignIn.java
with Apache License 2.0
from FrogSquare
with Apache License 2.0
from FrogSquare
public clreplaced FacebookSignIn {
public static FacebookSignIn getInstance(Activity p_activity) {
if (mInstance == null) {
mInstance = new FacebookSignIn(p_activity);
}
return mInstance;
}
public FacebookSignIn(Activity p_activity) {
activity = p_activity;
}
public void init() {
// Initialize listener.
// ...
FacebookSdk.sdkInitialize(activity);
// FacebookSdk.setApplicationId(activity.getString(R.string.facebook_app_id));
mAuth = FirebaseAuth.getInstance();
mAuthListener = new FirebaseAuth.AuthStateListener() {
@Override
public void onAuthStateChanged(@NonNull FirebaseAuth firebaseAuth) {
FirebaseUser user = firebaseAuth.getCurrentUser();
if (user != null) {
for (UserInfo usr : user.getProviderData()) {
if (usr.getProviderId().equals("facebook.com")) {
Utils.d("GodotFireBase", "FB:AuthStateChanged:signed_in:" + user.getUid());
successSignin(user);
}
}
} else {
// User is signed out
Utils.d("GodotFireBase", "FB:onAuthStateChanged:signed_out");
successSignOut();
}
// update user details;
}
};
// AppEventsLogger.activityApp(activity);
initCallbacks();
onStart();
Utils.d("GodotFireBase", "Facebook auth initialized.");
}
private void initCallbacks() {
callbackManager = CallbackManager.Factory.create();
/**
* requestDialog = new GameRequestDialog(activity);
* requestDialog.registerCallback(callbackManager,
* new FacebookCallback<GameRequestDialog.Result>() {
* @Override
* public void onSuccess (GameRequestDialog.Result result) {
* Utils.d("GodotFireBase", "Facebook request sent.");
* }
* });
*/
LoginManager.getInstance().registerCallback(callbackManager, new FacebookCallback<LoginResult>() {
@Override
public void onSuccess(LoginResult result) {
Utils.d("GodotFireBase", "FB:Connected");
handleAccessToken(result.getAccessToken());
}
@Override
public void onCancel() {
Utils.d("GodotFireBase", "FB:Canceled");
}
@Override
public void onError(FacebookException exception) {
Utils.d("GodotFireBase", "FB:Error, " + exception.toString());
}
});
mAccessTokenTracker = new AccessTokenTracker() {
@Override
protected void onCurrentAccessTokenChanged(AccessToken old, AccessToken current) {
Utils.d("GodotFireBase", "FB:AccessToken:Changed");
if (current == null) {
successSignOut();
} else {
accessToken = current;
try {
currentFBUser.put("token", accessToken.getToken().toString());
} catch (JSONException e) {
Utils.d("GodotFireBase", "FB:JSON:Error:162:" + e.toString());
}
}
}
};
mProfileTracker = new ProfileTracker() {
@Override
protected void onCurrentProfileChanged(Profile old, Profile current) {
Utils.d("GodotFireBase", "FB:Profile:Changed");
profile = current;
}
};
mAccessTokenTracker.startTracking();
mProfileTracker.startTracking();
accessToken = AccessToken.getCurrentAccessToken();
profile = Profile.getCurrentProfile();
}
public boolean isPermissionGiven(final String permission) {
Utils.d("GodotFireBase", "FB:Checking:Available:Permissions:For: " + permission);
accessToken = AccessToken.getCurrentAccessToken();
if (accessToken == null && accessToken.isExpired()) {
Utils.d("GodotFireBase", "FB:Token:NotValid");
return false;
}
return (mUserPermissions.contains(permission));
}
public void getPermissions() {
String uri = "me/permissions/";
new GraphRequest(AccessToken.getCurrentAccessToken(), uri, null, HttpMethod.GET, new GraphRequest.Callback() {
public void onCompleted(GraphResponse response) {
/* handle the result */
JSONArray data = response.getJSONObject().optJSONArray("data");
mUserPermissions.clear();
for (int i = 0; i < data.length(); i++) {
JSONObject dd = data.optJSONObject(i);
if (dd.optString("status").equals("granted")) {
mUserPermissions.add(dd.optString("permission"));
}
}
}
}).executeAsync();
}
public String getUserPermissions() {
if (!isConnected() && mUserPermissions.size() > 0) {
Utils.d("GodotFireBase", "FB:Check:Login");
return "NULL";
}
return mUserPermissions.toString();
}
public void revokePermission(final String permission) {
AccessToken token = AccessToken.getCurrentAccessToken();
String uri = "me/permissions/" + permission;
GraphRequest graphRequest = GraphRequest.newDeleteObjectRequest(token, uri, new GraphRequest.Callback() {
@Override
public void onCompleted(GraphResponse response) {
FacebookRequestError error = response.getError();
if (error == null) {
Utils.d("GodotFireBase", "FB:Revoke:Response:" + response.toString());
getPermissions();
}
}
});
graphRequest.executeAsync();
}
public void askForPermission(final String replacedle, final String message, final String perm, final boolean read) {
new AlertDialog.Builder(activity, AlertDialog.THEME_HOLO_LIGHT).setPositiveButton("Yes", new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int id) {
if (!read) {
requestPublishPermissions(Arrays.asList(perm));
} else {
requestReadPermissions(Arrays.asList(perm));
}
}
}).setNegativeButton("No", new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog, int id) {
}
}).setreplacedle(replacedle).setMessage(message).show();
}
public void requestReadPermissions(Collection<String> permissions) {
LoginManager.getInstance().logInWithReadPermissions(activity, permissions);
}
public void requestPublishPermissions(Collection<String> permissions) {
LoginManager.getInstance().logInWithPublishPermissions(activity, permissions);
}
public void signIn() {
if (callbackManager == null) {
Utils.d("GodotFireBase", "FB:Initialized");
return;
}
requestReadPermissions(Arrays.asList("email", "public_profile"));
// LoginManager.getInstance().logInWithReadPermissions(
// activity, Arrays.asList("email", "public_profile"));
}
public void signOut() {
if (callbackManager == null) {
return;
}
Utils.d("GodotFireBase", "FB:Logout");
mAuth.signOut();
LoginManager.getInstance().logOut();
}
/**
* GraphRequest *
*/
/**
* public void newRequest(final String uri, final String data) {
*
* }
*
* public void newPostRequest(final String uri, final String data) {
* AccessToken token = AccessToken.getCurrentAccessToken();
*
* GraphRequest graphRequest = GraphRequest.newDeleteObjectRequest(
* token, uri, new GraphRequest.Callback() {
* @Override
* public void onCompleted(GraphResponse response) {
* Utils.d("GodotFireBase", "Revoke Permission: " + permission);
* }
* });
*
* graphRequest.executeAsync();
* }
*
* public void newDeleteRequest(final String uri, final String data) {
*
* }
*/
/**
* GraphRequest *
*/
public void revokeAccess() {
mAuth.signOut();
AccessToken token = AccessToken.getCurrentAccessToken();
GraphRequest graphRequest = GraphRequest.newDeleteObjectRequest(token, "me/permissions", new GraphRequest.Callback() {
@Override
public void onCompleted(GraphResponse response) {
FacebookRequestError error = response.getError();
if (error == null) {
Utils.d("GodotFireBase", "FB:Delete:Access" + response.toString());
}
}
});
graphRequest.executeAsync();
}
public void handleAccessToken(AccessToken token) {
Utils.d("GodotFireBase", "FB:Handle:AccessToken: " + token.getToken());
// showProgressDialog();
AuthCredential credential = FacebookAuthProvider.getCredential(token.getToken());
mAuth.signInWithCredential(credential).addOnCompleteListener(activity, new OnCompleteListener<AuthResult>() {
@Override
public void onComplete(@NonNull Task<AuthResult> task) {
Utils.d("GodotFireBase", "FB:signInWithCredential:onComplete:" + task.isSuccessful());
// If sign in fails, display a message to the user. If sign in succeeds
// the auth state listener will be notified and logic to handle the
// signed in user can be handled in the listener.
if (!task.isSuccessful()) {
Utils.w("GodotFireBase", "FB:signInWithCredential" + task.getException().toString());
}
// hideProgressDialog();
}
});
}
protected void successSignin(FirebaseUser user) {
Utils.d("GodotFireBase", "FB:Login:Success");
isFacebookConnected = true;
accessToken = AccessToken.getCurrentAccessToken();
try {
currentFBUser.put("uid", user.getUid());
currentFBUser.put("name", user.getDisplayName());
currentFBUser.put("email_id", user.getEmail());
currentFBUser.put("photo_uri", user.getPhotoUrl());
currentFBUser.put("token", accessToken.getToken().toString());
} catch (JSONException e) {
Utils.d("GodotFireBase", "FB:JSON:Error:" + e.toString());
}
getPermissions();
// call Script
Utils.callScriptFunc("Auth", "FacebookLogin", "true");
}
protected void successSignOut() {
isFacebookConnected = false;
currentFBUser = null;
currentFBUser = new JSONObject();
// call script.
Utils.callScriptFunc("Auth", "FacebookLogin", "false");
}
public String getUserDetails() {
return currentFBUser.toString();
}
public boolean isConnected() {
return isFacebookConnected;
}
public void onActivityResult(int requestCode, int resultCode, Intent data) {
// Result returned from launching the Intent from GoogleSignInApi.getSignInIntent(...);
callbackManager.onActivityResult(requestCode, resultCode, data);
}
public void onStart() {
mAuth.addAuthStateListener(mAuthListener);
}
public void onStop() {
if (mAuthListener != null) {
mAuth.removeAuthStateListener(mAuthListener);
}
isFacebookConnected = false;
activity = null;
mAccessTokenTracker.stopTracking();
mProfileTracker.stopTracking();
}
private static Activity activity = null;
private static FacebookSignIn mInstance = null;
// private static GameRequestDialog requestDialog;
private static CallbackManager callbackManager;
private static AccessTokenTracker mAccessTokenTracker;
private static ProfileTracker mProfileTracker;
private static AccessToken accessToken;
private static Profile profile;
private Boolean isFacebookConnected = false;
private JSONObject currentFBUser = new JSONObject();
private ArrayList<String> mUserPermissions = new ArrayList<String>();
private FirebaseAuth mAuth;
private FirebaseAuth.AuthStateListener mAuthListener;
}
17
Source : FacebookSignIn.java
with Apache License 2.0
from FrogSquare
with Apache License 2.0
from FrogSquare
public void handleAccessToken(AccessToken token) {
Utils.d("GodotFireBase", "FB:Handle:AccessToken: " + token.getToken());
// showProgressDialog();
AuthCredential credential = FacebookAuthProvider.getCredential(token.getToken());
mAuth.signInWithCredential(credential).addOnCompleteListener(activity, new OnCompleteListener<AuthResult>() {
@Override
public void onComplete(@NonNull Task<AuthResult> task) {
Utils.d("GodotFireBase", "FB:signInWithCredential:onComplete:" + task.isSuccessful());
// If sign in fails, display a message to the user. If sign in succeeds
// the auth state listener will be notified and logic to handle the
// signed in user can be handled in the listener.
if (!task.isSuccessful()) {
Utils.w("GodotFireBase", "FB:signInWithCredential" + task.getException().toString());
}
// hideProgressDialog();
}
});
}
17
Source : MainActivity.java
with Apache License 2.0
from firebase
with Apache License 2.0
from firebase
public void getFbCredentials() {
AccessToken token = AccessToken.getCurrentAccessToken();
// [START auth_fb_cred]
AuthCredential credential = FacebookAuthProvider.getCredential(token.getToken());
// [END auth_fb_cred]
}
17
Source : KatanaProxyLoginMethodHandler.java
with Apache License 2.0
from eviltnan
with Apache License 2.0
from eviltnan
private LoginClient.Result handleResultOk(LoginClient.Request request, Intent data) {
Bundle extras = data.getExtras();
String error = getError(extras);
String errorCode = extras.getString("error_code");
String errorMessage = getErrorMessage(extras);
String e2e = extras.getString(NativeProtocol.FACEBOOK_PROXY_AUTH_E2E_KEY);
if (!Utility.isNullOrEmpty(e2e)) {
logWebLoginCompleted(e2e);
}
if (error == null && errorCode == null && errorMessage == null) {
try {
AccessToken token = createAccessTokenFromWebBundle(request.getPermissions(), extras, AccessTokenSource.FACEBOOK_APPLICATION_WEB, request.getApplicationId());
return LoginClient.Result.createTokenResult(request, token);
} catch (FacebookException ex) {
return LoginClient.Result.createErrorResult(request, null, ex.getMessage());
}
} else if (ServerProtocol.errorsProxyAuthDisabled.contains(error)) {
return null;
} else if (ServerProtocol.errorsUserCanceled.contains(error)) {
return LoginClient.Result.createCancelResult(request, null);
} else {
return LoginClient.Result.createErrorResult(request, error, errorMessage, errorCode);
}
}
17
Source : FacebookSignIn.java
with Apache License 2.0
from Dhciolfi
with Apache License 2.0
from Dhciolfi
public clreplaced FacebookSignIn {
public static FacebookSignIn getInstance(Activity p_activity) {
if (mInstance == null) {
mInstance = new FacebookSignIn(p_activity);
}
return mInstance;
}
public FacebookSignIn(Activity p_activity) {
activity = p_activity;
}
public void init() {
// Initialize listener.
// ...
FacebookSdk.sdkInitialize(activity);
// FacebookSdk.setApplicationId(activity.getString(R.string.facebook_app_id));
mAuth = FirebaseAuth.getInstance();
mAuthListener = new FirebaseAuth.AuthStateListener() {
@Override
public void onAuthStateChanged(@NonNull FirebaseAuth firebaseAuth) {
FirebaseUser user = firebaseAuth.getCurrentUser();
if (user != null) {
for (UserInfo usr : user.getProviderData()) {
if (usr.getProviderId().equals("facebook.com")) {
Utils.d("GodotFireBase", "FB:AuthStateChanged:signed_in:" + user.getUid());
successSignin(user);
}
}
} else {
// User is signed out
Utils.d("GodotFireBase", "FB:onAuthStateChanged:signed_out");
successSignOut();
}
// update user details;
}
};
// AppEventsLogger.activityApp(activity);
initCallbacks();
onStart();
Utils.d("GodotFireBase", "Facebook auth initialized.");
}
private void initCallbacks() {
callbackManager = CallbackManager.Factory.create();
/**
* requestDialog = new GameRequestDialog(activity);
* requestDialog.registerCallback(callbackManager,
* new FacebookCallback<GameRequestDialog.Result>() {
* @Override
* public void onSuccess (GameRequestDialog.Result result) {
* Utils.d("GodotFireBase", "Facebook request sent.");
* }
* });
*/
LoginManager.getInstance().registerCallback(callbackManager, new FacebookCallback<LoginResult>() {
@Override
public void onSuccess(LoginResult result) {
Utils.d("GodotFireBase", "FB:Connected");
handleAccessToken(result.getAccessToken());
}
@Override
public void onCancel() {
Utils.d("GodotFireBase", "FB:Canceled");
}
@Override
public void onError(FacebookException exception) {
Utils.d("GodotFireBase", "FB:Error, " + exception.toString());
}
});
mAccessTokenTracker = new AccessTokenTracker() {
@Override
protected void onCurrentAccessTokenChanged(AccessToken old, AccessToken current) {
Utils.d("GodotFireBase", "FB:AccessToken:Changed");
if (current == null) {
successSignOut();
} else {
accessToken = current;
try {
currentFBUser.put("token", accessToken.getToken().toString());
} catch (JSONException e) {
Utils.d("GodotFireBase", "FB:JSON:Error:162:" + e.toString());
}
}
}
};
mProfileTracker = new ProfileTracker() {
@Override
protected void onCurrentProfileChanged(Profile old, Profile current) {
Utils.d("GodotFireBase", "FB:Profile:Changed");
profile = current;
}
};
mAccessTokenTracker.startTracking();
mProfileTracker.startTracking();
accessToken = AccessToken.getCurrentAccessToken();
profile = Profile.getCurrentProfile();
}
public boolean isPermissionGiven(final String permission) {
Utils.d("GodotFireBase", "FB:Checking:Available:Permissions:For: " + permission);
accessToken = AccessToken.getCurrentAccessToken();
if (accessToken == null && accessToken.isExpired()) {
Utils.d("GodotFireBase", "FB:Token:NotValid");
return false;
}
return (mUserPermissions.contains(permission));
}
public void getPermissions() {
String uri = "me/permissions/";
new GraphRequest(AccessToken.getCurrentAccessToken(), uri, null, HttpMethod.GET, new GraphRequest.Callback() {
public void onCompleted(GraphResponse response) {
/* handle the result */
JSONArray data = response.getJSONObject().optJSONArray("data");
mUserPermissions.clear();
for (int i = 0; i < data.length(); i++) {
JSONObject dd = data.optJSONObject(i);
if (dd.optString("status").equals("granted")) {
mUserPermissions.add(dd.optString("permission"));
}
}
}
}).executeAsync();
}
public String getUserPermissions() {
if (!isConnected() && mUserPermissions.size() > 0) {
Utils.d("GodotFireBase", "FB:Check:Login");
return "NULL";
}
return mUserPermissions.toString();
}
public void revokePermission(final String permission) {
AccessToken token = AccessToken.getCurrentAccessToken();
String uri = "me/permissions/" + permission;
GraphRequest graphRequest = GraphRequest.newDeleteObjectRequest(token, uri, new GraphRequest.Callback() {
@Override
public void onCompleted(GraphResponse response) {
FacebookRequestError error = response.getError();
if (error == null) {
Utils.d("GodotFireBase", "FB:Revoke:Response:" + response.toString());
getPermissions();
}
}
});
graphRequest.executeAsync();
}
public void askForPermission(final String replacedle, final String message, final String perm, final boolean read) {
new AlertDialog.Builder(activity, AlertDialog.THEME_HOLO_LIGHT).setPositiveButton("Yes", new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int id) {
if (!read) {
requestPublishPermissions(Arrays.asList(perm));
} else {
requestReadPermissions(Arrays.asList(perm));
}
}
}).setNegativeButton("No", new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog, int id) {
}
}).setreplacedle(replacedle).setMessage(message).show();
}
public void requestReadPermissions(List permissions) {
LoginManager.getInstance().logInWithReadPermissions(activity, permissions);
}
public void requestPublishPermissions(List permissions) {
LoginManager.getInstance().logInWithPublishPermissions(activity, permissions);
}
public void signIn() {
if (callbackManager == null) {
Utils.d("GodotFireBase", "FB:Initialized");
return;
}
requestReadPermissions(Arrays.asList("email", "public_profile"));
// LoginManager.getInstance().logInWithReadPermissions(
// activity, Arrays.asList("email", "public_profile"));
}
public void signOut() {
if (callbackManager == null) {
return;
}
Utils.d("GodotFireBase", "FB:Logout");
mAuth.signOut();
LoginManager.getInstance().logOut();
}
/**
* GraphRequest *
*/
/**
* public void newRequest(final String uri, final String data) {
*
* }
*
* public void newPostRequest(final String uri, final String data) {
* AccessToken token = AccessToken.getCurrentAccessToken();
*
* GraphRequest graphRequest = GraphRequest.newDeleteObjectRequest(
* token, uri, new GraphRequest.Callback() {
* @Override
* public void onCompleted(GraphResponse response) {
* Utils.d("GodotFireBase", "Revoke Permission: " + permission);
* }
* });
*
* graphRequest.executeAsync();
* }
*
* public void newDeleteRequest(final String uri, final String data) {
*
* }
*/
/**
* GraphRequest *
*/
public void revokeAccess() {
mAuth.signOut();
AccessToken token = AccessToken.getCurrentAccessToken();
GraphRequest graphRequest = GraphRequest.newDeleteObjectRequest(token, "me/permissions", new GraphRequest.Callback() {
@Override
public void onCompleted(GraphResponse response) {
FacebookRequestError error = response.getError();
if (error == null) {
Utils.d("GodotFireBase", "FB:Delete:Access" + response.toString());
}
}
});
graphRequest.executeAsync();
}
public void handleAccessToken(AccessToken token) {
Utils.d("GodotFireBase", "FB:Handle:AccessToken: " + token.getToken());
// showProgressDialog();
AuthCredential credential = FacebookAuthProvider.getCredential(token.getToken());
mAuth.signInWithCredential(credential).addOnCompleteListener(activity, new OnCompleteListener<AuthResult>() {
@Override
public void onComplete(@NonNull Task<AuthResult> task) {
Utils.d("GodotFireBase", "FB:signInWithCredential:onComplete:" + task.isSuccessful());
// If sign in fails, display a message to the user. If sign in succeeds
// the auth state listener will be notified and logic to handle the
// signed in user can be handled in the listener.
if (!task.isSuccessful()) {
Utils.w("GodotFireBase", "FB:signInWithCredential" + task.getException().toString());
}
// hideProgressDialog();
}
});
}
protected void successSignin(FirebaseUser user) {
Utils.d("GodotFireBase", "FB:Login:Success");
isFacebookConnected = true;
accessToken = AccessToken.getCurrentAccessToken();
try {
currentFBUser.put("uid", user.getUid());
currentFBUser.put("name", user.getDisplayName());
currentFBUser.put("email_id", user.getEmail());
currentFBUser.put("photo_uri", user.getPhotoUrl());
currentFBUser.put("token", accessToken.getToken().toString());
} catch (JSONException e) {
Utils.d("GodotFireBase", "FB:JSON:Error:" + e.toString());
}
getPermissions();
// call Script
Utils.callScriptFunc("Auth", "FacebookLogin", "true");
}
protected void successSignOut() {
isFacebookConnected = false;
currentFBUser = null;
currentFBUser = new JSONObject();
// call script.
Utils.callScriptFunc("Auth", "FacebookLogin", "false");
}
public String getUserDetails() {
return currentFBUser.toString();
}
public boolean isConnected() {
return isFacebookConnected;
}
public void onActivityResult(int requestCode, int resultCode, Intent data) {
// Result returned from launching the Intent from GoogleSignInApi.getSignInIntent(...);
callbackManager.onActivityResult(requestCode, resultCode, data);
}
public void onStart() {
mAuth.addAuthStateListener(mAuthListener);
}
public void onStop() {
if (mAuthListener != null) {
mAuth.removeAuthStateListener(mAuthListener);
}
isFacebookConnected = false;
activity = null;
mAccessTokenTracker.stopTracking();
mProfileTracker.stopTracking();
}
private static Activity activity = null;
private static FacebookSignIn mInstance = null;
// private static GameRequestDialog requestDialog;
private static CallbackManager callbackManager;
private static AccessTokenTracker mAccessTokenTracker;
private static ProfileTracker mProfileTracker;
private static AccessToken accessToken;
private static Profile profile;
private Boolean isFacebookConnected = false;
private JSONObject currentFBUser = new JSONObject();
private ArrayList mUserPermissions = new ArrayList<String>();
private FirebaseAuth mAuth;
private FirebaseAuth.AuthStateListener mAuthListener;
}
17
Source : FacebookHelper.java
with Apache License 2.0
from davideas
with Apache License 2.0
from davideas
public clreplaced FacebookHelper {
/* Constants */
public static final int RC_FACEBOOK_SIGN_IN = 64206;
private static final int RC_FACEBOOK_SHARE = 64207;
private static final FacebookHelper mInstance = new FacebookHelper();
public static final String FACEBOOK_PREFERENCES = "facebook_prefs";
public static final String FACEBOOK_USER_FIRST_NAME = "first_name";
public static final String FACEBOOK_USER_LAST_NAME = "last_name";
public static final String FACEBOOK_USER_ID = "id";
public static final String FACEBOOK_USER_EMAIL = "email";
public static final String FACEBOOK_USER_GENDER = "gender";
public static final String FACEBOOK_USER_BIRTHDAY = "birthday";
public static final String FACEBOOK_USER_LOCATION = "location";
public static final String FACEBOOK_USER_IMAGE_URL = "picture";
private static final String FACEBOOK_PERMISSION_PUBLIC_PROFILE = "public_profile";
private static final String FACEBOOK_PERMISSION_EMAIL = "email";
// Only friends that have logged in to my app
private static final String FACEBOOK_PERMISSION_USER_FRIENDS = "user_friends";
/* General obj */
private CallbackManager mCallbackManager;
private FacebookLoginResultCallback mFacebookLoginResultCallBack;
private LoginResult mLoginResult;
private AccessTokenTracker mAccessTokenTracker;
private ProfileTracker mProfileTracker;
private AccessToken mFacebookAccessToken;
private BitmapDrawable mUserImage;
private PreferencesService preferences;
/* User data */
private List<String> mReadPermissionsRequested;
private List<String> mUserDataFieldsRequested;
private Map<String, String> mUserData;
/**
* The interface Facebook login result callback.
*/
/* Interfaces */
public interface FacebookLoginResultCallback {
/**
* On facebook login success.
*
* @param result the result
*/
void onFacebookLoginSuccess(LoginResult result);
/**
* On facebook login cancel.
*/
void onFacebookLoginCancel();
/**
* On facebook login error.
*
* @param e the e
*/
void onFacebookLoginError(FacebookException e);
/**
* On facebook login image download failed.
*/
void onFacebookLoginImageDownloadFailed();
}
/**
* The interface Facebook share result callback.
*/
public interface FacebookShareResultCallback {
void onFacebookShareSuccess(Sharer.Result result);
void onFacebookShareCancel();
void onFacebookShareError(FacebookException error);
void onFacebookShareCannotShowDialog();
}
/*
* =================
* Constructor
* =================
*/
private FacebookHelper() {
}
/**
* Gets instance.
*
* @return the instance
*/
public static FacebookHelper getInstance() {
return mInstance;
}
/**
* Init helper.
* Once initialized, the clreplaced will:
* 1.Restore and hold user data if connected {@link #mUserData}
* 2.Initialize profile tracker to track changes of the user profile {@link #mProfileTracker}
* 3.Initialize access token to track changes of the Facebook access token {@link #mAccessTokenTracker}
*
* @param activity the activity
*/
public void initHelper(@NonNull Activity activity) {
mUserData = new HashMap<>();
initUser(activity);
initAccessTokenTracker();
initProfileTracker();
}
/*
* =================
* Actions
* =================
*/
/**
* Sign in to google account - without Google's log in button.
*
* @param activity the activity
* @param callback the callback to receive the method's result
*/
public void signIn(@NonNull Activity activity, @NonNull final FacebookLoginResultCallback callback) {
mCallbackManager = CallbackManager.Factory.create();
mFacebookLoginResultCallBack = callback;
registerCallBackManager(activity);
LoginManager.getInstance().setLoginBehavior(LoginBehavior.NATIVE_WITH_FALLBACK).logInWithPublishPermissions(activity, null);
}
/**
* Sign in to google account - with Google's log in button.
*
* @param activity the activity
* @param callback the callback to receive the method's result
* @param loginButton the login button replacedociated with this sign in
*/
public void signIn(@NonNull Activity activity, @NonNull final FacebookLoginResultCallback callback, @NonNull LoginButton loginButton) {
mCallbackManager = CallbackManager.Factory.create();
mFacebookLoginResultCallBack = callback;
initLoginButton(activity, loginButton);
registerCallBackManager(activity, loginButton);
}
/**
* Sign out.
*/
public void signOut() {
LoginManager.getInstance().logOut();
}
/**
* Share content on facebook wall
*
* @param activity the activity
* @param callback the callback to receive a result of this share
* @param url the url you wish to share
* @param quote the text you wish to replacedociate with the url shared
*/
private void shareLinkOnFacebook(@NonNull final Activity activity, @NonNull final FacebookShareResultCallback callback, @NonNull String url, @Nullable String quote) {
ShareDialog shareDialog = new ShareDialog(activity);
shareDialog.registerCallback(mCallbackManager, new FacebookCallback<Sharer.Result>() {
@Override
public void onSuccess(Sharer.Result result) {
callback.onFacebookShareSuccess(result);
}
@Override
public void onCancel() {
callback.onFacebookShareCancel();
}
@Override
public void onError(FacebookException error) {
callback.onFacebookShareError(error);
}
}, RC_FACEBOOK_SHARE);
if (ShareDialog.canShow(ShareLinkContent.clreplaced)) {
ShareLinkContent linkContent = new ShareLinkContent.Builder().setContentUrl(Uri.parse(url)).setQuote(quote).build();
shareDialog.show(linkContent);
} else {
callback.onFacebookShareCannotShowDialog();
}
}
/*
* =================
* Account info
* =================
*/
/**
* Is logged in boolean.
*
* @return the boolean result of if the user is currently connected
*/
public boolean isLoggedIn() {
AccessToken accessToken = AccessToken.getCurrentAccessToken();
return accessToken != null;
}
private List<String> getFacebookReadPermissions() {
List<String> facebookPermissions = new ArrayList<>();
facebookPermissions.add(FACEBOOK_PERMISSION_PUBLIC_PROFILE);
facebookPermissions.add(FACEBOOK_PERMISSION_EMAIL);
if (mReadPermissionsRequested != null) {
for (String permission : mReadPermissionsRequested) {
facebookPermissions.add(permission);
}
}
return facebookPermissions;
}
/*
* =================
* Init methods
* =================
*/
/**
* Init user if connected.
*
* @param activity the activity
*/
private void initUser(Activity activity) {
if (isLoggedIn()) {
// restore user data
String id = preferences.getString(FACEBOOK_USER_ID, null);
String fistName = preferences.getString(FACEBOOK_USER_FIRST_NAME, null);
String lastName = preferences.getString(FACEBOOK_USER_LAST_NAME, null);
String email = preferences.getString(FACEBOOK_USER_EMAIL, null);
String birthday = preferences.getString(FACEBOOK_USER_BIRTHDAY, null);
String gender = preferences.getString(FACEBOOK_USER_GENDER, null);
String location = preferences.getString(FACEBOOK_USER_LOCATION, null);
String imageUrl = preferences.getString(FACEBOOK_USER_IMAGE_URL, null);
// init data
mUserData.put(FACEBOOK_USER_ID, id);
mUserData.put(FACEBOOK_USER_FIRST_NAME, fistName);
mUserData.put(FACEBOOK_USER_LAST_NAME, lastName);
mUserData.put(FACEBOOK_USER_EMAIL, email);
mUserData.put(FACEBOOK_USER_BIRTHDAY, birthday);
mUserData.put(FACEBOOK_USER_GENDER, gender);
mUserData.put(FACEBOOK_USER_LOCATION, location);
mUserData.put(FACEBOOK_USER_IMAGE_URL, imageUrl);
downloadImageUrl(activity, imageUrl);
}
}
/**
* Init Google log in button.
*
* @param activity the activity
*/
private void initLoginButton(Activity activity, LoginButton loginButton) {
loginButton.setReadPermissions(getFacebookReadPermissions());
loginButton.setLoginBehavior(LoginBehavior.NATIVE_WITH_FALLBACK);
}
/**
* Register call back manager.
*
* @param activity the activity
*/
private void registerCallBackManager(final Activity activity) {
LoginManager.getInstance().registerCallback(mCallbackManager, new FacebookCallback<LoginResult>() {
@Override
public void onSuccess(LoginResult loginResult) {
mLoginResult = loginResult;
getUserProfile(activity);
}
@Override
public void onCancel() {
mFacebookLoginResultCallBack.onFacebookLoginCancel();
}
@Override
public void onError(FacebookException error) {
mFacebookLoginResultCallBack.onFacebookLoginError(error);
}
});
}
/**
* Register call back manager to Google log in button.
*
* @param activity the activity
* @param loginButton the login button
*/
private void registerCallBackManager(final Activity activity, LoginButton loginButton) {
loginButton.registerCallback(mCallbackManager, new FacebookCallback<LoginResult>() {
@Override
public void onSuccess(LoginResult loginResult) {
mLoginResult = loginResult;
getUserProfile(activity);
}
@Override
public void onCancel() {
mFacebookLoginResultCallBack.onFacebookLoginCancel();
}
@Override
public void onError(FacebookException error) {
mFacebookLoginResultCallBack.onFacebookLoginError(error);
}
});
}
private void initAccessTokenTracker() {
mAccessTokenTracker = new AccessTokenTracker() {
@Override
protected void onCurrentAccessTokenChanged(AccessToken oldAccessToken, AccessToken currentAccessToken) {
// Set the access token using
// currentAccessToken when it's loaded or set.
// If the access token is available already replacedign it.
mFacebookAccessToken = AccessToken.getCurrentAccessToken();
// Toast.makeText(mActivity, "Facebook current Access Token changed", Toast.LENGTH_SHORT)
// .show();
}
};
}
private void initProfileTracker() {
mProfileTracker = new ProfileTracker() {
@Override
protected void onCurrentProfileChanged(Profile oldProfile, Profile currentProfile) {
// Toast.makeText(mActivity, "Facebook current profile changed", Toast.LENGTH_SHORT)
// .show();
}
};
}
/*
* =================
* Helper methods
* =================
*/
/**
* Get requested user data from Facebook
*/
private void getUserProfile(final Activity activity) {
GraphRequest request = GraphRequest.newMeRequest(mLoginResult.getAccessToken(), new GraphRequest.GraphJSONObjectCallback() {
@Override
public void onCompleted(JSONObject object, GraphResponse response) {
// Get facebook data from login
parseFacebookUserData(activity, object);
}
});
Bundle parameters = new Bundle();
String[] params = { FACEBOOK_USER_ID, FACEBOOK_USER_FIRST_NAME, FACEBOOK_USER_LAST_NAME, FACEBOOK_USER_EMAIL, FACEBOOK_USER_BIRTHDAY, FACEBOOK_USER_GENDER, FACEBOOK_USER_LOCATION, FACEBOOK_USER_IMAGE_URL };
parameters.putString("fields", createStringParams(params));
request.setParameters(parameters);
request.executeAsync();
}
/**
* Extract data from object
*
* @param object json object received from facebook log in
*/
private void parseFacebookUserData(Activity activity, JSONObject object) {
HashMap<String, String> userPrefs = new HashMap<>();
String imageUrl = null;
try {
String id = object.getString("id");
mUserData.put(FACEBOOK_USER_ID, id);
userPrefs.put(FACEBOOK_USER_ID, id);
try {
URL profile_pic = new URL("https://graph.facebook.com/" + id + "/picture?width=200&height=150");
mUserData.put(FACEBOOK_USER_IMAGE_URL, profile_pic.toString());
userPrefs.put(FACEBOOK_USER_ID, profile_pic.toString());
imageUrl = profile_pic.toString();
} catch (MalformedURLException e) {
e.printStackTrace();
}
if (object.has("first_name")) {
String value = object.getString("first_name");
mUserData.put(FACEBOOK_USER_FIRST_NAME, value);
userPrefs.put(FACEBOOK_USER_FIRST_NAME, value);
}
if (object.has("last_name")) {
String value = object.getString("last_name");
mUserData.put(FACEBOOK_USER_LAST_NAME, value);
userPrefs.put(FACEBOOK_USER_ID, value);
}
if (object.has("email")) {
String value = object.getString("email");
mUserData.put(FACEBOOK_USER_EMAIL, value);
userPrefs.put(FACEBOOK_USER_ID, value);
}
if (object.has("gender")) {
String value = object.getString("gender");
mUserData.put(FACEBOOK_USER_GENDER, value);
userPrefs.put(FACEBOOK_USER_ID, value);
}
if (object.has("birthday")) {
String value = object.getString("birthday");
mUserData.put(FACEBOOK_USER_BIRTHDAY, value);
userPrefs.put(FACEBOOK_USER_ID, value);
}
if (object.has("location")) {
String value = object.getString("location");
mUserData.put(FACEBOOK_USER_LOCATION, value);
userPrefs.put(FACEBOOK_USER_ID, value);
}
} catch (JSONException e) {
// TODO: 26/07/2017 log error
}
preferences.putStringsFromMap(userPrefs);
if (imageUrl != null) {
downloadImageUrl(activity, imageUrl);
}
}
private void downloadImageUrl(final Activity activity, final String imageUrl) {
final SimpleTarget<Bitmap> target = new SimpleTarget<Bitmap>() {
@Override
public void onResourceReady(Bitmap bitmap, Transition<? super Bitmap> transition) {
mUserImage = new BitmapDrawable(activity.getResources(), bitmap);
mFacebookLoginResultCallBack.onFacebookLoginSuccess(mLoginResult);
}
@Override
public void onLoadFailed(@Nullable Drawable errorDrawable) {
super.onLoadFailed(errorDrawable);
mFacebookLoginResultCallBack.onFacebookLoginImageDownloadFailed();
}
};
new Handler(Looper.getMainLooper()).post(new Runnable() {
@Override
public void run() {
RequestOptions options = new RequestOptions().placeholder(R.mipmap.ic_launcher_round);
Glide.with(activity.getApplicationContext()).asBitmap().apply(options).load(imageUrl).into(target);
}
});
}
/**
* Create single string containing and formatted appropriately
*
* @param params Array of permissions to receive from Facebook
* @return Formatted string
*/
private String createStringParams(String[] params) {
if (mUserDataFieldsRequested != null) {
ArrayList<String> paramsList = new ArrayList<>(Arrays.asList(params));
for (String param : mUserDataFieldsRequested) {
paramsList.add(param);
}
params = new String[paramsList.size()];
params = paramsList.toArray(params);
}
StringBuilder builder = new StringBuilder();
for (String param : params) {
builder.append(param + ",");
}
builder.deleteCharAt(builder.length() - 1);
return builder.toString();
}
/*
* =================
* Getter methods
* =================
*/
/**
* Gets facebook callback manager.
*
* @return the facebook callback manager
*/
public CallbackManager getFacebookCallbackManager() {
return this.mCallbackManager;
}
/**
* Gets facebook access token tracker.
*
* @return the facebook access token tracker
*/
public AccessTokenTracker getFacebookAccessTokenTracker() {
return this.mAccessTokenTracker;
}
/**
* Gets facebook profile tracker.
*
* @return the facebook profile tracker
*/
public ProfileTracker getFacebookProfileTracker() {
return this.mProfileTracker;
}
/**
* Gets facebook access token.
*
* @return the facebook access token
*/
public AccessToken getFacebookAccessToken() {
return this.mFacebookAccessToken;
}
/**
* Gets user specific data field.
* The user data keys are the constants at the start of this clreplaced, for example:
* {@value FACEBOOK_PERMISSION_EMAIL}
*
* @param field the field/key you wish to receive
* @return the user data field
*/
public String getUserDataField(String field) {
return mUserData.get(field);
}
/**
* Gets all user data in key value Map.
* The user data keys are the constants at the start of this clreplaced, for example:
* {@value FACEBOOK_PERMISSION_EMAIL}
*
* @return the user data
*/
public Map<String, String> getUserData() {
return this.mUserData;
}
public Drawable getUserImage() {
return this.mUserImage;
}
/**
* Gets facebook hash to register in Facebook developer's console.
*/
public void getFacebookHash(@NonNull Activity activity) {
try {
PackageInfo info = activity.getPackageManager().getPackageInfo("il.co.cambium.sport5radio", PackageManager.GET_SIGNATURES);
for (Signature signature : info.signatures) {
MessageDigest md = MessageDigest.getInstance("SHA");
md.update(signature.toByteArray());
Log.d("KeyHash:", Base64.encodeToString(md.digest(), Base64.DEFAULT));
}
} catch (PackageManager.NameNotFoundException e) {
Toast.makeText(activity, "PackageManager.NameNotFoundException ", Toast.LENGTH_SHORT).show();
} catch (NoSuchAlgorithmException e) {
Toast.makeText(activity, "NoSuchAlgorithmException", Toast.LENGTH_SHORT).show();
}
}
/*
* =================
* Setter methods
* =================
*/
/**
* Default read permission asked for are:
* <p>
* {@value FACEBOOK_PERMISSION_PUBLIC_PROFILE}
* {@value FACEBOOK_PERMISSION_EMAIL}
* <p>
* If you require more read permissions, you may preplaced them here in a form of a list
* After {@link #initHelper(Activity)} ,
* And before {@link #signIn(Activity, FacebookLoginResultCallback)}, {@link #signIn(Activity, FacebookLoginResultCallback, LoginButton)}
*
* @param readPermissions the read permissions
*/
public void setReadPermissions(List<String> readPermissions) {
this.mReadPermissionsRequested = readPermissions;
}
/**
* Default user data fetched are:
* <p>
* {@value FACEBOOK_USER_FIRST_NAME}
* {@value FACEBOOK_USER_LAST_NAME}
* {@value FACEBOOK_USER_EMAIL}
* {@value FACEBOOK_USER_BIRTHDAY}
* {@value FACEBOOK_USER_ID}
* {@value FACEBOOK_USER_GENDER}
* {@value FACEBOOK_USER_LOCATION}
* {@value FACEBOOK_USER_IMAGE_URL}
* <p>
* If you require more user data, you may preplaced the params here in a form of a list
*
* @param userDataRequested the user data fields requested
*/
public void setUserDataRequested(List<String> userDataRequested) {
this.mUserDataFieldsRequested = userDataRequested;
}
}
17
Source : LoginActivity.java
with Mozilla Public License 2.0
from clementf2b
with Mozilla Public License 2.0
from clementf2b
public clreplaced LoginActivity extends AppCompatActivity {
private final String TAG = this.getClreplaced().getSimpleName();
private RelativeLayout activity_login_layout;
private EditText mLoginEmailField;
private EditText mLoginPreplacedwordField;
private Button mLoginBtn;
private Button mGoRegister;
private Button mFacebookBtn;
private Button mGoogleBtn;
private ImageButton preplacedwordVisibleButton;
private CheckBox mRemeberPreplacedwordCheckBox;
private boolean pw_shown;
private FirebaseAuth mAuth;
private DatabaseReference mDatabaseUsers;
private ProgressDialog mProgress;
private static final int RC_SIGN_IN = 1;
private GoogleApiClient mGoogleApiClient;
private FirebaseAuth.AuthStateListener mAuthListener;
// facebook login use
private CallbackManager mCallbackManager;
private AccessToken accessToken;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
supportRequestWindowFeature(Window.FEATURE_ACTION_BAR_OVERLAY);
setContentView(R.layout.activity_login);
activity_login_layout = (RelativeLayout) findViewById(R.id.activity_login_layout);
CheckConnectivity check = new CheckConnectivity();
Boolean conn = check.checkNow(this.getApplicationContext());
if (conn == true) {
// run your normal code path here
Log.d(TAG, "Network connected");
} else {
// Send a warning message to the user
Snackbar snackbar = Snackbar.make(activity_login_layout, "No Internet Access", Snackbar.LENGTH_LONG);
snackbar.show();
}
getSupportActionBar().setBackgroundDrawable(new ColorDrawable(Color.parseColor("#00000000")));
getSupportActionBar().setDisplayHomeAsUpEnabled(true);
getSupportActionBar().setLogo(R.mipmap.app_icon);
getSupportActionBar().setDisplayUseLogoEnabled(true);
SpannableString s = new SpannableString("FaceT");
s.setSpan(new TypefaceSpan(LoginActivity.this, FontManager.CUSTOM_FONT), 0, s.length(), Spannable.SPAN_EXCLUSIVE_EXCLUSIVE);
getSupportActionBar().setreplacedle(s);
Typeface fontType = FontManager.getTypeface(getApplicationContext(), FontManager.APP_FONT);
FontManager.markAsIconContainer(findViewById(R.id.activity_login_layout), fontType);
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.KITKAT) {
Window window = getWindow();
// Translucent status bar
window.setFlags(WindowManager.LayoutParams.FLAG_TRANSLUCENT_STATUS, WindowManager.LayoutParams.FLAG_TRANSLUCENT_STATUS);
}
mAuth = FirebaseAuth.getInstance();
mAuthListener = new FirebaseAuth.AuthStateListener() {
@Override
public void onAuthStateChanged(@NonNull FirebaseAuth firebaseAuth) {
FirebaseUser user = firebaseAuth.getCurrentUser();
if (user != null) {
// User is signed in
Log.d(TAG, "onAuthStateChanged:signed_in:" + user.getUid());
} else {
// User is signed out
Log.d(TAG, "onAuthStateChanged:signed_out");
}
}
};
mDatabaseUsers = FirebaseDatabase.getInstance().getReference().child("Users");
mDatabaseUsers.keepSynced(true);
mProgress = new ProgressDialog(this);
mLoginEmailField = (EditText) findViewById(R.id.loginemailfield);
mLoginEmailField.setBackgroundColor(111);
mLoginPreplacedwordField = (EditText) findViewById(R.id.loginpreplacedwordfield);
preplacedwordVisibleButton = (ImageButton) findViewById(R.id.preplacedwordfield_visible_button);
mLoginBtn = (Button) findViewById(R.id.login_btn);
mGoRegister = (Button) findViewById(R.id.goregister_btn);
mGoogleBtn = (Button) findViewById(R.id.signingooglebtn);
mFacebookBtn = (Button) findViewById(R.id.facebook_login_btn);
mRemeberPreplacedwordCheckBox = (CheckBox) findViewById(R.id.remember_pw_checkbox);
SharedPreferences sharedPreferences = getSharedPreferences("LoginData", Context.MODE_PRIVATE);
mLoginEmailField.setText(sharedPreferences.getString("email", ""));
mLoginPreplacedwordField.setText(sharedPreferences.getString("preplacedword", ""));
mRemeberPreplacedwordCheckBox.setOnCheckedChangeListener(new CheckBox.OnCheckedChangeListener() {
@Override
public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) {
if (isChecked) {
Log.d(TAG, "check box is Checked");
Snackbar snackbar = Snackbar.make(activity_login_layout, "Login data will be stored", Snackbar.LENGTH_LONG);
snackbar.show();
}
}
});
mLoginBtn.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
if (mRemeberPreplacedwordCheckBox.isChecked())
saveLoginData();
checklogin();
}
});
// if clicked the simple login will fade in and social login will disappear
YoYo.with(Techniques.FlipInX).duration(1000).playOn(findViewById(R.id.signingooglebtn));
YoYo.with(Techniques.FlipInX).duration(1000).playOn(findViewById(R.id.preplacedwordfield_visible_button));
YoYo.with(Techniques.FlipInX).duration(1000).playOn(findViewById(R.id.loginemailfield));
YoYo.with(Techniques.FlipInX).duration(1000).playOn(findViewById(R.id.loginpreplacedwordfield));
YoYo.with(Techniques.FlipInX).duration(1000).playOn(findViewById(R.id.login_btn));
YoYo.with(Techniques.FlipInX).duration(1000).playOn(findViewById(R.id.facebook_login_btn));
// show pw
pw_shown = false;
preplacedwordVisibleButton.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
if (pw_shown == true) {
// view pw
mLoginPreplacedwordField.setTransformationMethod(HideReturnsTransformationMethod.getInstance());
preplacedwordVisibleButton.setImageResource(R.mipmap.ic_visibility_white_24dp);
pw_shown = false;
} else {
// hide pw
mLoginPreplacedwordField.setTransformationMethod(PreplacedwordTransformationMethod.getInstance());
preplacedwordVisibleButton.setImageResource(R.mipmap.ic_visibility_off_white_24dp);
pw_shown = true;
}
}
});
mGoRegister.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
Intent regIntent = new Intent(LoginActivity.this, RegisterActivity.clreplaced);
// regIntent.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
startActivity(regIntent);
}
});
// ------------Google Sign in----------
// Configure Google Sign In
GoogleSignInOptions gso = new GoogleSignInOptions.Builder(GoogleSignInOptions.DEFAULT_SIGN_IN).requestIdToken(getString(R.string.default_web_client_id)).requestEmail().build();
// ATTENTION: This "addApi(AppIndex.API)"was auto-generated to implement the App Indexing API.
// See https://g.co/AppIndexing/AndroidStudio for more information.
mGoogleApiClient = new GoogleApiClient.Builder(this).enableAutoManage(this, new GoogleApiClient.OnConnectionFailedListener() {
@Override
public void onConnectionFailed(@NonNull ConnectionResult connectionResult) {
}
}).addApi(Auth.GOOGLE_SIGN_IN_API, gso).addApi(AppIndex.API).build();
mGoogleBtn.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
signIn();
}
});
// Initialize Facebook Login button
mCallbackManager = CallbackManager.Factory.create();
LoginManager.getInstance().registerCallback(mCallbackManager, new FacebookCallback<LoginResult>() {
@Override
public void onSuccess(LoginResult loginResult) {
Log.d(TAG, "facebook:onSuccess:" + loginResult);
// accessToken之後或許還會用到 先存起來
accessToken = loginResult.getAccessToken();
handleFacebookAccessToken(accessToken);
Log.d("FB", "access token got : " + accessToken);
// send request and call graph api
final String[] fbname = { "" };
GraphRequest request = GraphRequest.newMeRequest(accessToken, new GraphRequest.GraphJSONObjectCallback() {
// 當RESPONSE回來的時候
@Override
public void onCompleted(JSONObject object, GraphResponse response) {
// 讀出姓名 ID FB個人頁面連結
Log.d(TAG + "FB", "complete");
Log.d("FB object", object.toString());
Log.d("FB graphResponse", response.toString());
Log.d("FB", object.optString("name"));
Log.d("FB", object.optString("link"));
Log.d("FB", object.optString("id"));
Log.d("FB", object.optString("email"));
Log.d("FB", object.optString("birthday"));
fbname[0] = object.optString("name");
}
});
// 包入你想要得到的資料 送出request
Bundle parameters = new Bundle();
parameters.putString("fields", "id,name,link,email,birthday,gender,picture");
request.setParameters(parameters);
request.executeAsync();
// mProgress.dismiss();
// successDialog("Login Successful", " Welcome to FaceT =] ");
}
@Override
public void onCancel() {
// dialog("Login Error Message","Login Cancel");
// mProgress.dismiss();
}
@Override
public void onError(FacebookException exception) {
// dialog("Login Error Message",exception.getMessage());
// mProgress.dismiss();
}
});
mFacebookBtn.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
// Facebook Login
// mProgress.setMessage("Starting Sign in ...");
// mProgress.show();
LoginManager.getInstance().logInWithReadPermissions(LoginActivity.this, Arrays.asList("public_profile", "email", "user_birthday", "user_friends"));
}
});
}
// protected void successDialog(String replacedle, String message) {
// AlertDialog.Builder builder = new AlertDialog.Builder(LoginActivity.this);
// builder.setMessage(message);
// builder.setreplacedle(replacedle);
// builder.setIcon(R.drawable.ic_person_black_24px);
// builder.setPositiveButton("Ok", new DialogInterface.OnClickListener() {
// @Override
// public void onClick(DialogInterface dialog, int which) {
// dialog.dismiss();
// // LoginActivity.this.finish();
// }
// });
// builder.create().show();
// }
private void saveLoginData() {
SharedPreferences sharedPreferences = getApplicationContext().getSharedPreferences("LoginData", Context.MODE_PRIVATE);
SharedPreferences.Editor editor = sharedPreferences.edit();
if (!mLoginEmailField.getText().toString().trim().equals("") || !mLoginPreplacedwordField.getText().toString().trim().equals("")) {
editor.putString("email", mLoginEmailField.getText().toString());
editor.putString("preplacedword", mLoginPreplacedwordField.getText().toString());
editor.commit();
}
}
@Override
public boolean onSupportNavigateUp() {
this.finish();
return true;
}
private void signIn() {
Intent signInIntent = Auth.GoogleSignInApi.getSignInIntent(mGoogleApiClient);
startActivityForResult(signInIntent, RC_SIGN_IN);
}
@Override
public void onActivityResult(int requestCode, int resultCode, Intent data) {
super.onActivityResult(requestCode, resultCode, data);
// Result returned from launching the Intent from GoogleSignInApi.getSignInIntent(...);
if (requestCode == RC_SIGN_IN) {
GoogleSignInResult result = Auth.GoogleSignInApi.getSignInResultFromIntent(data);
mProgress.setMessage("Starting Sign in ...");
mProgress.show();
if (result.isSuccess()) {
// Google Sign In was successful, authenticate with Firebase
GoogleSignInAccount account = result.getSignInAccount();
firebaseAuthWithGoogle(account);
// successDialog("Login Successful", " Welcome to FaceT =] ");
} else {
// Google Sign In failed, update UI appropriately
// ...
mProgress.dismiss();
}
}
mCallbackManager.onActivityResult(requestCode, resultCode, data);
}
private void firebaseAuthWithGoogle(GoogleSignInAccount acct) {
Log.d(TAG, "firebaseAuthWithGoogle:" + acct.getId());
final AuthCredential credential = GoogleAuthProvider.getCredential(acct.getIdToken(), null);
mAuth.signInWithCredential(credential).addOnCompleteListener(this, new OnCompleteListener<AuthResult>() {
@Override
public void onComplete(@NonNull Task<AuthResult> task) {
Log.d(TAG, "signInWithCredential:onComplete:" + task.isSuccessful());
// If sign in fails, display a message to the user. If sign in succeeds
// the auth state listener will be notified and logic to handle the
// signed in user can be handled in the listener.
if (!task.isSuccessful()) {
Log.w(TAG, "signInWithCredential", task.getException());
Toast.makeText(LoginActivity.this, "Authentication failed.", Toast.LENGTH_SHORT).show();
} else {
mProgress.dismiss();
Snackbar snackbar = Snackbar.make(activity_login_layout, "Login successfully", Snackbar.LENGTH_SHORT);
snackbar.show();
checkUserExist();
}
}
});
}
protected void alertDialog(String replacedle, String message) {
AlertDialog.Builder builder = new AlertDialog.Builder(LoginActivity.this);
builder.setMessage(message);
builder.setreplacedle(replacedle);
builder.setIcon(R.drawable.ic_error_black_24px);
builder.setPositiveButton("Ok", new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
dialog.dismiss();
// LoginActivity.this.finish();
}
});
builder.create().show();
}
private void handleFacebookAccessToken(AccessToken token) {
Log.d(TAG, "handleFacebookAccessToken:" + token);
final AuthCredential credential = FacebookAuthProvider.getCredential(token.getToken());
mAuth.signInWithCredential(credential).addOnCompleteListener(this, new OnCompleteListener<AuthResult>() {
@Override
public void onComplete(@NonNull Task<AuthResult> task) {
Log.d(TAG, "signInWithCredential:onComplete:" + task.isSuccessful());
// If sign in fails, display a message to the user. If sign in succeeds
// the auth state listener will be notified and logic to handle the
// signed in user can be handled in the listener.
if (!task.isSuccessful()) {
Log.w(TAG, "signInWithCredential", task.getException());
Snackbar snackbar = Snackbar.make(activity_login_layout, "Authentication failed.", Snackbar.LENGTH_SHORT);
snackbar.show();
} else {
Snackbar snackbar = Snackbar.make(activity_login_layout, "Login successfully", Snackbar.LENGTH_SHORT);
snackbar.show();
mProgress.dismiss();
checkUserExist();
}
}
}).addOnFailureListener(new OnFailureListener() {
@Override
public void onFailure(@NonNull Exception e) {
mProgress.dismiss();
Snackbar snackbar = Snackbar.make(activity_login_layout, e.toString(), Snackbar.LENGTH_SHORT);
snackbar.show();
}
});
}
private void checklogin() {
String email = mLoginEmailField.getText().toString().trim();
final String preplacedword = mLoginPreplacedwordField.getText().toString().trim();
if (!TextUtils.isEmpty(email) && !TextUtils.isEmpty(preplacedword)) {
mProgress.setMessage("Checking Login ...");
mProgress.show();
mAuth.signInWithEmailAndPreplacedword(email, preplacedword).addOnCompleteListener(new OnCompleteListener<AuthResult>() {
@Override
public void onComplete(@NonNull Task<AuthResult> task) {
if (task.isSuccessful()) {
mProgress.dismiss();
// successDialog("Login Successful", " Welcome to FaceT =] ");
checkUserExist();
}
}
}).addOnFailureListener(new OnFailureListener() {
@Override
public void onFailure(@NonNull Exception e) {
mProgress.dismiss();
YoYo.with(Techniques.Shake).playOn(findViewById(R.id.loginemailfield));
YoYo.with(Techniques.Shake).playOn(findViewById(R.id.loginpreplacedwordfield));
YoYo.with(Techniques.Shake).playOn(findViewById(R.id.loginemailbg));
YoYo.with(Techniques.Shake).playOn(findViewById(R.id.loginpwbg));
// Log.d(TAG, e.toString() + " / " + e.getMessage() + " / " + e.getLocalizedMessage());
if (preplacedword.length() < 6) {
alertDialog("Login Error", "Preplacedword should be at least 6 characters");
} else {
String errorMsg = e.getMessage();
alertDialog("Login Error", errorMsg);
}
}
});
}
}
private void checkUserExist() {
if (mAuth.getCurrentUser() != null) {
final String user_id = mAuth.getCurrentUser().getUid();
mDatabaseUsers.addValueEventListener(new ValueEventListener() {
@Override
public void onDataChange(DataSnapshot dataSnapshot) {
if (dataSnapshot.hasChild(user_id)) {
// Intent mainIntent = new Intent(LoginActivity.this, MainActivity.clreplaced);
// // mainIntent.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
// startActivity(mainIntent);
LoginActivity.this.finish();
} else {
Intent setupIntent = new Intent(LoginActivity.this, ProfileEditActivity.clreplaced);
// setupIntent.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
startActivity(setupIntent);
}
}
@Override
public void onCancelled(DatabaseError databaseError) {
}
});
}
}
/**
* ATTENTION: This was auto-generated to implement the App Indexing API.
* See https://g.co/AppIndexing/AndroidStudio for more information.
*/
public Action getIndexApiAction() {
Thing object = new Thing.Builder().setName(// TODO: Define a replacedle for the content shown.
"Login Page").setUrl(Uri.parse("http://[ENTER-YOUR-URL-HERE]")).build();
return new Action.Builder(Action.TYPE_VIEW).setObject(object).setActionStatus(Action.STATUS_TYPE_COMPLETED).build();
}
@Override
public void onStart() {
super.onStart();
// ATTENTION: This was auto-generated to implement the App Indexing API.
// See https://g.co/AppIndexing/AndroidStudio for more information.
mGoogleApiClient.connect();
AppIndex.AppIndexApi.start(mGoogleApiClient, getIndexApiAction());
mAuth.addAuthStateListener(mAuthListener);
}
@Override
public void onStop() {
super.onStop();
// ATTENTION: This was auto-generated to implement the App Indexing API.
// See https://g.co/AppIndexing/AndroidStudio for more information.
AppIndex.AppIndexApi.end(mGoogleApiClient, getIndexApiAction());
mGoogleApiClient.disconnect();
if (mAuthListener != null) {
mAuth.removeAuthStateListener(mAuthListener);
}
}
@Override
protected void onPause() {
super.onPause();
// Logs 'app deactivate' App Event.
AppEventsLogger.deactivateApp(this);
}
@Override
protected void onResume() {
super.onResume();
// Logs 'install' and 'app activate' App Events.
AppEventsLogger.activateApp(this);
}
}
16
Source : LoginPresenter.java
with Apache License 2.0
from xujiaji
with Apache License 2.0
from xujiaji
@Override
public void requestFacebook(LoginResult loginResult) {
AccessToken accessToken = loginResult.getAccessToken();
NetRequest.Instance().facebookLogin(accessToken.getUserId(), MD5Util.getMD5(accessToken.getUserId()), new NetRequest.RequestListener<User>() {
@Override
public void success(User user) {
view.callLoginSuccess();
}
@Override
public void error(String err) {
view.callLoginFail(err);
}
});
}
16
Source : LoginActivity.java
with MIT License
from IramML
with MIT License
from IramML
public clreplaced LoginActivity extends AppCompatActivity implements GoogleApiClient.OnConnectionFailedListener {
private GoogleApiClient googleApiClient;
public static final int SIGN_IN_CODE_GOOGLE = 157;
Button btnSignIn, btnLogIn;
FirebaseHelper firebaseHelper;
GoogleSignInAccount account;
// facebook
CallbackManager mFacebookCallbackManager;
LoginManager mLoginManager;
AccessToken accessToken = AccessToken.getCurrentAccessToken();
boolean isLoggedIn = accessToken != null && !accessToken.isExpired();
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_login);
firebaseHelper = new FirebaseHelper(this);
FancyButton signInButtonGoogle = findViewById(R.id.login_button_Google);
FancyButton signInButtonFacebook = findViewById(R.id.facebookLogin);
GoogleSignInOptions gso = new GoogleSignInOptions.Builder(GoogleSignInOptions.DEFAULT_SIGN_IN).requestEmail().build();
googleApiClient = new GoogleApiClient.Builder(this).enableAutoManage(this, this).addApi(Auth.GOOGLE_SIGN_IN_API, gso).build();
signInButtonGoogle.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
Intent intent = Auth.GoogleSignInApi.getSignInIntent(googleApiClient);
startActivityForResult(intent, SIGN_IN_CODE_GOOGLE);
}
});
setupFacebookStuff();
signInButtonFacebook.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
if (AccessToken.getCurrentAccessToken() != null) {
mLoginManager.logOut();
} else {
mLoginManager.logInWithReadPermissions(LoginActivity.this, Arrays.asList("email", "user_birthday", "public_profile"));
}
}
});
btnSignIn = findViewById(R.id.btnSignin);
btnLogIn = findViewById(R.id.btnLogin);
btnSignIn.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
firebaseHelper.showRegistrerDialog();
}
});
btnLogIn.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
firebaseHelper.showLoginDialog();
}
});
}
private void verifyGoogleAccount() {
OptionalPendingResult<GoogleSignInResult> opr = Auth.GoogleSignInApi.silentSignIn(googleApiClient);
if (opr.isDone()) {
GoogleSignInResult result = opr.get();
if (result.isSuccess())
firebaseHelper.loginSuccess();
}
}
@Override
protected void onStart() {
super.onStart();
if (isLoggedIn) {
startActivity(new Intent(LoginActivity.this, HomeActivity.clreplaced));
finish();
}
verifyGoogleAccount();
}
@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
super.onActivityResult(requestCode, resultCode, data);
if (requestCode == SIGN_IN_CODE_GOOGLE) {
// Google
GoogleSignInResult result = Auth.GoogleSignInApi.getSignInResultFromIntent(data);
handleSignInResult(result);
}
mFacebookCallbackManager.onActivityResult(requestCode, resultCode, data);
}
private void handleSignInResult(GoogleSignInResult result) {
if (result.isSuccess()) {
account = result.getSignInAccount();
firebaseHelper.registerByGoogleAccount(account);
} else {
ShowMessage.messageError(this, Errors.ERROR_LOGIN_GOOGLE);
}
}
private void setupFacebookStuff() {
// This should normally be on your application clreplaced
FacebookSdk.sdkInitialize(getApplicationContext());
mLoginManager = LoginManager.getInstance();
mFacebookCallbackManager = CallbackManager.Factory.create();
LoginManager.getInstance().registerCallback(mFacebookCallbackManager, new FacebookCallback<LoginResult>() {
@Override
public void onSuccess(LoginResult loginResult) {
// login
firebaseHelper.registerByFacebookAccount();
}
@Override
public void onCancel() {
Toast.makeText(LoginActivity.this, "The login was canceled", Toast.LENGTH_SHORT).show();
}
@Override
public void onError(FacebookException error) {
Toast.makeText(LoginActivity.this, "There was an error in the login", Toast.LENGTH_SHORT).show();
}
});
}
@Override
public void onConnectionFailed(@NonNull ConnectionResult connectionResult) {
ShowMessage.messageError(this, Errors.ERROR_LOGIN_GOOGLE);
}
@Override
public void onPointerCaptureChanged(boolean hasCapture) {
}
}
See More Examples