Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- package chat.madating;
- import android.app.Activity;
- import android.content.Context;
- import android.content.Intent;
- import android.location.Location;
- import android.location.LocationListener;
- import android.location.LocationManager;
- import android.net.ConnectivityManager;
- import android.net.NetworkInfo;
- import android.os.Bundle;
- import android.support.design.widget.Snackbar;
- import android.util.Log;
- import android.view.View;
- import android.widget.Button;
- import android.widget.EditText;
- import android.widget.RelativeLayout;
- import com.facebook.AccessToken;
- import com.facebook.GraphRequest;
- import com.facebook.GraphResponse;
- import com.facebook.ads.AdSize;
- import com.google.android.gms.ads.AdRequest;
- import com.google.android.gms.ads.AdView;
- import com.parse.LogInCallback;
- import com.parse.ParseException;
- import com.parse.ParseFacebookUtils;
- import com.parse.ParseInstallation;
- import com.parse.ParseUser;
- import com.parse.SaveCallback;
- import org.json.JSONObject;
- import com.facebook.ads.*;
- import java.io.IOException;
- import java.util.ArrayList;
- import chat.madating.R;
- import chat.madating.parsehelper.User;
- @SuppressWarnings("ResourceType")
- public class LoginActivity extends Activity {
- private RelativeLayout mLoginLayout;
- Button mSignInButton, mSignUpButton, mFacebookLoginButton;
- EditText mLogin, mPassword;
- OnClick onClickListener;
- private LocationManager mLocationManager;
- private LocationListener mLocationListener;
- private Location myLocation;
- private AdView adView;
- @Override
- protected void onCreate(Bundle savedInstanceState) {
- super.onCreate(savedInstanceState);
- setContentView(R.layout.activity_login);
- RelativeLayout adViewContainer = (RelativeLayout) findViewById(R.id.adViewContainer);
- adView = new AdView(this,1670296059907230_1681918298745006, AdSize.BANNER_HEIGHT_50);
- adViewContainer.addView(adView);
- adView.loadAd();
- mLoginLayout = (RelativeLayout) findViewById(R.id.layout_login);
- onClickListener = new OnClick();
- mSignInButton = (Button) findViewById(R.id.sign_in);
- mSignUpButton = (Button) findViewById(R.id.sign_up);
- mFacebookLoginButton = (Button) findViewById(R.id.facebook_sign_in);
- mLogin = (EditText) findViewById(R.id.login);
- mPassword = (EditText) findViewById(R.id.password);
- mSignInButton.setOnClickListener(onClickListener);
- mSignUpButton.setOnClickListener(onClickListener);
- mFacebookLoginButton.setOnClickListener(onClickListener);
- }
- @Override
- protected void onDestroy() {
- adView.destroy();
- super.onDestroy();
- }
- @Override
- protected void onResume() {
- super.onResume();
- if(ParseUser.getCurrentUser() != null){
- Log.d("myapp:LoginActivity","currentUser exist");
- Intent mainIntent = new Intent(LoginActivity.this, MainActivity.class);
- startActivity(mainIntent);
- LoginActivity.this.finish();
- }
- Log.d("myapp:LoginActivity", "onResume");
- }
- private class OnClick implements View.OnClickListener{
- @Override
- public void onClick(View v) {
- if (isInternetAvailable()) {
- switch (v.getId()) {
- case R.id.sign_in:
- Log.d("OnClick", "SignInStart");
- String username = mLogin.getText().toString();
- String password = mPassword.getText().toString();
- ParseUser.logInInBackground(username, password, new LogInCallback() {
- @Override
- public void done(ParseUser parseUser, ParseException e) {
- if (parseUser != null) {
- Log.d("OnClick", "User");
- Intent mainIntent = new Intent(LoginActivity.this, MainActivity.class);
- ParseInstallation.getCurrentInstallation().put("user", parseUser);
- ParseInstallation.getCurrentInstallation().saveInBackground();
- ((User) parseUser).setInstallation(ParseInstallation.getCurrentInstallation());
- parseUser.saveInBackground();
- startActivity(mainIntent);
- LoginActivity.this.finish();
- } else {
- Log.d("OnClick", e.toString());
- }
- }
- });
- break;
- case R.id.sign_up:
- Intent signUpIntent = new Intent(LoginActivity.this, SignUpActivity.class);
- LoginActivity.this.startActivityForResult(signUpIntent, Constants.REQ_CODE_SIGN_UP);
- break;
- case R.id.facebook_sign_in:
- ArrayList<String> permissions = new ArrayList<String>();
- permissions.add("public_profile");
- permissions.add("email");
- permissions.add("user_birthday");
- ParseFacebookUtils.logInWithReadPermissionsInBackground(LoginActivity.this, permissions, new LogInCallback() {
- @Override
- public void done(final ParseUser parseUser, ParseException err) {
- final User user = (User) parseUser;
- if (user == null && err != null) {
- Log.d("MyApp", "Uh oh. The user cancelled the Facebook login." + err.toString());
- } else if (user.isNew()) {
- ParseInstallation.getCurrentInstallation().put("user", user);
- ParseInstallation.getCurrentInstallation().saveInBackground();
- Log.d("MyApp", "New user");
- GraphRequest request = GraphRequest.newMeRequest(AccessToken.getCurrentAccessToken(), new GraphRequest.GraphJSONObjectCallback() {
- @Override
- public void onCompleted(JSONObject jsonObject, GraphResponse graphResponse) {
- Log.d("MyApp", "Complete graph request");
- if (jsonObject == null)
- Log.d("MyApp", "jsonObject is null");
- else
- Log.d("MyApp", jsonObject.toString());
- final String email = graphResponse.getJSONObject().optString("email");
- final String nickname = graphResponse.getJSONObject().optString("first_name") + " " + graphResponse.getJSONObject().optString("last_name");
- user.setNickname(nickname);
- user.setInstallation(ParseInstallation.getCurrentInstallation());
- user.setEmail(email);
- user.saveInBackground(new SaveCallback() {
- @Override
- public void done(ParseException e) {
- if(e != null) {
- switch (e.getCode()) {
- case ParseException.EMAIL_TAKEN:
- Log.d("MyApp", "email taken");
- break;
- default:
- Log.d("MyApp", e.toString());
- break;
- }
- }
- }
- });
- }
- });
- Bundle parameters = new Bundle();
- parameters.putString("fields", "id,email,gender,first_name,last_name");
- request.setParameters(parameters);
- request.executeAsync();
- Intent mainIntent = new Intent(LoginActivity.this, MainActivity.class);
- mainIntent.putExtra(Constants.ARG_AUTH_METHOD, Constants.AUTH_FACEBOOK);
- startActivity(mainIntent);
- LoginActivity.this.finish();
- } else {
- Intent mainIntent = new Intent(LoginActivity.this, MainActivity.class);
- ParseInstallation.getCurrentInstallation().put("user", user);
- ParseInstallation.getCurrentInstallation().saveInBackground();
- user.setInstallation(ParseInstallation.getCurrentInstallation());
- user.saveInBackground();
- mainIntent.putExtra(Constants.ARG_AUTH_METHOD, Constants.AUTH_FACEBOOK);
- startActivity(mainIntent);
- LoginActivity.this.finish();
- }
- }
- });
- break;
- }
- } else {
- showInternetConnectionLostMessage();
- }
- }
- }
- public void showInternetConnectionLostMessage(){
- Snackbar.make(mLoginLayout,"Internet connection is lost", Snackbar.LENGTH_SHORT).show();
- }
- public boolean isInternetAvailable(){
- ConnectivityManager cm =
- (ConnectivityManager) getSystemService(Context.CONNECTIVITY_SERVICE);
- NetworkInfo netInfo = cm.getActiveNetworkInfo();
- return netInfo != null && netInfo.isConnectedOrConnecting();
- }
- @Override
- protected void onActivityResult(int requestCode, int resultCode, Intent data) {
- super.onActivityResult(requestCode, resultCode, data);
- ParseFacebookUtils.onActivityResult(requestCode, resultCode, data);
- switch(resultCode)
- {
- case Constants.RES_CODE_SIGN_UP_SUCCESS: {
- Intent mainIntent = new Intent(LoginActivity.this, MainActivity.class);
- startActivity(mainIntent);
- }
- }
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement