Guest User

Untitled

a guest
Oct 22nd, 2017
186
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 5.78 KB | None | 0 0
  1. mGoogleApiClient = new GoogleApiClient.Builder(this)
  2. .enableAutoManage(this /* FragmentActivity */, this /* OnConnectionFailedListener */)
  3. .addApi(Auth.GOOGLE_SIGN_IN_API, gso)
  4. .build();
  5.  
  6. mGoogleApiClient = new GoogleApiClient.Builder(this)
  7. .enableAutoManage(this, new GoogleApiClient.OnConnectionFailedListener() {
  8. @Override
  9. public void onConnectionFailed(@NonNull ConnectionResult connectionResult) {
  10. // connection failed, should be handled
  11. }
  12. })
  13. .addApi(Auth.GOOGLE_SIGN_IN_API, gso)
  14. .build();
  15.  
  16. public class LoginFragment extends Fragment implements View.OnClickListener{
  17. private static final int RC_SIGN_IN = 9001;
  18. private GoogleApiClient mGoogleApiClient;
  19. private SignInButton signInButton;
  20. private Button btn_login;
  21. private EditText et_email,et_password;
  22. private TextView tv_register,tv_reset_password;
  23. private ProgressBar progress;
  24. private SharedPreferences pref;
  25.  
  26.  
  27. @Override
  28. public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
  29.  
  30. View view = inflater.inflate(R.layout.fragment_login,container,false);
  31. initViews(view);
  32. return view;
  33.  
  34. GoogleSignInOptions gso = new GoogleSignInOptions.Builder(GoogleSignInOptions.DEFAULT_SIGN_IN)
  35. .requestEmail()
  36. .build();
  37. mGoogleApiClient = new GoogleApiClient.Builder(this)
  38. .enableAutoManage(this /* FragmentActivity */, this /* OnConnectionFailedListener */)
  39. .addApi(Auth.GOOGLE_SIGN_IN_API, gso)
  40. .build();
  41.  
  42. }
  43.  
  44. private void initViews(View view){
  45.  
  46. pref = getActivity().getPreferences(0);
  47.  
  48.  
  49.  
  50.  
  51. btn_login = (Button)view.findViewById(R.id.btn_login);
  52. tv_register = (TextView)view.findViewById(R.id.tv_register);
  53. tv_reset_password = (TextView)view.findViewById(R.id.tv_reset_password);
  54. et_email = (EditText)view.findViewById(R.id.et_email);
  55. et_password = (EditText)view.findViewById(R.id.et_password);
  56.  
  57. progress = (ProgressBar)view.findViewById(R.id.progress);
  58.  
  59. btn_login.setOnClickListener(this);
  60. tv_register.setOnClickListener(this);
  61. tv_reset_password.setOnClickListener(this);
  62. }
  63.  
  64. @Override
  65. public void onClick(View v) {
  66.  
  67. switch (v.getId()){
  68.  
  69. case R.id.tv_register:
  70. goToRegister();
  71. break;
  72.  
  73. case R.id.btn_login:
  74. String email = et_email.getText().toString();
  75. String password = et_password.getText().toString();
  76.  
  77. if(!email.isEmpty() && !password.isEmpty()) {
  78.  
  79. progress.setVisibility(View.VISIBLE);
  80. loginProcess(email,password);
  81.  
  82. } else {
  83.  
  84. Snackbar.make(getView(), "empty!", Snackbar.LENGTH_LONG).show();
  85.  
  86. }
  87. break;
  88. case R.id.tv_reset_password:
  89. goToResetPassword();
  90. break;
  91. }
  92. }
  93. private void loginProcess(String email,String password){
  94.  
  95. Retrofit retrofit = new Retrofit.Builder()
  96. .baseUrl(Constants.BASE_URL)
  97. .addConverterFactory(GsonConverterFactory.create())
  98. .build();
  99.  
  100. RequestInterface requestInterface = retrofit.create(RequestInterface.class);
  101.  
  102.  
  103. User user = new User();
  104. user.setEmail(email);
  105. user.setPassword(password);
  106. final ServerRequest request = new ServerRequest();
  107. request.setOperation(Constants.LOGIN_OPERATION);
  108. request.setUser(user);
  109. Call<ServerResponse> response = requestInterface.operation(request);
  110.  
  111. response.enqueue(new Callback<ServerResponse>() {
  112. @Override
  113. public void onResponse(Call<ServerResponse> call, retrofit2.Response<ServerResponse> response) {
  114.  
  115. ServerResponse resp = response.body();
  116. Snackbar.make(getView(), resp.getMessage(), Snackbar.LENGTH_SHORT).show();
  117.  
  118.  
  119. if(resp.getResult().equals(Constants.SUCCESS)){
  120. SharedPreferences.Editor editor = pref.edit();
  121. editor.putBoolean(Constants.IS_LOGGED_IN,true);
  122. editor.putString(Constants.EMAIL,resp.getUser().getEmail());
  123. editor.putString(Constants.NAME,resp.getUser().getName());
  124. editor.putString(Constants.UNIQUE_ID,resp.getUser().getUnique_id());
  125. editor.apply();
  126. goToProfile();
  127.  
  128. }
  129. progress.setVisibility(View.INVISIBLE);
  130. }
  131.  
  132. @Override
  133. public void onFailure(Call<ServerResponse> call, Throwable t) {
  134.  
  135. progress.setVisibility(View.INVISIBLE);
  136. Log.d(Constants.TAG,"failed");
  137. Snackbar.make(getView(), t.getLocalizedMessage(), Snackbar.LENGTH_LONG).show();
  138.  
  139.  
  140. }
  141. });
  142. }
  143.  
  144. private void goToResetPassword(){
  145.  
  146. Fragment reset = new ResetPasswordFragment();
  147. FragmentTransaction ft = getFragmentManager().beginTransaction();
  148. ft.replace(R.id.fragment_frame,reset);
  149. ft.commit();
  150. }
  151.  
  152. private void goToRegister(){
  153.  
  154. Fragment register = new RegisterFragment();
  155. FragmentTransaction ft = getFragmentManager().beginTransaction();
  156. ft.replace(R.id.fragment_frame,register);
  157. ft.commit();
  158. }
  159.  
  160. private void goToProfile(){
  161.  
  162. Fragment profile = new ProfileFragment();
  163. FragmentTransaction ft = getFragmentManager().beginTransaction();
  164. ft.replace(R.id.fragment_frame,profile);
  165. ft.commit();
  166. }
  167.  
  168. public class MainActivity extends AppCompatActivity {
  169.  
  170. private SharedPreferences pref;
  171.  
  172. @Override
  173. protected void onCreate(Bundle savedInstanceState) {
  174. super.onCreate(savedInstanceState);
  175. setContentView(R.layout.activity_main);
  176. pref = getPreferences(0);
  177. initFragment();
  178. }
  179.  
  180. private void initFragment(){
  181. Fragment fragment;
  182. if(pref.getBoolean(Constants.IS_LOGGED_IN,false)){
  183. fragment = new ProfileFragment();
  184. }else {
  185. fragment = new LoginFragment();
  186. }
  187. FragmentTransaction ft = getFragmentManager().beginTransaction();
  188. ft.replace(R.id.fragment_frame,fragment);
  189. ft.commit();
  190. }
Add Comment
Please, Sign In to add comment