Advertisement
Guest User

Untitled

a guest
Oct 24th, 2017
87
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 5.61 KB | None | 0 0
  1. package groupone.green_red.boihaat.fragment;
  2.  
  3. import android.app.Fragment;
  4. import android.app.FragmentTransaction;
  5. import android.content.Intent;
  6. import android.content.SharedPreferences;
  7. import android.os.Bundle;
  8. import android.support.design.widget.Snackbar;
  9. import android.support.v7.widget.AppCompatButton;
  10. import android.util.Log;
  11. import android.view.LayoutInflater;
  12. import android.view.View;
  13. import android.view.ViewGroup;
  14. import android.widget.EditText;
  15. import android.widget.ProgressBar;
  16. import android.widget.TextView;
  17.  
  18. import com.google.gson.Gson;
  19. import com.google.gson.GsonBuilder;
  20.  
  21. import groupone.green_red.boihaat.R;
  22. import groupone.green_red.boihaat.activity.DrawerActivity;
  23. import groupone.green_red.boihaat.app.AppConfig;
  24. import groupone.green_red.boihaat.app.RequestInterface;
  25. import groupone.green_red.boihaat.app.ServerRequest;
  26. import groupone.green_red.boihaat.app.ServerResponse;
  27. import groupone.green_red.boihaat.models.User;
  28. import retrofit2.Call;
  29. import retrofit2.Callback;
  30. import retrofit2.Retrofit;
  31. import retrofit2.converter.gson.GsonConverterFactory;
  32.  
  33.  
  34. public class LoginFragment extends Fragment implements View.OnClickListener {
  35.  
  36. private EditText et_email, et_password;
  37. private ProgressBar progress;
  38. private SharedPreferences pref;
  39.  
  40.  
  41. @Override
  42. public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
  43.  
  44. View view = inflater.inflate(R.layout.fragment_login, container, false);
  45. initViews(view);
  46. return view;
  47. }
  48.  
  49. private void initViews(View view) {
  50.  
  51. pref = getActivity().getPreferences(0);
  52.  
  53. AppCompatButton btn_login = view.findViewById(R.id.btn_login);
  54. TextView tv_register = view.findViewById(R.id.tv_register);
  55. et_email = view.findViewById(R.id.et_email);
  56. et_password = view.findViewById(R.id.et_password);
  57.  
  58. progress = view.findViewById(R.id.progress);
  59.  
  60. btn_login.setOnClickListener(this);
  61. tv_register.setOnClickListener(this);
  62. }
  63.  
  64. @SuppressWarnings("ConstantConditions")
  65. @Override
  66. public void onClick(View v) {
  67.  
  68. switch (v.getId()) {
  69.  
  70. case R.id.tv_register:
  71. goToRegister();
  72. break;
  73.  
  74. case R.id.btn_login:
  75. String email = et_email.getText().toString();
  76. String password = et_password.getText().toString();
  77.  
  78. if (!email.isEmpty() && !password.isEmpty()) {
  79.  
  80. progress.setVisibility(View.VISIBLE);
  81. loginProcess(email, password);
  82.  
  83. } else {
  84.  
  85. Snackbar.make(getView(), "Fields are empty !", Snackbar.LENGTH_LONG).show();
  86. }
  87. break;
  88.  
  89. }
  90. }
  91.  
  92. private void loginProcess(String email, String password) {
  93.  
  94.  
  95. Gson gson = new GsonBuilder()
  96. .setLenient()
  97. .create();
  98.  
  99. Retrofit retrofit = new Retrofit.Builder()
  100. .baseUrl(AppConfig.BASE_URL)
  101. .addConverterFactory(GsonConverterFactory.create(gson))
  102. .build();
  103.  
  104. RequestInterface requestInterface = retrofit.create(RequestInterface.class);
  105.  
  106. User user = new User();
  107. user.setEmail(email);
  108. user.setPassword(password);
  109. ServerRequest request = new ServerRequest();
  110. request.setOperation(AppConfig.LOGIN_OPERATION);
  111. request.setUser(user);
  112. Call<ServerResponse> response = requestInterface.operation(request);
  113.  
  114. response.enqueue(new Callback<ServerResponse>() {
  115. @SuppressWarnings("ConstantConditions")
  116. @Override
  117. public void onResponse(Call<ServerResponse> call, retrofit2.Response<ServerResponse> response) {
  118.  
  119. ServerResponse resp = response.body();
  120. Snackbar.make(getView(), resp.getMessage(), Snackbar.LENGTH_LONG).show();
  121.  
  122. if (resp.getResult().equals(AppConfig.SUCCESS)) {
  123. SharedPreferences.Editor editor = pref.edit();
  124. editor.putBoolean(AppConfig.IS_LOGGED_IN, true);
  125. editor.putString(AppConfig.EMAIL, resp.getUser().getEmail());
  126. editor.putString(AppConfig.NAME, resp.getUser().getName());
  127. editor.putString(AppConfig.UNIQUE_ID, resp.getUser().getUnique_id());
  128. editor.apply();
  129. goToHome();
  130.  
  131. }
  132. progress.setVisibility(View.INVISIBLE);
  133. }
  134.  
  135. @SuppressWarnings("ConstantConditions")
  136. @Override
  137. public void onFailure(Call<ServerResponse> call, Throwable t) {
  138.  
  139. progress.setVisibility(View.INVISIBLE);
  140. Log.d(AppConfig.TAG, "failed");
  141. Snackbar.make(getView(), t.getLocalizedMessage(), Snackbar.LENGTH_LONG).show();
  142.  
  143. }
  144. });
  145. }
  146.  
  147. private void goToRegister() {
  148.  
  149. Fragment register = new RegisterFragment();
  150. FragmentTransaction ft = getFragmentManager().beginTransaction();
  151. ft.replace(R.id.frame, register);
  152. ft.addToBackStack(null);
  153. ft.commit();
  154. }
  155.  
  156. private void goToHome() {
  157. Intent intentHome = new Intent(getActivity(), DrawerActivity.class);
  158. startActivity(intentHome);
  159. getActivity().overridePendingTransition(0, 0);
  160. //
  161. // Fragment profile = new ProfileFragment();
  162. // FragmentTransaction ft = getFragmentManager().beginTransaction();
  163. // ft.replace(R.id.fragment_frame, profile);
  164. // ft.commit();
  165. }
  166. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement