feat: Changed Login and UserApi
This commit is contained in:
parent
1b160281e3
commit
8f683c1f0c
@ -11,11 +11,13 @@ import ru.myitschool.work.data.dto.UserDto;
|
|||||||
import ru.myitschool.work.data.network.RetrofitFactory;
|
import ru.myitschool.work.data.network.RetrofitFactory;
|
||||||
import ru.myitschool.work.data.source.CredentialsDataSource;
|
import ru.myitschool.work.data.source.CredentialsDataSource;
|
||||||
import ru.myitschool.work.data.source.UserApi;
|
import ru.myitschool.work.data.source.UserApi;
|
||||||
|
import ru.myitschool.work.domain.UserRepository;
|
||||||
import ru.myitschool.work.domain.entities.HistoryEntity;
|
import ru.myitschool.work.domain.entities.HistoryEntity;
|
||||||
import ru.myitschool.work.domain.entities.Status;
|
import ru.myitschool.work.domain.entities.Status;
|
||||||
import ru.myitschool.work.domain.entities.UserEntity;
|
import ru.myitschool.work.domain.entities.UserEntity;
|
||||||
|
import ru.myitschool.work.domain.sign.SignUserRepository;
|
||||||
|
|
||||||
public class UserRepositoryImpl {
|
public class UserRepositoryImpl implements UserRepository, SignUserRepository {
|
||||||
|
|
||||||
private static UserRepositoryImpl INSTANCE;
|
private static UserRepositoryImpl INSTANCE;
|
||||||
private UserApi userApi = RetrofitFactory.getInstance().getUserApi();
|
private UserApi userApi = RetrofitFactory.getInstance().getUserApi();
|
||||||
@ -31,6 +33,7 @@ public class UserRepositoryImpl {
|
|||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
/*@Override
|
||||||
public void getAllUsers(@NonNull Consumer<Status<List<UserEntity>>> callback) {
|
public void getAllUsers(@NonNull Consumer<Status<List<UserEntity>>> callback) {
|
||||||
userApi.getAllUsers().enqueue(new CallToConsumer<>(
|
userApi.getAllUsers().enqueue(new CallToConsumer<>(
|
||||||
callback,
|
callback,
|
||||||
@ -50,10 +53,11 @@ public class UserRepositoryImpl {
|
|||||||
}
|
}
|
||||||
));
|
));
|
||||||
|
|
||||||
}
|
}*/
|
||||||
|
|
||||||
public void getAllUserHistory(@NonNull Integer id, @NonNull Consumer<Status<List<HistoryEntity>>> callback) {
|
@Override
|
||||||
userApi.getAllUserHistory(id).enqueue(new CallToConsumer<>(
|
public void getAllUserHistory(@NonNull String username, @NonNull Consumer<Status<List<HistoryEntity>>> callback) {
|
||||||
|
userApi.getAllUserHistory(username).enqueue(new CallToConsumer<>(
|
||||||
callback,
|
callback,
|
||||||
historiesDto -> {
|
historiesDto -> {
|
||||||
ArrayList<HistoryEntity> result1 = new ArrayList<>(historiesDto.size());
|
ArrayList<HistoryEntity> result1 = new ArrayList<>(historiesDto.size());
|
||||||
@ -73,49 +77,59 @@ public class UserRepositoryImpl {
|
|||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/* public void getHistoryById(@NonNull Integer id, @NonNull Consumer<Status<List<HistoryEntity>>> callback){
|
@Override
|
||||||
userApi.getHistoryById(id).enqueue(new CallToConsumer<>(
|
public void isExistUser(@NonNull String username, Consumer<Status<Void>> callback) {
|
||||||
|
userApi.isExistUser(username).enqueue(new CallToConsumer<>(
|
||||||
callback,
|
callback,
|
||||||
historiesDto -> {
|
dto -> null
|
||||||
final Integer id1 = historiesDto.id;
|
));
|
||||||
final Integer idUser = historiesDto.idUser;
|
}
|
||||||
final Long time = historiesDto.time;
|
|
||||||
final String nameReader = historiesDto.nameReader;
|
/* public void getHistoryById(@NonNull Integer id, @NonNull Consumer<Status<List<HistoryEntity>>> callback){
|
||||||
final String type = historiesDto.type;
|
userApi.getHistoryById(id).enqueue(new CallToConsumer<>(
|
||||||
if (id1 != null && idUser != null){
|
callback,
|
||||||
HistoryEntity historyEntity = new HistoryEntity(id1, idUser, time, nameReader, type);
|
historiesDto -> {
|
||||||
return historyEntity;
|
final Integer id1 = historiesDto.id;
|
||||||
|
final Integer idUser = historiesDto.idUser;
|
||||||
|
final Long time = historiesDto.time;
|
||||||
|
final String nameReader = historiesDto.nameReader;
|
||||||
|
final String type = historiesDto.type;
|
||||||
|
if (id1 != null && idUser != null){
|
||||||
|
HistoryEntity historyEntity = new HistoryEntity(id1, idUser, time, nameReader, type);
|
||||||
|
return historyEntity;
|
||||||
|
}
|
||||||
|
else{
|
||||||
|
return null;
|
||||||
|
}
|
||||||
|
|
||||||
|
};
|
||||||
|
} */
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void getUserByUsername(@NonNull String username, @NonNull Consumer<Status<UserEntity>> callback) {
|
||||||
|
userApi.getUserByUsername(username).enqueue(new CallToConsumer<>(
|
||||||
|
callback,
|
||||||
|
user -> {
|
||||||
|
if (user != null) {
|
||||||
|
final String username1 = user.username;
|
||||||
|
final String photo = user.photo;
|
||||||
|
final Long lastVisit = user.lastVisit;
|
||||||
|
final Integer idUser = user.idUser;
|
||||||
|
final String position = user.position;
|
||||||
|
if (idUser != null && username != null){
|
||||||
|
return new UserEntity(username1, photo, lastVisit, idUser, position);
|
||||||
|
}
|
||||||
|
else{
|
||||||
|
return null;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
else{
|
else{
|
||||||
return null;
|
return null;
|
||||||
}
|
}
|
||||||
|
}
|
||||||
|
));
|
||||||
|
|
||||||
};
|
}
|
||||||
} */
|
|
||||||
|
|
||||||
public void isExistUser(@NonNull String username, Consumer<Status<UserEntity>> callback) {
|
|
||||||
userApi.isUserExist(username).enqueue(new CallToConsumer<>(
|
|
||||||
callback,
|
|
||||||
user -> {
|
|
||||||
if (user != null) {
|
|
||||||
final String username1 = user.username;
|
|
||||||
final String photo = user.photo;
|
|
||||||
final Long lastVisit = user.lastVisit;
|
|
||||||
final Integer idUser = user.idUser;
|
|
||||||
final String position = user.position;
|
|
||||||
if (idUser != null && username != null){
|
|
||||||
return new UserEntity(username1, photo, lastVisit, idUser, position);
|
|
||||||
}
|
|
||||||
else{
|
|
||||||
return null;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
else{
|
|
||||||
return null;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
));
|
|
||||||
}
|
|
||||||
|
|
||||||
public void login(@NonNull String username, @NonNull String password, Consumer<Status<Void>> callback) {
|
public void login(@NonNull String username, @NonNull String password, Consumer<Status<Void>> callback) {
|
||||||
credentialsDataSource.updateLogin(username, password);
|
credentialsDataSource.updateLogin(username, password);
|
||||||
|
@ -15,14 +15,14 @@ import ru.myitschool.work.ui.History;
|
|||||||
public interface UserApi {
|
public interface UserApi {
|
||||||
@GET("api/user")
|
@GET("api/user")
|
||||||
Call<List<UserDto>> getAllUsers();
|
Call<List<UserDto>> getAllUsers();
|
||||||
/* @GET("api/user/{id}")
|
@GET("api/user/{id}")
|
||||||
Call<UserDto> getUserById(@Path("id") Integer id); */
|
Call<UserDto> getUserByUsername(@Path("username") String Username);
|
||||||
@GET("api/user/username/{username}")
|
@GET("api/user/username/{username}")
|
||||||
Call<UserDto> isUserExist(@Path("username") String username);
|
Call<UserDto> isExistUser(@Path("username") String username);
|
||||||
@GET("api/user/login")
|
@GET("api/user/login")
|
||||||
Call<Void> login();
|
Call<Void> login();
|
||||||
@GET("api/history/user/{id}")
|
@GET("api/history/user/{id}")
|
||||||
Call<List<HistoryDto>> getAllUserHistory(@Path("id") Integer id);
|
Call<List<HistoryDto>> getAllUserHistory(@Path("id") String username);
|
||||||
/* @GET("api/history/{id}")
|
/* @GET("api/history/{id}")
|
||||||
Call<HistoryDto> getHistoryById(@Path("id") Integer id);
|
Call<HistoryDto> getHistoryById(@Path("id") Integer id);
|
||||||
*/
|
*/
|
||||||
|
@ -0,0 +1,21 @@
|
|||||||
|
package ru.myitschool.work.domain;
|
||||||
|
|
||||||
|
import androidx.annotation.NonNull;
|
||||||
|
|
||||||
|
import java.util.List;
|
||||||
|
import java.util.function.Consumer;
|
||||||
|
|
||||||
|
import ru.myitschool.work.domain.entities.HistoryEntity;
|
||||||
|
import ru.myitschool.work.domain.entities.Status;
|
||||||
|
|
||||||
|
public class GetAllUserHistoryUseCase {
|
||||||
|
private final UserRepository repo;
|
||||||
|
|
||||||
|
public GetAllUserHistoryUseCase(UserRepository repo) {
|
||||||
|
this.repo = repo;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void execute(@NonNull String username, @NonNull Consumer<Status<List<HistoryEntity>>> callback) {
|
||||||
|
repo.getAllUserHistory(username, callback);
|
||||||
|
}
|
||||||
|
}
|
@ -0,0 +1,21 @@
|
|||||||
|
package ru.myitschool.work.domain;
|
||||||
|
|
||||||
|
import androidx.annotation.NonNull;
|
||||||
|
|
||||||
|
import java.util.function.Consumer;
|
||||||
|
|
||||||
|
import ru.myitschool.work.domain.entities.Status;
|
||||||
|
import ru.myitschool.work.domain.entities.UserEntity;
|
||||||
|
import ru.myitschool.work.domain.sign.SignUserRepository;
|
||||||
|
|
||||||
|
public class GetUserByUsernameUseCase {
|
||||||
|
private final SignUserRepository repo;
|
||||||
|
|
||||||
|
public GetUserByUsernameUseCase(SignUserRepository repo) {
|
||||||
|
this.repo = repo;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void execute(@NonNull String username, @NonNull Consumer<Status<UserEntity>> callback) {
|
||||||
|
repo.getUserByUsername(username, callback);
|
||||||
|
}
|
||||||
|
}
|
@ -0,0 +1,22 @@
|
|||||||
|
package ru.myitschool.work.domain;
|
||||||
|
|
||||||
|
import androidx.annotation.NonNull;
|
||||||
|
|
||||||
|
import java.util.List;
|
||||||
|
import java.util.function.Consumer;
|
||||||
|
|
||||||
|
import ru.myitschool.work.domain.entities.HistoryEntity;
|
||||||
|
import ru.myitschool.work.domain.entities.Status;
|
||||||
|
import ru.myitschool.work.domain.entities.UserEntity;
|
||||||
|
|
||||||
|
public interface UserRepository {
|
||||||
|
//void getAllUsers(@NonNull Consumer<Status<List<UserEntity>>> callback);
|
||||||
|
|
||||||
|
//void getUser(@NonNull Integer id, @NonNull Consumer<Status<UserEntity>> callback);
|
||||||
|
void getAllUserHistory(@NonNull String username, @NonNull Consumer<Status<List<HistoryEntity>>> callback);
|
||||||
|
//void getVolunteerCenterById(@NonNull Integer id, @NonNull Consumer<Status<HistoryEntity>> callback);
|
||||||
|
//void isExist(@NonNull String username, @NonNull Consumer<Status<Void>> callback);
|
||||||
|
//void register(@NonNull String id, @NonNull Consumer<Status<FullUserEntity>> callback);
|
||||||
|
|
||||||
|
void login(@NonNull String username, @NonNull String password, @NonNull Consumer<Status<Void>> callback);
|
||||||
|
}
|
@ -5,11 +5,15 @@ import androidx.annotation.Nullable;
|
|||||||
import com.google.gson.annotations.SerializedName;
|
import com.google.gson.annotations.SerializedName;
|
||||||
|
|
||||||
public class UserEntity {
|
public class UserEntity {
|
||||||
|
|
||||||
|
@Nullable
|
||||||
|
@SerializedName("id")
|
||||||
|
public Integer id;
|
||||||
|
|
||||||
@Nullable
|
@Nullable
|
||||||
@SerializedName("username")
|
@SerializedName("username")
|
||||||
public String username;
|
public String username;
|
||||||
|
|
||||||
|
|
||||||
@Nullable
|
@Nullable
|
||||||
@SerializedName("photo")
|
@SerializedName("photo")
|
||||||
public String photo;
|
public String photo;
|
||||||
@ -18,20 +22,15 @@ public class UserEntity {
|
|||||||
@SerializedName("lastVisit")
|
@SerializedName("lastVisit")
|
||||||
public Long lastVisit;
|
public Long lastVisit;
|
||||||
|
|
||||||
@Nullable
|
|
||||||
@SerializedName("idUser")
|
|
||||||
public Integer idUser;
|
|
||||||
|
|
||||||
|
|
||||||
@Nullable
|
@Nullable
|
||||||
@SerializedName("position")
|
@SerializedName("position")
|
||||||
public String position;
|
public String position;
|
||||||
|
|
||||||
public UserEntity(@Nullable String username, @Nullable String photo, @Nullable Long lastVisit, @Nullable Integer idUser, @Nullable String position) {
|
public UserEntity(@Nullable String username, @Nullable String photo, @Nullable Long lastVisit, @Nullable Integer id, @Nullable String position) {
|
||||||
this.username = username;
|
this.username = username;
|
||||||
this.photo = photo;
|
this.photo = photo;
|
||||||
this.lastVisit = lastVisit;
|
this.lastVisit = lastVisit;
|
||||||
this.idUser = idUser;
|
this.id = id;
|
||||||
this.position = position;
|
this.position = position;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -72,14 +71,12 @@ public class UserEntity {
|
|||||||
}
|
}
|
||||||
|
|
||||||
@Nullable
|
@Nullable
|
||||||
public Integer getIdUser() {
|
public Integer getId() {
|
||||||
return idUser;
|
return id;
|
||||||
}
|
}
|
||||||
|
|
||||||
public void setIdUser(@Nullable Integer idUser) {
|
public void setId(@Nullable Integer id) {
|
||||||
this.idUser = idUser;
|
this.id = id;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
@ -0,0 +1,30 @@
|
|||||||
|
package ru.myitschool.work.domain.sign;
|
||||||
|
|
||||||
|
import androidx.annotation.NonNull;
|
||||||
|
|
||||||
|
import java.util.function.Consumer;
|
||||||
|
|
||||||
|
import ru.myitschool.work.domain.entities.UserEntity;
|
||||||
|
import ru.myitschool.work.domain.entities.Status;
|
||||||
|
|
||||||
|
public class IsUserExistUseCase {
|
||||||
|
private final SignUserRepository repo;
|
||||||
|
|
||||||
|
public IsUserExistUseCase(SignUserRepository repo) {
|
||||||
|
this.repo = repo;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void execute(@NonNull String username, Consumer<Status<Boolean>> callback) {
|
||||||
|
//repo.isExistUser(username, callback);
|
||||||
|
repo.isExistUser(username, status -> {
|
||||||
|
boolean isAvailable = status.getStatusCode() == 200 || status.getStatusCode() == 404;
|
||||||
|
callback.accept(
|
||||||
|
new Status<>(
|
||||||
|
status.getStatusCode(),
|
||||||
|
isAvailable ? status.getStatusCode() == 200 : null,
|
||||||
|
status.getErrors()
|
||||||
|
)
|
||||||
|
);
|
||||||
|
});
|
||||||
|
}
|
||||||
|
}
|
@ -0,0 +1,27 @@
|
|||||||
|
package ru.myitschool.work.domain.sign;
|
||||||
|
|
||||||
|
import androidx.annotation.NonNull;
|
||||||
|
|
||||||
|
import java.util.function.Consumer;
|
||||||
|
|
||||||
|
import ru.myitschool.work.domain.entities.Status;
|
||||||
|
|
||||||
|
public class LoginUserUseCase {
|
||||||
|
private final SignUserRepository repo;
|
||||||
|
|
||||||
|
public LoginUserUseCase(SignUserRepository repo) {
|
||||||
|
this.repo = repo;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void execute(
|
||||||
|
@NonNull String username,
|
||||||
|
@NonNull String password,
|
||||||
|
Consumer<Status<Void>> callback
|
||||||
|
) {
|
||||||
|
repo.login(username, password, (status) -> {
|
||||||
|
if (status.getStatusCode() != 200) repo.logout();
|
||||||
|
callback.accept(status);
|
||||||
|
});
|
||||||
|
|
||||||
|
}
|
||||||
|
}
|
@ -0,0 +1,22 @@
|
|||||||
|
package ru.myitschool.work.domain.sign;
|
||||||
|
|
||||||
|
import androidx.annotation.NonNull;
|
||||||
|
|
||||||
|
import java.util.function.Consumer;
|
||||||
|
|
||||||
|
import ru.myitschool.work.domain.entities.UserEntity;
|
||||||
|
import ru.myitschool.work.domain.entities.Status;
|
||||||
|
|
||||||
|
public interface SignUserRepository {
|
||||||
|
|
||||||
|
void getUserByUsername(@NonNull String username, Consumer<Status<UserEntity>> callback);
|
||||||
|
void isExistUser(@NonNull String login, Consumer<Status<Void>> callback);
|
||||||
|
|
||||||
|
void login(
|
||||||
|
@NonNull String username,
|
||||||
|
@NonNull String password,
|
||||||
|
Consumer<Status<Void>> callback
|
||||||
|
);
|
||||||
|
|
||||||
|
void logout();
|
||||||
|
}
|
@ -1,6 +0,0 @@
|
|||||||
package ru.myitschool.work.ui;
|
|
||||||
|
|
||||||
public class Constants {
|
|
||||||
public static String KEY_LOGIN = "login";
|
|
||||||
public static String KEY_RESULT = "result";
|
|
||||||
}
|
|
@ -21,6 +21,7 @@ import retrofit2.Retrofit;
|
|||||||
import retrofit2.converter.gson.GsonConverterFactory;
|
import retrofit2.converter.gson.GsonConverterFactory;
|
||||||
import ru.myitschool.work.R;
|
import ru.myitschool.work.R;
|
||||||
import ru.myitschool.work.databinding.FragmentResultBinding;
|
import ru.myitschool.work.databinding.FragmentResultBinding;
|
||||||
|
import ru.myitschool.work.utils.Constants;
|
||||||
|
|
||||||
public class ResultFragment extends Fragment {
|
public class ResultFragment extends Fragment {
|
||||||
FragmentResultBinding binding;
|
FragmentResultBinding binding;
|
||||||
|
@ -1,6 +1,5 @@
|
|||||||
package ru.myitschool.work.ui;
|
package ru.myitschool.work.ui.information;
|
||||||
|
|
||||||
import android.annotation.SuppressLint;
|
|
||||||
import android.view.LayoutInflater;
|
import android.view.LayoutInflater;
|
||||||
import android.view.View;
|
import android.view.View;
|
||||||
import android.view.ViewGroup;
|
import android.view.ViewGroup;
|
||||||
@ -12,6 +11,7 @@ import java.util.ArrayList;
|
|||||||
import java.util.List;
|
import java.util.List;
|
||||||
|
|
||||||
import ru.myitschool.work.databinding.ItemHistoryBinding;
|
import ru.myitschool.work.databinding.ItemHistoryBinding;
|
||||||
|
import ru.myitschool.work.ui.History;
|
||||||
|
|
||||||
public class HistoryAdapter extends RecyclerView.Adapter<HistoryAdapter.ViewHolder> {
|
public class HistoryAdapter extends RecyclerView.Adapter<HistoryAdapter.ViewHolder> {
|
||||||
|
|
@ -1,4 +1,4 @@
|
|||||||
package ru.myitschool.work.ui;
|
package ru.myitschool.work.ui.information;
|
||||||
|
|
||||||
import android.content.Context;
|
import android.content.Context;
|
||||||
import android.content.SharedPreferences;
|
import android.content.SharedPreferences;
|
||||||
@ -6,12 +6,10 @@ import android.os.Bundle;
|
|||||||
import android.view.LayoutInflater;
|
import android.view.LayoutInflater;
|
||||||
import android.view.View;
|
import android.view.View;
|
||||||
import android.view.ViewGroup;
|
import android.view.ViewGroup;
|
||||||
import android.widget.Toast;
|
|
||||||
|
|
||||||
import androidx.annotation.NonNull;
|
import androidx.annotation.NonNull;
|
||||||
import androidx.annotation.Nullable;
|
import androidx.annotation.Nullable;
|
||||||
import androidx.fragment.app.Fragment;
|
import androidx.fragment.app.Fragment;
|
||||||
import androidx.fragment.app.FragmentResultListener;
|
|
||||||
import androidx.navigation.Navigation;
|
import androidx.navigation.Navigation;
|
||||||
|
|
||||||
import com.squareup.picasso.Picasso;
|
import com.squareup.picasso.Picasso;
|
||||||
@ -25,8 +23,11 @@ import retrofit2.Retrofit;
|
|||||||
import retrofit2.converter.gson.GsonConverterFactory;
|
import retrofit2.converter.gson.GsonConverterFactory;
|
||||||
import ru.myitschool.work.R;
|
import ru.myitschool.work.R;
|
||||||
import ru.myitschool.work.databinding.FragmentInformationBinding;
|
import ru.myitschool.work.databinding.FragmentInformationBinding;
|
||||||
|
import ru.myitschool.work.utils.Constants;
|
||||||
|
import ru.myitschool.work.ui.History;
|
||||||
|
import ru.myitschool.work.ui.StoreAPI;
|
||||||
|
import ru.myitschool.work.ui.User;
|
||||||
import ru.myitschool.work.ui.qr.scan.QrScanDestination;
|
import ru.myitschool.work.ui.qr.scan.QrScanDestination;
|
||||||
import ru.myitschool.work.ui.qr.scan.QrScanFragment;
|
|
||||||
|
|
||||||
public class InformationFragment extends Fragment {
|
public class InformationFragment extends Fragment {
|
||||||
FragmentInformationBinding binding;
|
FragmentInformationBinding binding;
|
||||||
@ -49,11 +50,11 @@ public class InformationFragment extends Fragment {
|
|||||||
getInformation();
|
getInformation();
|
||||||
|
|
||||||
binding.scan.setOnClickListener(view1 -> {
|
binding.scan.setOnClickListener(view1 -> {
|
||||||
onClickScan();
|
onClickScan(view);
|
||||||
});
|
});
|
||||||
|
|
||||||
binding.logout.setOnClickListener(view2 -> {
|
binding.logout.setOnClickListener(view2 -> {
|
||||||
onClickLogout();
|
onClickLogout(view);
|
||||||
});
|
});
|
||||||
|
|
||||||
binding.refreshLayout.setOnRefreshListener(() -> {
|
binding.refreshLayout.setOnRefreshListener(() -> {
|
||||||
@ -95,7 +96,7 @@ public class InformationFragment extends Fragment {
|
|||||||
//getFragmentManager().beginTransaction().replace(R.id.nav_host_fragment, new LoginFragment()).commit();
|
//getFragmentManager().beginTransaction().replace(R.id.nav_host_fragment, new LoginFragment()).commit();
|
||||||
}
|
}
|
||||||
|
|
||||||
private void getInformation() {
|
/*private void getInformation() {
|
||||||
Retrofit retrofit = new Retrofit.Builder()
|
Retrofit retrofit = new Retrofit.Builder()
|
||||||
.baseUrl(ru.myitschool.work.core.Constants.SERVER_ADDRESS)
|
.baseUrl(ru.myitschool.work.core.Constants.SERVER_ADDRESS)
|
||||||
.addConverterFactory(GsonConverterFactory.create())
|
.addConverterFactory(GsonConverterFactory.create())
|
||||||
@ -134,7 +135,7 @@ public class InformationFragment extends Fragment {
|
|||||||
takeError();
|
takeError();
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
}
|
}*/
|
||||||
|
|
||||||
private void takeError() {
|
private void takeError() {
|
||||||
//binding.photo.setVisibility(View.GONE);
|
//binding.photo.setVisibility(View.GONE);
|
@ -0,0 +1,117 @@
|
|||||||
|
package ru.myitschool.work.ui.information;
|
||||||
|
|
||||||
|
import android.util.Log;
|
||||||
|
|
||||||
|
import androidx.annotation.NonNull;
|
||||||
|
import androidx.annotation.Nullable;
|
||||||
|
import androidx.lifecycle.LiveData;
|
||||||
|
import androidx.lifecycle.MutableLiveData;
|
||||||
|
import androidx.lifecycle.ViewModel;
|
||||||
|
|
||||||
|
import java.util.List;
|
||||||
|
|
||||||
|
import ru.myitschool.work.data.UserRepositoryImpl;
|
||||||
|
import ru.myitschool.work.domain.GetAllUserHistoryUseCase;
|
||||||
|
import ru.myitschool.work.domain.sign.IsUserExistUseCase;
|
||||||
|
import ru.sicampus.bootcamp2025.data.UserRepositoryImpl;
|
||||||
|
import ru.sicampus.bootcamp2025.domain.GetUsersListUseCase;
|
||||||
|
import ru.sicampus.bootcamp2025.domain.GetVolunteerCenterByIdUseCase;
|
||||||
|
import ru.sicampus.bootcamp2025.domain.GetVolunteerCentersListUseCase;
|
||||||
|
import ru.sicampus.bootcamp2025.domain.entites.FullVolunteerCenterEntity;
|
||||||
|
import ru.sicampus.bootcamp2025.domain.entites.ItemVolunteerCenterEntity;
|
||||||
|
import ru.sicampus.bootcamp2025.domain.entites.Status;
|
||||||
|
|
||||||
|
public class InformationViewModel extends ViewModel {
|
||||||
|
private final MutableLiveData<State> mutableStateCentersLiveData = new MutableLiveData<>();
|
||||||
|
|
||||||
|
public final LiveData<State> stateCentersLiveData = mutableStateCentersLiveData;
|
||||||
|
|
||||||
|
private final MutableLiveData<State> mutableStateVolunteerCenterLiveData = new MutableLiveData<>();
|
||||||
|
|
||||||
|
public final LiveData<State> stateVolunteerCenterLiveData = mutableStateVolunteerCenterLiveData;
|
||||||
|
|
||||||
|
public final GetAllUserHistoryUseCase getAllUserHistoryUseCase = new GetAllUserHistoryUseCase(
|
||||||
|
UserRepositoryImpl.getInstance()
|
||||||
|
);
|
||||||
|
|
||||||
|
/*public ListViewModel() {
|
||||||
|
update();
|
||||||
|
}*/
|
||||||
|
|
||||||
|
private Integer volunteerCenterId;
|
||||||
|
|
||||||
|
public void changeSelectedVCId(@NonNull Integer volunteerCenterId) {
|
||||||
|
this.volunteerCenterId = volunteerCenterId;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void load() {
|
||||||
|
mutableStateCentersLiveData.setValue(new ListViewModel.State(null, null, null, true));
|
||||||
|
getAllUserHistoryUseCase.execute(status -> {
|
||||||
|
mutableStateCentersLiveData.postValue(fromStatus(status));
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
|
public void getVCById() {
|
||||||
|
getVolunteerCenterByIdUseCase.execute(volunteerCenterId, status -> {
|
||||||
|
Log.d("taggis", status.getStatusCode() + " " + status.getErrors());
|
||||||
|
if (status.getStatusCode() == 200 && status.getErrors() == null) {
|
||||||
|
mutableStateVolunteerCenterLiveData.postValue(new ListViewModel.State(
|
||||||
|
status.getErrors() != null ? status.getErrors().getLocalizedMessage() : null,
|
||||||
|
null,
|
||||||
|
status.getValue(),
|
||||||
|
false
|
||||||
|
));
|
||||||
|
} else {
|
||||||
|
//mutableErrorLiveData.postValue("Something wrong");
|
||||||
|
}
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
|
private ListViewModel.State fromStatus(Status<List<ItemVolunteerCenterEntity>> status) {
|
||||||
|
return new ListViewModel.State(
|
||||||
|
status.getErrors() != null ? status.getErrors().getLocalizedMessage() : null,
|
||||||
|
status.getValue(),
|
||||||
|
null,
|
||||||
|
false
|
||||||
|
);
|
||||||
|
}
|
||||||
|
|
||||||
|
public class State {
|
||||||
|
@Nullable
|
||||||
|
private final String errorMessage;
|
||||||
|
|
||||||
|
@Nullable
|
||||||
|
private final List<ItemVolunteerCenterEntity> itemsVolunteerCenters;
|
||||||
|
|
||||||
|
@Nullable
|
||||||
|
private final FullVolunteerCenterEntity volunteerCenter;
|
||||||
|
|
||||||
|
private final boolean isLoading;
|
||||||
|
|
||||||
|
public State(@Nullable String errorMessage, @Nullable List<ItemVolunteerCenterEntity> itemsVolunteerCenters, FullVolunteerCenterEntity volunteerCenter, boolean isLoading) {
|
||||||
|
this.errorMessage = errorMessage;
|
||||||
|
this.itemsVolunteerCenters = itemsVolunteerCenters;
|
||||||
|
this.volunteerCenter = volunteerCenter;
|
||||||
|
this.isLoading = isLoading;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Nullable
|
||||||
|
public String getErrorMessage() {
|
||||||
|
return errorMessage;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Nullable
|
||||||
|
public List<ItemVolunteerCenterEntity> getItemsVolunteerCenters() {
|
||||||
|
return itemsVolunteerCenters;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Nullable
|
||||||
|
public FullVolunteerCenterEntity getVolunteerCenter() {
|
||||||
|
return volunteerCenter;
|
||||||
|
}
|
||||||
|
|
||||||
|
public boolean isLoading() {
|
||||||
|
return isLoading;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
@ -1,4 +1,4 @@
|
|||||||
package ru.myitschool.work.ui;
|
package ru.myitschool.work.ui.login;
|
||||||
|
|
||||||
import android.content.Context;
|
import android.content.Context;
|
||||||
import android.content.SharedPreferences;
|
import android.content.SharedPreferences;
|
||||||
@ -26,6 +26,7 @@ import ru.myitschool.work.R;
|
|||||||
import ru.myitschool.work.core.Constants;
|
import ru.myitschool.work.core.Constants;
|
||||||
import ru.myitschool.work.databinding.FragmentLoginBinding;
|
import ru.myitschool.work.databinding.FragmentLoginBinding;
|
||||||
import ru.myitschool.work.ui.StoreAPI;
|
import ru.myitschool.work.ui.StoreAPI;
|
||||||
|
import ru.myitschool.work.ui.login.LoginViewModel;
|
||||||
import ru.myitschool.work.utils.OnChangeText;
|
import ru.myitschool.work.utils.OnChangeText;
|
||||||
import ru.myitschool.work.utils.PreferenceManager;
|
import ru.myitschool.work.utils.PreferenceManager;
|
||||||
|
|
||||||
@ -102,7 +103,7 @@ public class LoginFragment extends Fragment {
|
|||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void onTextChanged(CharSequence charSequence, int i, int i1, int i2) {
|
public void onTextChanged(CharSequence charSequence, int i, int i1, int i2) {
|
||||||
viewModel.changePassword(s.toString());
|
viewModel.changePassword(charSequence.toString());
|
||||||
if (binding.password.getText().length() >= 5) {
|
if (binding.password.getText().length() >= 5) {
|
||||||
binding.login.setEnabled(true);
|
binding.login.setEnabled(true);
|
||||||
} else {
|
} else {
|
||||||
@ -150,7 +151,7 @@ public class LoginFragment extends Fragment {
|
|||||||
public void onResponse(Call<Boolean> call, Response<Boolean> response) {
|
public void onResponse(Call<Boolean> call, Response<Boolean> response) {
|
||||||
if (response.isSuccessful()) {
|
if (response.isSuccessful()) {
|
||||||
if (response.body() != null && response.body()) {
|
if (response.body() != null && response.body()) {
|
||||||
preferenceManager.putString(ru.myitschool.work.ui.Constants.KEY_LOGIN, binding.username.getText().toString());
|
preferenceManager.putString(ru.myitschool.work.utils.Constants.KEY_LOGIN, binding.username.getText().toString());
|
||||||
Navigation.findNavController(view).navigate(R.id.action_loginFragment_to_informationFragment);
|
Navigation.findNavController(view).navigate(R.id.action_loginFragment_to_informationFragment);
|
||||||
//getFragmentManager().beginTransaction().replace(R.id.nav_host_fragment, new InformationFragment()).commit();
|
//getFragmentManager().beginTransaction().replace(R.id.nav_host_fragment, new InformationFragment()).commit();
|
||||||
} else {
|
} else {
|
||||||
|
@ -11,17 +11,16 @@ import androidx.lifecycle.ViewModel;
|
|||||||
|
|
||||||
import ru.myitschool.work.R;
|
import ru.myitschool.work.R;
|
||||||
import ru.myitschool.work.data.UserRepositoryImpl;
|
import ru.myitschool.work.data.UserRepositoryImpl;
|
||||||
import ru.myitschool.work.domain.sign.CreateUserUseCase;
|
|
||||||
import ru.myitschool.work.domain.sign.IsUserExistUseCase;
|
import ru.myitschool.work.domain.sign.IsUserExistUseCase;
|
||||||
import ru.myitschool.work.domain.sign.LoginUserUseCase;
|
import ru.myitschool.work.domain.sign.LoginUserUseCase;
|
||||||
|
|
||||||
public class LoginViewModel extends ViewModel {
|
public class LoginViewModel extends ViewModel {
|
||||||
|
|
||||||
private final State INIT_STATE = new State(R.string.title_init, R.string.button_init, false);
|
//private final State INIT_STATE = new State(R.string.title_init, R.string.button_init, false);
|
||||||
private final MutableLiveData<State> mutableStateLiveData = new MutableLiveData<>(
|
/*private final MutableLiveData<State> mutableStateLiveData = new MutableLiveData<>(
|
||||||
INIT_STATE
|
INIT_STATE
|
||||||
);
|
);*/
|
||||||
public final LiveData<State> stateLiveData = mutableStateLiveData;
|
//public final LiveData<State> stateLiveData = mutableStateLiveData;
|
||||||
|
|
||||||
private final MutableLiveData<String> mutableErrorLiveData = new MutableLiveData<>();
|
private final MutableLiveData<String> mutableErrorLiveData = new MutableLiveData<>();
|
||||||
public final LiveData<String> errorLiveData = mutableErrorLiveData;
|
public final LiveData<String> errorLiveData = mutableErrorLiveData;
|
||||||
@ -51,7 +50,7 @@ public class LoginViewModel extends ViewModel {
|
|||||||
this.username = username;
|
this.username = username;
|
||||||
if (userCheckCompleted) {
|
if (userCheckCompleted) {
|
||||||
userCheckCompleted = false;
|
userCheckCompleted = false;
|
||||||
mutableStateLiveData.postValue(INIT_STATE);
|
//mutableStateLiveData.postValue(INIT_STATE);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -3,4 +3,6 @@ package ru.myitschool.work.utils;
|
|||||||
public class Constants {
|
public class Constants {
|
||||||
public static final String KEY_PREFERENCE_NAME = "App";
|
public static final String KEY_PREFERENCE_NAME = "App";
|
||||||
public static final String KEY_USER_USERNAME = "userUsername";
|
public static final String KEY_USER_USERNAME = "userUsername";
|
||||||
|
public static String KEY_LOGIN = "login";
|
||||||
|
public static String KEY_RESULT = "result";
|
||||||
}
|
}
|
||||||
|
@ -6,7 +6,7 @@
|
|||||||
app:startDestination="@id/loginFragment">
|
app:startDestination="@id/loginFragment">
|
||||||
<fragment
|
<fragment
|
||||||
android:id="@+id/informationFragment"
|
android:id="@+id/informationFragment"
|
||||||
android:name="ru.myitschool.work.ui.InformationFragment"
|
android:name="ru.myitschool.work.ui.information.InformationFragment"
|
||||||
android:label="HistoryList"
|
android:label="HistoryList"
|
||||||
tools:layout="@layout/fragment_information">
|
tools:layout="@layout/fragment_information">
|
||||||
<action
|
<action
|
||||||
|
Loading…
x
Reference in New Issue
Block a user