From d5a49dfa1e3735cf4b587d11a3339cf04a74ffd8 Mon Sep 17 00:00:00 2001 From: SunZar <121431240+SunZar@users.noreply.github.com> Date: Thu, 20 Feb 2025 14:42:33 +0300 Subject: [PATCH 1/2] feat: History is working, small changes in Login --- .../work/data/UserRepositoryImpl.java | 17 ++-- .../myitschool/work/data/dto/HistoryDto.java | 6 +- .../ru/myitschool/work/data/dto/UserDto.java | 29 +++--- .../myitschool/work/data/source/UserApi.java | 12 +-- .../work/domain/entities/HistoryEntity.java | 22 ++--- .../work/domain/entities/UserEntity.java | 55 +++++++----- .../work/domain/sign/SignUserRepository.java | 2 +- .../work/ui/information/HistoryAdapter.java | 9 +- .../ui/information/InformationFragment.java | 20 +++-- .../ui/information/InformationViewModel.java | 4 +- .../work/ui/login/LoginFragment.java | 10 ++- .../work/ui/login/LoginViewModel.java | 11 ++- .../work/ui/profile/ProfileFragment.java | 2 +- .../work/ui/profile/ProfileViewModel.java | 4 +- .../ru/myitschool/work/utils/Constants.java | 2 + .../main/res/layout/fragment_information.xml | 53 +++++------ app/src/main/res/layout/item_history.xml | 90 +++++++++++++------ app/src/main/res/values-en/strings.xml | 4 + app/src/main/res/values-ru/strings.xml | 3 + app/src/main/res/values/strings.xml | 4 + app/src/main/res/values/strings_qr.xml | 2 +- 21 files changed, 213 insertions(+), 148 deletions(-) diff --git a/app/src/main/java/ru/myitschool/work/data/UserRepositoryImpl.java b/app/src/main/java/ru/myitschool/work/data/UserRepositoryImpl.java index 9ce5573..03e16f1 100644 --- a/app/src/main/java/ru/myitschool/work/data/UserRepositoryImpl.java +++ b/app/src/main/java/ru/myitschool/work/data/UserRepositoryImpl.java @@ -62,13 +62,13 @@ public class UserRepositoryImpl implements UserRepository, SignUserRepository { historiesDto -> { ArrayList result1 = new ArrayList<>(historiesDto.size()); for (HistoryDto history : historiesDto) { - final Integer id1 = history.id; + final Long id1 = history.id; final String username1 = history.username; - final Long time = history.time; + final String time = history.time; final String type = history.type; - final Integer code = history.code; + final Long code = history.code; if (username1 != null && id1 != null){ - result1.add(new HistoryEntity(id1, username1, time, type, code)); + result1.add(new HistoryEntity(id1, username1, type, time, code)); } } return result1; @@ -111,13 +111,14 @@ public class UserRepositoryImpl implements UserRepository, SignUserRepository { callback, user -> { if (user != null) { + final Integer id1 = user.id; final String username1 = user.username; + final String name = user.name; 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); + final String authority = user.authority; + if (id1 != null && username != null){ + return new UserEntity(id1, username1, name, photo, position, authority); } else{ return null; diff --git a/app/src/main/java/ru/myitschool/work/data/dto/HistoryDto.java b/app/src/main/java/ru/myitschool/work/data/dto/HistoryDto.java index 77463db..ae44def 100644 --- a/app/src/main/java/ru/myitschool/work/data/dto/HistoryDto.java +++ b/app/src/main/java/ru/myitschool/work/data/dto/HistoryDto.java @@ -7,7 +7,7 @@ import com.google.gson.annotations.SerializedName; public class HistoryDto { @Nullable @SerializedName("id") - public Integer id; + public Long id; @Nullable @SerializedName("username") @@ -15,7 +15,7 @@ public class HistoryDto { @Nullable @SerializedName("time") - public Long time; + public String time; @Nullable @SerializedName("type") @@ -23,6 +23,6 @@ public class HistoryDto { @Nullable @SerializedName("code") - public Integer code; + public Long code; } diff --git a/app/src/main/java/ru/myitschool/work/data/dto/UserDto.java b/app/src/main/java/ru/myitschool/work/data/dto/UserDto.java index 019ffce..9624649 100644 --- a/app/src/main/java/ru/myitschool/work/data/dto/UserDto.java +++ b/app/src/main/java/ru/myitschool/work/data/dto/UserDto.java @@ -5,35 +5,32 @@ import androidx.annotation.Nullable; import com.google.gson.annotations.SerializedName; public class UserDto { + + @Nullable + @SerializedName("id") + public Integer id; + @Nullable @SerializedName("username") public String username; @Nullable - @SerializedName("password") - public String password; + @SerializedName("name") + public String name; @Nullable @SerializedName("photo") public String photo; - @Nullable - @SerializedName("lastVisit") - public Long lastVisit; - - @Nullable - @SerializedName("idUser") - public Integer idUser; - - @Nullable - @SerializedName("status") - public int status; - @Nullable @SerializedName("position") public String position; - public UserDto(@Nullable String username, @Nullable String password, @Nullable String photo, @Nullable Long lastVisit, @Nullable Integer idUser, int status, @Nullable String position) { + @Nullable + @SerializedName("authority") + public String authority; + + /*public UserDto(@Nullable String username, @Nullable String password, @Nullable String photo, @Nullable Long lastVisit, @Nullable Integer idUser, int status, @Nullable String position) { this.username = username; this.password = password; this.photo = photo; @@ -108,7 +105,7 @@ public class UserDto { - +*/ diff --git a/app/src/main/java/ru/myitschool/work/data/source/UserApi.java b/app/src/main/java/ru/myitschool/work/data/source/UserApi.java index 96203f2..5522cdb 100644 --- a/app/src/main/java/ru/myitschool/work/data/source/UserApi.java +++ b/app/src/main/java/ru/myitschool/work/data/source/UserApi.java @@ -15,14 +15,14 @@ import ru.myitschool.work.ui.History; public interface UserApi { @GET("api/user") Call> getAllUsers(); - @GET("api/user/{id}") + @GET("api/user/{id}") Call getUserByUsername(@Path("username") String Username); - @GET("api/user/username/{username}") - Call isExistUser(@Path("username") String username); - @GET("api/user/login") + @GET("api/{username}/auth") + Call isExistUser(@Path("username") String username); + @GET("api/login") Call login(); - @GET("api/history/user/{id}") - Call> getAllUserHistory(@Path("id") String username); + @GET("api/{username}/passing") + Call> getAllUserHistory(@Path("username") String username); /* @GET("api/history/{id}") Call getHistoryById(@Path("id") Integer id); */ diff --git a/app/src/main/java/ru/myitschool/work/domain/entities/HistoryEntity.java b/app/src/main/java/ru/myitschool/work/domain/entities/HistoryEntity.java index 74bf911..b915d6b 100644 --- a/app/src/main/java/ru/myitschool/work/domain/entities/HistoryEntity.java +++ b/app/src/main/java/ru/myitschool/work/domain/entities/HistoryEntity.java @@ -7,14 +7,14 @@ import com.google.gson.annotations.SerializedName; public class HistoryEntity { @Nullable @SerializedName("id") - public Integer id; + public Long id; @Nullable - public Integer getId() { + public Long getId() { return id; } - public void setId(@Nullable Integer id) { + public void setId(@Nullable Long id) { this.id = id; } @@ -28,11 +28,11 @@ public class HistoryEntity { } @Nullable - public Long getTime() { + public String getTime() { return time; } - public void setTime(@Nullable Long time) { + public void setTime(@Nullable String time) { this.time = time; } @@ -46,19 +46,19 @@ public class HistoryEntity { } @Nullable - public Integer getCode() { + public Long getCode() { return code; } - public void setCode(@Nullable Integer code) { + public void setCode(@Nullable Long code) { this.code = code; } - public HistoryEntity(@Nullable Integer id, @Nullable String username, @Nullable Long time, @Nullable String type, @Nullable Integer code) { + public HistoryEntity(@Nullable Long id, @Nullable String username, @Nullable String type, @Nullable String time, @Nullable Long code) { this.id = id; this.username = username; - this.time = time; this.type = type; + this.time = time; this.code = code; } @@ -68,7 +68,7 @@ public class HistoryEntity { @Nullable @SerializedName("time") - public Long time; + public String time; @Nullable @SerializedName("type") @@ -76,6 +76,6 @@ public class HistoryEntity { @Nullable @SerializedName("code") - public Integer code; + public Long code; } diff --git a/app/src/main/java/ru/myitschool/work/domain/entities/UserEntity.java b/app/src/main/java/ru/myitschool/work/domain/entities/UserEntity.java index 82ad6d5..59d34f1 100644 --- a/app/src/main/java/ru/myitschool/work/domain/entities/UserEntity.java +++ b/app/src/main/java/ru/myitschool/work/domain/entities/UserEntity.java @@ -15,32 +15,37 @@ public class UserEntity { public String username; @Nullable - @SerializedName("photo") - public String photo; + @SerializedName("name") + public String name; @Nullable - @SerializedName("lastVisit") - public Long lastVisit; + @SerializedName("photo") + public String photo; @Nullable @SerializedName("position") public String position; - public UserEntity(@Nullable String username, @Nullable String photo, @Nullable Long lastVisit, @Nullable Integer id, @Nullable String position) { - this.username = username; - this.photo = photo; - this.lastVisit = lastVisit; + @Nullable + @SerializedName("authority") + public String authority; + + public UserEntity(@Nullable Integer id, @Nullable String username, @Nullable String name, @Nullable String photo, @Nullable String position, @Nullable String authority) { this.id = id; + this.username = username; + this.name = name; + this.photo = photo; this.position = position; + this.authority = authority; } @Nullable - public String getPosition() { - return position; + public Integer getId() { + return id; } - public void setPosition(@Nullable String position) { - this.position = position; + public void setId(@Nullable Integer id) { + this.id = id; } @Nullable @@ -52,6 +57,15 @@ public class UserEntity { this.username = username; } + @Nullable + public String getName() { + return name; + } + + public void setName(@Nullable String name) { + this.name = name; + } + @Nullable public String getPhoto() { return photo; @@ -62,21 +76,20 @@ public class UserEntity { } @Nullable - public Long getLastVisit() { - return lastVisit; + public String getPosition() { + return position; } - public void setLastVisit(@Nullable Long lastVisit) { - this.lastVisit = lastVisit; + public void setPosition(@Nullable String position) { + this.position = position; } @Nullable - public Integer getId() { - return id; + public String getAuthority() { + return authority; } - public void setId(@Nullable Integer id) { - this.id = id; + public void setAuthority(@Nullable String authority) { + this.authority = authority; } - } diff --git a/app/src/main/java/ru/myitschool/work/domain/sign/SignUserRepository.java b/app/src/main/java/ru/myitschool/work/domain/sign/SignUserRepository.java index 51bfc14..cb75ba4 100644 --- a/app/src/main/java/ru/myitschool/work/domain/sign/SignUserRepository.java +++ b/app/src/main/java/ru/myitschool/work/domain/sign/SignUserRepository.java @@ -10,7 +10,7 @@ import ru.myitschool.work.domain.entities.Status; public interface SignUserRepository { void getUserByUsername(@NonNull String username, Consumer> callback); - void isExistUser(@NonNull String login, Consumer> callback); + void isExistUser(@NonNull String username, Consumer> callback); void login( @NonNull String username, diff --git a/app/src/main/java/ru/myitschool/work/ui/information/HistoryAdapter.java b/app/src/main/java/ru/myitschool/work/ui/information/HistoryAdapter.java index 9bbb10d..2e74620 100644 --- a/app/src/main/java/ru/myitschool/work/ui/information/HistoryAdapter.java +++ b/app/src/main/java/ru/myitschool/work/ui/information/HistoryAdapter.java @@ -56,9 +56,12 @@ public class HistoryAdapter extends RecyclerView.Adapter { - onClickScan(view); - }); +// binding.scan.setOnClickListener(view1 -> { +// onClickScan(view); +// }); binding.logout.setOnClickListener(view2 -> { onClickLogout(view); @@ -120,8 +121,9 @@ public class InformationFragment extends Fragment { - binding.loading.setVisibility(Utils.visibleOrGone(loadingHistory)); + //binding.loading.setVisibility(Utils.visibleOrGone(loadingHistory)); if (state.isLoading() == false) { + binding.refreshLayout.setRefreshing(false); if (state.getItemsHistory() != null) { history = state.getItemsHistory(); @@ -138,12 +140,12 @@ public class InformationFragment extends Fragment { historyAdapter.updateData(history); historyAdapter.notifyDataSetChanged(); binding.refreshLayout.setRefreshing(false); + } else { + Toast.makeText(this.getContext(), "Error", Toast.LENGTH_SHORT).show(); + takeError(); } - } else { - Toast.makeText(this.getContext(), "Error", Toast.LENGTH_SHORT).show(); - takeError(); } - binding.refreshLayout.setRefreshing(false); + //binding.refreshLayout.setRefreshing(false); }); /* viewModel.stateHistoryLiveData.observe(getViewLifecycleOwner(), state -> { @@ -250,7 +252,7 @@ public class InformationFragment extends Fragment { binding.lastEntry.setVisibility(View.GONE); binding.position.setVisibility(View.GONE); //binding.logout.setVisibility(View.GONE); - binding.scan.setVisibility(View.GONE); + //binding.scan.setVisibility(View.GONE); binding.error.setVisibility(View.VISIBLE); binding.refreshLayout.setRefreshing(false); diff --git a/app/src/main/java/ru/myitschool/work/ui/information/InformationViewModel.java b/app/src/main/java/ru/myitschool/work/ui/information/InformationViewModel.java index 8a5a0ec..0bbf6c2 100644 --- a/app/src/main/java/ru/myitschool/work/ui/information/InformationViewModel.java +++ b/app/src/main/java/ru/myitschool/work/ui/information/InformationViewModel.java @@ -35,11 +35,11 @@ public class InformationViewModel extends ViewModel { private String username; public void changeSelectedUsername(@NonNull String username) { - this.username = this.username; + this.username = username; } public void load() { - mutableStateAllUserHistoryLiveData.setValue(new InformationViewModel.State(null, null, false)); + mutableStateAllUserHistoryLiveData.setValue(new InformationViewModel.State(null, null, true)); getHistById(); /*getAllUserHistoryUseCase.execute(username, status -> { mutableStateHistoryLiveData.postValue(fromStatus(status)); diff --git a/app/src/main/java/ru/myitschool/work/ui/login/LoginFragment.java b/app/src/main/java/ru/myitschool/work/ui/login/LoginFragment.java index 97f3a63..347411d 100644 --- a/app/src/main/java/ru/myitschool/work/ui/login/LoginFragment.java +++ b/app/src/main/java/ru/myitschool/work/ui/login/LoginFragment.java @@ -23,10 +23,10 @@ import retrofit2.Response; import retrofit2.Retrofit; import retrofit2.converter.gson.GsonConverterFactory; import ru.myitschool.work.R; -import ru.myitschool.work.core.Constants; import ru.myitschool.work.databinding.FragmentLoginBinding; import ru.myitschool.work.ui.StoreAPI; import ru.myitschool.work.ui.login.LoginViewModel; +import ru.myitschool.work.utils.Constants; import ru.myitschool.work.utils.OnChangeText; import ru.myitschool.work.utils.PreferenceManager; @@ -135,7 +135,7 @@ public class LoginFragment extends Fragment { subscribe(viewModel); } - private void onClickLogin(View view) { + /*private void onClickLogin(View view) { Retrofit retrofit = new Retrofit.Builder() .baseUrl(Constants.SERVER_ADDRESS) .addConverterFactory(GsonConverterFactory.create()) @@ -171,7 +171,7 @@ public class LoginFragment extends Fragment { binding.error.setVisibility(View.VISIBLE); } }); - } + }*/ private void subscribe(LoginViewModel viewModel) { viewModel.errorLiveData.observe(getViewLifecycleOwner(), error -> { @@ -184,8 +184,10 @@ public class LoginFragment extends Fragment { });*/ viewModel.openListLiveData.observe(getViewLifecycleOwner(), username -> { final View view = getView(); + Toast.makeText(getContext(), "FFFFFFFFF", Toast.LENGTH_SHORT).show(); if (view == null) return; - preferenceManager.putString(ru.myitschool.work.utils.Constants.KEY_USER_USERNAME, username); + preferenceManager.putString(Constants.KEY_USER_USERNAME, username); + preferenceManager.putString(Constants.KEY_USER_ROLE, username); view.getRootView().findViewById(R.id.nav_view).setVisibility(View.VISIBLE); Navigation.findNavController(view).navigate(R.id.action_loginFragment_to_informationFragment); }); diff --git a/app/src/main/java/ru/myitschool/work/ui/login/LoginViewModel.java b/app/src/main/java/ru/myitschool/work/ui/login/LoginViewModel.java index c1dde6f..1a5bd2b 100644 --- a/app/src/main/java/ru/myitschool/work/ui/login/LoginViewModel.java +++ b/app/src/main/java/ru/myitschool/work/ui/login/LoginViewModel.java @@ -59,11 +59,12 @@ public class LoginViewModel extends ViewModel { } public void confirm() { - if (userCheckCompleted) { + loginUser(username, password); + /*if (userCheckCompleted) { checkAuth(); } else { checkUserExist(); - } + }*/ } @@ -72,14 +73,17 @@ public class LoginViewModel extends ViewModel { final String currentPassword = password; if (currentPassword == null || currentPassword.isEmpty()) { mutableErrorLiveData.postValue("Password cannot be null"); + userCheckCompleted = false; return; } if (currentUsername == null || currentUsername.isEmpty()) { mutableErrorLiveData.postValue("Login cannot be null"); + userCheckCompleted = false; return; } if (!isAccountExist) { mutableErrorLiveData.postValue("This user not exist"); + userCheckCompleted = false; return; /*createUserUseCase.execute(currentUsername, currentPassword, status -> { if (status.getStatusCode() == 201 && status.getErrors() == null) { @@ -101,6 +105,7 @@ public class LoginViewModel extends ViewModel { mutableOpenListLiveData.postValue(currentUsername); } else { mutableErrorLiveData.postValue("Something wrong"); + userCheckCompleted = false; } }); } @@ -109,12 +114,14 @@ public class LoginViewModel extends ViewModel { final String currentUsername = username; if (currentUsername == null || currentUsername.isEmpty()) { mutableErrorLiveData.postValue("Login cannot be null"); + userCheckCompleted = false; return; } isUserExistUseCase.execute(currentUsername, status -> { if (status.getErrors() != null) { //Log.d("tagg", status.getErrors().toString()); mutableErrorLiveData.postValue("Something wrong. Try later =(" + status.getErrors()); + userCheckCompleted = false; return; } userCheckCompleted = true; diff --git a/app/src/main/java/ru/myitschool/work/ui/profile/ProfileFragment.java b/app/src/main/java/ru/myitschool/work/ui/profile/ProfileFragment.java index cdf10a1..f7440e6 100644 --- a/app/src/main/java/ru/myitschool/work/ui/profile/ProfileFragment.java +++ b/app/src/main/java/ru/myitschool/work/ui/profile/ProfileFragment.java @@ -40,7 +40,7 @@ public class ProfileFragment extends Fragment { binding.username.setText(userEntity.getUsername()); binding.position.setText(userEntity.getPosition()); - binding.lastTime.setText(userEntity.getLastVisit().toString()); + binding.lastTime.setText(userEntity.getName()); }); diff --git a/app/src/main/java/ru/myitschool/work/ui/profile/ProfileViewModel.java b/app/src/main/java/ru/myitschool/work/ui/profile/ProfileViewModel.java index 5cfe7f2..cc9611b 100644 --- a/app/src/main/java/ru/myitschool/work/ui/profile/ProfileViewModel.java +++ b/app/src/main/java/ru/myitschool/work/ui/profile/ProfileViewModel.java @@ -24,9 +24,9 @@ public class ProfileViewModel extends ViewModel { UserRepositoryImpl.getInstance() ); - public final GetAllUserHistoryUseCase getAllUserHistoryListUseCase = new GetAllUserHistoryUseCase( + /*public final GetAllUserHistoryUseCase getAllUserHistoryListUseCase = new GetAllUserHistoryUseCase( UserRepositoryImpl.getInstance() - ); + );*/ private final IsUserExistUseCase isUserExistUseCase = new IsUserExistUseCase( UserRepositoryImpl.getInstance() ); diff --git a/app/src/main/java/ru/myitschool/work/utils/Constants.java b/app/src/main/java/ru/myitschool/work/utils/Constants.java index f1059c8..89323d2 100644 --- a/app/src/main/java/ru/myitschool/work/utils/Constants.java +++ b/app/src/main/java/ru/myitschool/work/utils/Constants.java @@ -3,6 +3,8 @@ package ru.myitschool.work.utils; public class Constants { public static final String KEY_PREFERENCE_NAME = "App"; public static final String KEY_USER_USERNAME = "userUsername"; + public static final String KEY_USER_ROLE = "userRole"; + public static final String KEY_USER_BLOCKED = "userBlocked"; public static String KEY_LOGIN = "login"; public static String KEY_RESULT = "result"; } diff --git a/app/src/main/res/layout/fragment_information.xml b/app/src/main/res/layout/fragment_information.xml index edb87a0..847bc85 100644 --- a/app/src/main/res/layout/fragment_information.xml +++ b/app/src/main/res/layout/fragment_information.xml @@ -1,5 +1,6 @@ - - - - - - - + app:layout_constraintBottom_toBottomOf="parent"> + + + + diff --git a/app/src/main/res/layout/item_history.xml b/app/src/main/res/layout/item_history.xml index be3b98d..198e660 100644 --- a/app/src/main/res/layout/item_history.xml +++ b/app/src/main/res/layout/item_history.xml @@ -1,39 +1,79 @@ - + android:orientation="horizontal" + app:layout_constraintStart_toStartOf="parent" + app:layout_constraintTop_toTopOf="parent"> - + + + + + + + android:orientation="horizontal" + app:layout_constraintStart_toStartOf="parent" + app:layout_constraintTop_toBottomOf="@id/layout_time"> - + + + + + + + android:orientation="horizontal" + app:layout_constraintStart_toStartOf="parent" + app:layout_constraintTop_toBottomOf="@id/layout_code"> + + + + \ No newline at end of file diff --git a/app/src/main/res/values-en/strings.xml b/app/src/main/res/values-en/strings.xml index 4f807d5..daeaacb 100644 --- a/app/src/main/res/values-en/strings.xml +++ b/app/src/main/res/values-en/strings.xml @@ -12,4 +12,8 @@ Operation was cancelled Success Something wrong + + Time: + Enter type: + Identificator: \ No newline at end of file diff --git a/app/src/main/res/values-ru/strings.xml b/app/src/main/res/values-ru/strings.xml index f09bb92..b78a608 100644 --- a/app/src/main/res/values-ru/strings.xml +++ b/app/src/main/res/values-ru/strings.xml @@ -12,4 +12,7 @@ Вход был отменён Успешно Что-то пошло не так + Время: + Тип прохода: + Идентификатор: \ No newline at end of file diff --git a/app/src/main/res/values/strings.xml b/app/src/main/res/values/strings.xml index f09bb92..894b020 100644 --- a/app/src/main/res/values/strings.xml +++ b/app/src/main/res/values/strings.xml @@ -12,4 +12,8 @@ Вход был отменён Успешно Что-то пошло не так + + Время: + Тип прохода: + Идентификатор: \ No newline at end of file diff --git a/app/src/main/res/values/strings_qr.xml b/app/src/main/res/values/strings_qr.xml index ce50067..700be8b 100644 --- a/app/src/main/res/values/strings_qr.xml +++ b/app/src/main/res/values/strings_qr.xml @@ -1,4 +1,4 @@ - Close + Close \ No newline at end of file From 1ac6044dc62a2728683c0aafffb8484470200286 Mon Sep 17 00:00:00 2001 From: SunZar <121431240+SunZar@users.noreply.github.com> Date: Thu, 20 Feb 2025 14:44:33 +0300 Subject: [PATCH 2/2] feat: History is working, small changes in Login --- .kotlin/errors/errors-1740048772972.log | 82 +++++++++++++++++++ .../work/domain/UserRepository.java | 22 +++++ 2 files changed, 104 insertions(+) create mode 100644 .kotlin/errors/errors-1740048772972.log create mode 100644 app/src/main/java/ru/myitschool/work/domain/UserRepository.java diff --git a/.kotlin/errors/errors-1740048772972.log b/.kotlin/errors/errors-1740048772972.log new file mode 100644 index 0000000..eb6fd64 --- /dev/null +++ b/.kotlin/errors/errors-1740048772972.log @@ -0,0 +1,82 @@ +kotlin version: 2.0.21 +error message: Daemon compilation failed: null +java.lang.Exception + at org.jetbrains.kotlin.daemon.common.CompileService$CallResult$Error.get(CompileService.kt:69) + at org.jetbrains.kotlin.daemon.common.CompileService$CallResult$Error.get(CompileService.kt:65) + at org.jetbrains.kotlin.compilerRunner.GradleKotlinCompilerWork.compileWithDaemon(GradleKotlinCompilerWork.kt:240) + at org.jetbrains.kotlin.compilerRunner.GradleKotlinCompilerWork.compileWithDaemonOrFallbackImpl(GradleKotlinCompilerWork.kt:159) + at org.jetbrains.kotlin.compilerRunner.GradleKotlinCompilerWork.run(GradleKotlinCompilerWork.kt:111) + at org.jetbrains.kotlin.compilerRunner.GradleCompilerRunnerWithWorkers$GradleKotlinCompilerWorkAction.execute(GradleCompilerRunnerWithWorkers.kt:76) + at org.gradle.workers.internal.DefaultWorkerServer.execute(DefaultWorkerServer.java:63) + at org.gradle.workers.internal.NoIsolationWorkerFactory$1$1.create(NoIsolationWorkerFactory.java:66) + at org.gradle.workers.internal.NoIsolationWorkerFactory$1$1.create(NoIsolationWorkerFactory.java:62) + at org.gradle.internal.classloader.ClassLoaderUtils.executeInClassloader(ClassLoaderUtils.java:100) + at org.gradle.workers.internal.NoIsolationWorkerFactory$1.lambda$execute$0(NoIsolationWorkerFactory.java:62) + at org.gradle.workers.internal.AbstractWorker$1.call(AbstractWorker.java:44) + at org.gradle.workers.internal.AbstractWorker$1.call(AbstractWorker.java:41) + at org.gradle.internal.operations.DefaultBuildOperationRunner$CallableBuildOperationWorker.execute(DefaultBuildOperationRunner.java:209) + at org.gradle.internal.operations.DefaultBuildOperationRunner$CallableBuildOperationWorker.execute(DefaultBuildOperationRunner.java:204) + at org.gradle.internal.operations.DefaultBuildOperationRunner$2.execute(DefaultBuildOperationRunner.java:66) + at org.gradle.internal.operations.DefaultBuildOperationRunner$2.execute(DefaultBuildOperationRunner.java:59) + at org.gradle.internal.operations.DefaultBuildOperationRunner.execute(DefaultBuildOperationRunner.java:166) + at org.gradle.internal.operations.DefaultBuildOperationRunner.execute(DefaultBuildOperationRunner.java:59) + at org.gradle.internal.operations.DefaultBuildOperationRunner.call(DefaultBuildOperationRunner.java:53) + at org.gradle.workers.internal.AbstractWorker.executeWrappedInBuildOperation(AbstractWorker.java:41) + at org.gradle.workers.internal.NoIsolationWorkerFactory$1.execute(NoIsolationWorkerFactory.java:59) + at org.gradle.workers.internal.DefaultWorkerExecutor.lambda$submitWork$0(DefaultWorkerExecutor.java:174) + at java.base/java.util.concurrent.FutureTask.run(Unknown Source) + at org.gradle.internal.work.DefaultConditionalExecutionQueue$ExecutionRunner.runExecution(DefaultConditionalExecutionQueue.java:195) + at org.gradle.internal.work.DefaultConditionalExecutionQueue$ExecutionRunner.access$700(DefaultConditionalExecutionQueue.java:128) + at org.gradle.internal.work.DefaultConditionalExecutionQueue$ExecutionRunner$1.run(DefaultConditionalExecutionQueue.java:170) + at org.gradle.internal.Factories$1.create(Factories.java:31) + at org.gradle.internal.work.DefaultWorkerLeaseService.withLocks(DefaultWorkerLeaseService.java:267) + at org.gradle.internal.work.DefaultWorkerLeaseService.runAsWorkerThread(DefaultWorkerLeaseService.java:131) + at org.gradle.internal.work.DefaultWorkerLeaseService.runAsWorkerThread(DefaultWorkerLeaseService.java:136) + at org.gradle.internal.work.DefaultConditionalExecutionQueue$ExecutionRunner.runBatch(DefaultConditionalExecutionQueue.java:165) + at org.gradle.internal.work.DefaultConditionalExecutionQueue$ExecutionRunner.run(DefaultConditionalExecutionQueue.java:134) + at java.base/java.util.concurrent.Executors$RunnableAdapter.call(Unknown Source) + at java.base/java.util.concurrent.FutureTask.run(Unknown Source) + at org.gradle.internal.concurrent.ExecutorPolicy$CatchAndRecordFailures.onExecute(ExecutorPolicy.java:64) + at org.gradle.internal.concurrent.AbstractManagedExecutor$1.run(AbstractManagedExecutor.java:48) + at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(Unknown Source) + at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source) + at java.base/java.lang.Thread.run(Unknown Source) +Caused by: java.nio.file.DirectoryNotEmptyException: C:\Users\User\AppData\Local\Temp\kotlin-backups7383909767525510423 + at java.base/sun.nio.fs.WindowsFileSystemProvider.implDelete(Unknown Source) + at java.base/sun.nio.fs.AbstractFileSystemProvider.delete(Unknown Source) + at java.base/java.nio.file.Files.delete(Unknown Source) + at org.jetbrains.kotlin.incremental.RecoverableCompilationTransaction$cleanupStash$2$1$1.invoke(CompilationTransaction.kt:244) + at org.jetbrains.kotlin.incremental.RecoverableCompilationTransaction$cleanupStash$2$1$1.invoke(CompilationTransaction.kt:244) + at org.jetbrains.kotlin.incremental.RecoverableCompilationTransaction.cleanupStash$lambda$11$lambda$10$lambda$9(CompilationTransaction.kt:244) + at java.base/java.util.stream.ForEachOps$ForEachOp$OfRef.accept(Unknown Source) + at java.base/java.util.ArrayList.forEach(Unknown Source) + at java.base/java.util.stream.SortedOps$RefSortingSink.end(Unknown Source) + at java.base/java.util.stream.Sink$ChainedReference.end(Unknown Source) + at java.base/java.util.stream.AbstractPipeline.copyInto(Unknown Source) + at java.base/java.util.stream.AbstractPipeline.wrapAndCopyInto(Unknown Source) + at java.base/java.util.stream.ForEachOps$ForEachOp.evaluateSequential(Unknown Source) + at java.base/java.util.stream.ForEachOps$ForEachOp$OfRef.evaluateSequential(Unknown Source) + at java.base/java.util.stream.AbstractPipeline.evaluate(Unknown Source) + at java.base/java.util.stream.ReferencePipeline.forEach(Unknown Source) + at org.jetbrains.kotlin.incremental.RecoverableCompilationTransaction.cleanupStash(CompilationTransaction.kt:244) + at org.jetbrains.kotlin.incremental.RecoverableCompilationTransaction.close(CompilationTransaction.kt:254) + at org.jetbrains.kotlin.incremental.IncrementalCompilerRunner.tryCompileIncrementally(IncrementalCompilerRunner.kt:747) + at org.jetbrains.kotlin.incremental.IncrementalCompilerRunner.compile(IncrementalCompilerRunner.kt:120) + at org.jetbrains.kotlin.daemon.CompileServiceImplBase.execIncrementalCompiler(CompileServiceImpl.kt:675) + at org.jetbrains.kotlin.daemon.CompileServiceImplBase.access$execIncrementalCompiler(CompileServiceImpl.kt:92) + at org.jetbrains.kotlin.daemon.CompileServiceImpl.compile(CompileServiceImpl.kt:1660) + at java.base/jdk.internal.reflect.DirectMethodHandleAccessor.invoke(Unknown Source) + at java.base/java.lang.reflect.Method.invoke(Unknown Source) + at java.rmi/sun.rmi.server.UnicastServerRef.dispatch(Unknown Source) + at java.rmi/sun.rmi.transport.Transport$1.run(Unknown Source) + at java.rmi/sun.rmi.transport.Transport$1.run(Unknown Source) + at java.base/java.security.AccessController.doPrivileged(Unknown Source) + at java.rmi/sun.rmi.transport.Transport.serviceCall(Unknown Source) + at java.rmi/sun.rmi.transport.tcp.TCPTransport.handleMessages(Unknown Source) + at java.rmi/sun.rmi.transport.tcp.TCPTransport$ConnectionHandler.run0(Unknown Source) + at java.rmi/sun.rmi.transport.tcp.TCPTransport$ConnectionHandler.lambda$run$0(Unknown Source) + at java.base/java.security.AccessController.doPrivileged(Unknown Source) + at java.rmi/sun.rmi.transport.tcp.TCPTransport$ConnectionHandler.run(Unknown Source) + ... 3 more + + diff --git a/app/src/main/java/ru/myitschool/work/domain/UserRepository.java b/app/src/main/java/ru/myitschool/work/domain/UserRepository.java new file mode 100644 index 0000000..975d240 --- /dev/null +++ b/app/src/main/java/ru/myitschool/work/domain/UserRepository.java @@ -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>> callback); + + //void getUser(@NonNull Integer id, @NonNull Consumer> callback); + void getAllUserHistory(@NonNull String username, @NonNull Consumer>> callback); + //void getVolunteerCenterById(@NonNull Integer id, @NonNull Consumer> callback); + //void isExist(@NonNull String username, @NonNull Consumer> callback); + //void register(@NonNull String id, @NonNull Consumer> callback); + + //void login(@NonNull String username, @NonNull String password, @NonNull Consumer> callback); +} \ No newline at end of file