Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- package groupone.green_red.boihaat.fragment;
- import android.app.Fragment;
- import android.app.FragmentTransaction;
- import android.content.Intent;
- import android.content.SharedPreferences;
- import android.os.Bundle;
- import android.support.design.widget.Snackbar;
- import android.support.v7.widget.AppCompatButton;
- import android.util.Log;
- import android.view.LayoutInflater;
- import android.view.View;
- import android.view.ViewGroup;
- import android.widget.EditText;
- import android.widget.ProgressBar;
- import android.widget.TextView;
- import com.google.gson.Gson;
- import com.google.gson.GsonBuilder;
- import groupone.green_red.boihaat.R;
- import groupone.green_red.boihaat.activity.DrawerActivity;
- import groupone.green_red.boihaat.app.AppConfig;
- import groupone.green_red.boihaat.app.RequestInterface;
- import groupone.green_red.boihaat.app.ServerRequest;
- import groupone.green_red.boihaat.app.ServerResponse;
- import groupone.green_red.boihaat.models.User;
- import retrofit2.Call;
- import retrofit2.Callback;
- import retrofit2.Retrofit;
- import retrofit2.converter.gson.GsonConverterFactory;
- public class LoginFragment extends Fragment implements View.OnClickListener {
- private EditText et_email, et_password;
- private ProgressBar progress;
- private SharedPreferences pref;
- @Override
- public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
- View view = inflater.inflate(R.layout.fragment_login, container, false);
- initViews(view);
- return view;
- }
- private void initViews(View view) {
- pref = getActivity().getPreferences(0);
- AppCompatButton btn_login = view.findViewById(R.id.btn_login);
- TextView tv_register = view.findViewById(R.id.tv_register);
- et_email = view.findViewById(R.id.et_email);
- et_password = view.findViewById(R.id.et_password);
- progress = view.findViewById(R.id.progress);
- btn_login.setOnClickListener(this);
- tv_register.setOnClickListener(this);
- }
- @SuppressWarnings("ConstantConditions")
- @Override
- public void onClick(View v) {
- switch (v.getId()) {
- case R.id.tv_register:
- goToRegister();
- break;
- case R.id.btn_login:
- String email = et_email.getText().toString();
- String password = et_password.getText().toString();
- if (!email.isEmpty() && !password.isEmpty()) {
- progress.setVisibility(View.VISIBLE);
- loginProcess(email, password);
- } else {
- Snackbar.make(getView(), "Fields are empty !", Snackbar.LENGTH_LONG).show();
- }
- break;
- }
- }
- private void loginProcess(String email, String password) {
- Gson gson = new GsonBuilder()
- .setLenient()
- .create();
- Retrofit retrofit = new Retrofit.Builder()
- .baseUrl(AppConfig.BASE_URL)
- .addConverterFactory(GsonConverterFactory.create(gson))
- .build();
- RequestInterface requestInterface = retrofit.create(RequestInterface.class);
- User user = new User();
- user.setEmail(email);
- user.setPassword(password);
- ServerRequest request = new ServerRequest();
- request.setOperation(AppConfig.LOGIN_OPERATION);
- request.setUser(user);
- Call<ServerResponse> response = requestInterface.operation(request);
- response.enqueue(new Callback<ServerResponse>() {
- @SuppressWarnings("ConstantConditions")
- @Override
- public void onResponse(Call<ServerResponse> call, retrofit2.Response<ServerResponse> response) {
- ServerResponse resp = response.body();
- Snackbar.make(getView(), resp.getMessage(), Snackbar.LENGTH_LONG).show();
- if (resp.getResult().equals(AppConfig.SUCCESS)) {
- SharedPreferences.Editor editor = pref.edit();
- editor.putBoolean(AppConfig.IS_LOGGED_IN, true);
- editor.putString(AppConfig.EMAIL, resp.getUser().getEmail());
- editor.putString(AppConfig.NAME, resp.getUser().getName());
- editor.putString(AppConfig.UNIQUE_ID, resp.getUser().getUnique_id());
- editor.apply();
- goToHome();
- }
- progress.setVisibility(View.INVISIBLE);
- }
- @SuppressWarnings("ConstantConditions")
- @Override
- public void onFailure(Call<ServerResponse> call, Throwable t) {
- progress.setVisibility(View.INVISIBLE);
- Log.d(AppConfig.TAG, "failed");
- Snackbar.make(getView(), t.getLocalizedMessage(), Snackbar.LENGTH_LONG).show();
- }
- });
- }
- private void goToRegister() {
- Fragment register = new RegisterFragment();
- FragmentTransaction ft = getFragmentManager().beginTransaction();
- ft.replace(R.id.frame, register);
- ft.addToBackStack(null);
- ft.commit();
- }
- private void goToHome() {
- Intent intentHome = new Intent(getActivity(), DrawerActivity.class);
- startActivity(intentHome);
- getActivity().overridePendingTransition(0, 0);
- //
- // Fragment profile = new ProfileFragment();
- // FragmentTransaction ft = getFragmentManager().beginTransaction();
- // ft.replace(R.id.fragment_frame, profile);
- // ft.commit();
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement