Advertisement
Guest User

Untitled

a guest
Feb 22nd, 2016
103
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 11.11 KB | None | 0 0
  1. package chat.madating;
  2.  
  3. import android.app.Activity;
  4. import android.content.Context;
  5. import android.content.Intent;
  6. import android.location.Location;
  7. import android.location.LocationListener;
  8. import android.location.LocationManager;
  9. import android.net.ConnectivityManager;
  10. import android.net.NetworkInfo;
  11. import android.os.Bundle;
  12. import android.support.design.widget.Snackbar;
  13. import android.util.Log;
  14. import android.view.View;
  15. import android.widget.Button;
  16. import android.widget.EditText;
  17. import android.widget.RelativeLayout;
  18.  
  19. import com.facebook.AccessToken;
  20. import com.facebook.GraphRequest;
  21. import com.facebook.GraphResponse;
  22. import com.facebook.ads.AdSize;
  23. import com.google.android.gms.ads.AdRequest;
  24. import com.google.android.gms.ads.AdView;
  25. import com.parse.LogInCallback;
  26. import com.parse.ParseException;
  27. import com.parse.ParseFacebookUtils;
  28. import com.parse.ParseInstallation;
  29. import com.parse.ParseUser;
  30. import com.parse.SaveCallback;
  31.  
  32. import org.json.JSONObject;
  33.  
  34. import com.facebook.ads.*;
  35.  
  36. import java.io.IOException;
  37. import java.util.ArrayList;
  38.  
  39. import chat.madating.R;
  40. import chat.madating.parsehelper.User;
  41.  
  42.  
  43. @SuppressWarnings("ResourceType")
  44. public class LoginActivity extends Activity {
  45.  
  46. private RelativeLayout mLoginLayout;
  47.  
  48. Button mSignInButton, mSignUpButton, mFacebookLoginButton;
  49. EditText mLogin, mPassword;
  50.  
  51. OnClick onClickListener;
  52. private LocationManager mLocationManager;
  53. private LocationListener mLocationListener;
  54. private Location myLocation;
  55. private AdView adView;
  56. @Override
  57. protected void onCreate(Bundle savedInstanceState) {
  58. super.onCreate(savedInstanceState);
  59. setContentView(R.layout.activity_login);
  60. RelativeLayout adViewContainer = (RelativeLayout) findViewById(R.id.adViewContainer);
  61. adView = new AdView(this,1670296059907230_1681918298745006, AdSize.BANNER_HEIGHT_50);
  62. adViewContainer.addView(adView);
  63. adView.loadAd();
  64. mLoginLayout = (RelativeLayout) findViewById(R.id.layout_login);
  65.  
  66. onClickListener = new OnClick();
  67.  
  68. mSignInButton = (Button) findViewById(R.id.sign_in);
  69. mSignUpButton = (Button) findViewById(R.id.sign_up);
  70. mFacebookLoginButton = (Button) findViewById(R.id.facebook_sign_in);
  71. mLogin = (EditText) findViewById(R.id.login);
  72. mPassword = (EditText) findViewById(R.id.password);
  73.  
  74. mSignInButton.setOnClickListener(onClickListener);
  75. mSignUpButton.setOnClickListener(onClickListener);
  76. mFacebookLoginButton.setOnClickListener(onClickListener);
  77.  
  78. }
  79. @Override
  80. protected void onDestroy() {
  81. adView.destroy();
  82. super.onDestroy();
  83. }
  84. @Override
  85. protected void onResume() {
  86. super.onResume();
  87. if(ParseUser.getCurrentUser() != null){
  88. Log.d("myapp:LoginActivity","currentUser exist");
  89. Intent mainIntent = new Intent(LoginActivity.this, MainActivity.class);
  90. startActivity(mainIntent);
  91. LoginActivity.this.finish();
  92. }
  93. Log.d("myapp:LoginActivity", "onResume");
  94. }
  95.  
  96. private class OnClick implements View.OnClickListener{
  97. @Override
  98. public void onClick(View v) {
  99. if (isInternetAvailable()) {
  100. switch (v.getId()) {
  101. case R.id.sign_in:
  102. Log.d("OnClick", "SignInStart");
  103. String username = mLogin.getText().toString();
  104. String password = mPassword.getText().toString();
  105. ParseUser.logInInBackground(username, password, new LogInCallback() {
  106. @Override
  107. public void done(ParseUser parseUser, ParseException e) {
  108. if (parseUser != null) {
  109. Log.d("OnClick", "User");
  110. Intent mainIntent = new Intent(LoginActivity.this, MainActivity.class);
  111. ParseInstallation.getCurrentInstallation().put("user", parseUser);
  112. ParseInstallation.getCurrentInstallation().saveInBackground();
  113. ((User) parseUser).setInstallation(ParseInstallation.getCurrentInstallation());
  114. parseUser.saveInBackground();
  115. startActivity(mainIntent);
  116. LoginActivity.this.finish();
  117. } else {
  118. Log.d("OnClick", e.toString());
  119. }
  120. }
  121. });
  122. break;
  123. case R.id.sign_up:
  124. Intent signUpIntent = new Intent(LoginActivity.this, SignUpActivity.class);
  125. LoginActivity.this.startActivityForResult(signUpIntent, Constants.REQ_CODE_SIGN_UP);
  126. break;
  127. case R.id.facebook_sign_in:
  128. ArrayList<String> permissions = new ArrayList<String>();
  129.  
  130. permissions.add("public_profile");
  131. permissions.add("email");
  132. permissions.add("user_birthday");
  133. ParseFacebookUtils.logInWithReadPermissionsInBackground(LoginActivity.this, permissions, new LogInCallback() {
  134. @Override
  135. public void done(final ParseUser parseUser, ParseException err) {
  136. final User user = (User) parseUser;
  137. if (user == null && err != null) {
  138. Log.d("MyApp", "Uh oh. The user cancelled the Facebook login." + err.toString());
  139. } else if (user.isNew()) {
  140. ParseInstallation.getCurrentInstallation().put("user", user);
  141. ParseInstallation.getCurrentInstallation().saveInBackground();
  142. Log.d("MyApp", "New user");
  143. GraphRequest request = GraphRequest.newMeRequest(AccessToken.getCurrentAccessToken(), new GraphRequest.GraphJSONObjectCallback() {
  144. @Override
  145. public void onCompleted(JSONObject jsonObject, GraphResponse graphResponse) {
  146. Log.d("MyApp", "Complete graph request");
  147. if (jsonObject == null)
  148. Log.d("MyApp", "jsonObject is null");
  149. else
  150. Log.d("MyApp", jsonObject.toString());
  151. final String email = graphResponse.getJSONObject().optString("email");
  152. final String nickname = graphResponse.getJSONObject().optString("first_name") + " " + graphResponse.getJSONObject().optString("last_name");
  153. user.setNickname(nickname);
  154. user.setInstallation(ParseInstallation.getCurrentInstallation());
  155. user.setEmail(email);
  156. user.saveInBackground(new SaveCallback() {
  157. @Override
  158. public void done(ParseException e) {
  159. if(e != null) {
  160. switch (e.getCode()) {
  161. case ParseException.EMAIL_TAKEN:
  162. Log.d("MyApp", "email taken");
  163. break;
  164. default:
  165. Log.d("MyApp", e.toString());
  166. break;
  167. }
  168. }
  169. }
  170. });
  171. }
  172.  
  173. });
  174. Bundle parameters = new Bundle();
  175. parameters.putString("fields", "id,email,gender,first_name,last_name");
  176. request.setParameters(parameters);
  177. request.executeAsync();
  178.  
  179. Intent mainIntent = new Intent(LoginActivity.this, MainActivity.class);
  180. mainIntent.putExtra(Constants.ARG_AUTH_METHOD, Constants.AUTH_FACEBOOK);
  181. startActivity(mainIntent);
  182. LoginActivity.this.finish();
  183. } else {
  184. Intent mainIntent = new Intent(LoginActivity.this, MainActivity.class);
  185. ParseInstallation.getCurrentInstallation().put("user", user);
  186. ParseInstallation.getCurrentInstallation().saveInBackground();
  187. user.setInstallation(ParseInstallation.getCurrentInstallation());
  188. user.saveInBackground();
  189. mainIntent.putExtra(Constants.ARG_AUTH_METHOD, Constants.AUTH_FACEBOOK);
  190. startActivity(mainIntent);
  191. LoginActivity.this.finish();
  192. }
  193. }
  194.  
  195. });
  196.  
  197. break;
  198. }
  199. } else {
  200. showInternetConnectionLostMessage();
  201. }
  202. }
  203. }
  204.  
  205. public void showInternetConnectionLostMessage(){
  206. Snackbar.make(mLoginLayout,"Internet connection is lost", Snackbar.LENGTH_SHORT).show();
  207. }
  208.  
  209. public boolean isInternetAvailable(){
  210. ConnectivityManager cm =
  211. (ConnectivityManager) getSystemService(Context.CONNECTIVITY_SERVICE);
  212. NetworkInfo netInfo = cm.getActiveNetworkInfo();
  213. return netInfo != null && netInfo.isConnectedOrConnecting();
  214. }
  215.  
  216.  
  217. @Override
  218. protected void onActivityResult(int requestCode, int resultCode, Intent data) {
  219. super.onActivityResult(requestCode, resultCode, data);
  220. ParseFacebookUtils.onActivityResult(requestCode, resultCode, data);
  221. switch(resultCode)
  222. {
  223. case Constants.RES_CODE_SIGN_UP_SUCCESS: {
  224. Intent mainIntent = new Intent(LoginActivity.this, MainActivity.class);
  225. startActivity(mainIntent);
  226. }
  227. }
  228. }
  229.  
  230. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement