diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml
index 2ae5448..08c38ea 100644
--- a/app/src/main/AndroidManifest.xml
+++ b/app/src/main/AndroidManifest.xml
@@ -1,6 +1,5 @@
-
+
@@ -8,22 +7,24 @@
+ android:usesCleartextTraffic="true"
+ android:theme="@style/splashScreenTheme">
+
+
+
+ android:name=".ui.screens.MainActivity"
+ android:exported="true" >
@@ -31,5 +32,4 @@
-
-
\ No newline at end of file
+
diff --git a/app/src/main/java/ru/myitschool/work/api/data/EmployeeRepositoryImpl.java b/app/src/main/java/ru/myitschool/work/api/data/EmployeeRepositoryImpl.java
index c5c7fff..92bb96f 100644
--- a/app/src/main/java/ru/myitschool/work/api/data/EmployeeRepositoryImpl.java
+++ b/app/src/main/java/ru/myitschool/work/api/data/EmployeeRepositoryImpl.java
@@ -5,13 +5,11 @@ import androidx.annotation.NonNull;
import ru.myitschool.work.api.data.dto.employee.EmployeeDTO;
import ru.myitschool.work.api.data.network.RetrofitFactory;
import ru.myitschool.work.api.data.source.EmployeeApi;
-import ru.myitschool.work.api.data.utils.CallToConsumer;
import ru.myitschool.work.api.domain.EmployeeRepository;
import ru.myitschool.work.api.domain.entity.Status;
-import ru.myitschool.work.api.domain.entity.employee.EmpolyeeEntity;
+import ru.myitschool.work.api.domain.entity.employee.EmployeeEntity;
import ru.myitschool.work.api.domain.entity.employee.ItemEmployeeEntity;
-import java.util.ArrayList;
import java.util.List;
import java.util.function.Consumer;
@@ -85,22 +83,22 @@ public class EmployeeRepositoryImpl implements EmployeeRepository {
// }
@Override
- public void getAllEmployees(@NonNull Consumer>> callback) {
+ public void getAllEmployees(@NonNull Consumer>> callback) {
}
@Override
- public ItemEmployeeEntity getEmployeeById(long id, @NonNull Consumer> callback) {
+ public ItemEmployeeEntity getEmployeeById(long id, @NonNull Consumer> callback) {
return null;
}
@Override
- public void getEmployeeByEmail(@NonNull String email, @NonNull Consumer> callback) {
+ public void getEmployeeByEmail(@NonNull String email, @NonNull Consumer> callback) {
}
@Override
- public void getEmployeeByTelephone(@NonNull String telephone, @NonNull Consumer> callback) {
+ public void getEmployeeByTelephone(@NonNull String telephone, @NonNull Consumer> callback) {
}
@@ -110,7 +108,7 @@ public class EmployeeRepositoryImpl implements EmployeeRepository {
}
@Override
- public void deleteEmployee(long id, @NonNull Consumer> callback) {
+ public void deleteEmployee(long id, @NonNull Consumer> callback) {
}
diff --git a/app/src/main/java/ru/myitschool/work/api/data/SignRepositoryImpl.java b/app/src/main/java/ru/myitschool/work/api/data/SignRepositoryImpl.java
index ecca9fa..3510752 100644
--- a/app/src/main/java/ru/myitschool/work/api/data/SignRepositoryImpl.java
+++ b/app/src/main/java/ru/myitschool/work/api/data/SignRepositoryImpl.java
@@ -1,5 +1,7 @@
package ru.myitschool.work.api.data;
+import android.util.Log;
+
import androidx.annotation.NonNull;
import java.util.List;
@@ -11,7 +13,7 @@ import ru.myitschool.work.api.data.source.SignApi;
import ru.myitschool.work.api.data.utils.CallToConsumer;
import ru.myitschool.work.api.domain.SignRepository;
import ru.myitschool.work.api.domain.entity.Status;
-import ru.myitschool.work.api.domain.entity.employee.EmpolyeeEntity;
+import ru.myitschool.work.api.domain.entity.employee.EmployeeEntity;
public class SignRepositoryImpl implements SignRepository {
private static SignRepositoryImpl INSTANCE;
@@ -27,7 +29,7 @@ public class SignRepositoryImpl implements SignRepository {
}
@Override
- public void createEmployee(@NonNull EmployeeCreateDTO employeeCreateDTO, @NonNull Consumer> callback) {
+ public void createEmployee(@NonNull EmployeeCreateDTO employeeCreateDTO, @NonNull Consumer> callback) {
signApi.register(employeeCreateDTO).enqueue(new CallToConsumer<>(
callback,
employeeDTO -> {
@@ -42,32 +44,27 @@ public class SignRepositoryImpl implements SignRepository {
final long officeId = employeeDTO.officeId;
final String officeName = employeeDTO.officeName;
final String officeUrl= employeeDTO.officeImageUrl;
- final String possition = employeeDTO.position;
+ final String position = employeeDTO.position;
final String role = employeeDTO.role;
final String profileImageUrl= employeeDTO.profileImageUrl;
final boolean visitStatus= employeeDTO.visitStatus;
final String startVisit= employeeDTO.startVisitDateTime;
final List visitIdLast30Days = employeeDTO.visitsIdLast30Days;
final long totalVisitTimeLast30Days = employeeDTO.totalTimeVisitsLast30Days;
- final String curentOfficeName = employeeDTO.currentOfficeName;
+ final String currentOfficeName = employeeDTO.currentOfficeName;
final String createdAt= employeeDTO.createAt;
- if (name != null && surname != null && telephone != null &&
- email_ != null && officeName != null && officeUrl != null &&
- possition != null && role != null && startVisit != null &&
- visitIdLast30Days != null && curentOfficeName != null &&
- createdAt != null) {
-
- return new EmpolyeeEntity(id_, name, surname, patronymic,
- telephone, email_, officeId, officeName, officeUrl, possition, role, profileImageUrl,
- visitStatus, startVisit, visitIdLast30Days, totalVisitTimeLast30Days, curentOfficeName, createdAt);
+ if (name != null && surname != null && telephone != null && email_ != null && officeName != null && officeUrl != null && position != null &&
+ role != null && startVisit != null && profileImageUrl != null && visitIdLast30Days != null && currentOfficeName != null && createdAt != null) {
+ return new EmployeeEntity(id_, name, surname, patronymic, telephone, email_, officeId, officeName, officeUrl, position, role, profileImageUrl,
+ visitStatus, startVisit, visitIdLast30Days, totalVisitTimeLast30Days, currentOfficeName, createdAt);
} else return null;
})
);
}
@Override
- public void login(@NonNull String email, @NonNull String password, @NonNull Consumer> callback) {
+ public void login(@NonNull String email, @NonNull String password, @NonNull Consumer> callback) {
credentialsDataSource.updateLogin(email, password);
signApi.login().enqueue(new CallToConsumer<>(callback, employeeDTO -> {
if (employeeDTO == null) return null;
@@ -81,25 +78,22 @@ public class SignRepositoryImpl implements SignRepository {
final long officeId = employeeDTO.officeId;
final String officeName = employeeDTO.officeName;
final String officeUrl= employeeDTO.officeImageUrl;
- final String possition = employeeDTO.position;
+ final String position = employeeDTO.position;
final String role = employeeDTO.role;
- final String profileImageUrl= employeeDTO.profileImageUrl;
+ final String profileImageUrl = employeeDTO.profileImageUrl;
final boolean visitStatus= employeeDTO.visitStatus;
- final String startVisit= employeeDTO.startVisitDateTime;
+ final String startVisit = employeeDTO.startVisitDateTime;
final List visitIdLast30Days = employeeDTO.visitsIdLast30Days;
final long totalVisitTimeLast30Days = employeeDTO.totalTimeVisitsLast30Days;
- final String curentOfficeName = employeeDTO.currentOfficeName;
- final String createdAt= employeeDTO.createAt;
+ final String currentOfficeName = employeeDTO.currentOfficeName;
+ final String createdAt = employeeDTO.createAt;
- if (name != null && surname != null && telephone != null &&
- email_ != null && officeName != null && officeUrl != null &&
- possition != null && role != null && startVisit != null &&
- visitIdLast30Days != null && curentOfficeName != null &&
- createdAt != null) {
+ if (name != null && surname != null && telephone != null && email_ != null && officeName != null && officeUrl != null
+ && position != null && role != null && profileImageUrl != null && startVisit != null && visitIdLast30Days != null
+ && currentOfficeName != null && createdAt != null) {
- return new EmpolyeeEntity(id_, name, surname, patronymic,
- telephone, email_, officeId, officeName, officeUrl, possition, role, profileImageUrl,
- visitStatus, startVisit, visitIdLast30Days, totalVisitTimeLast30Days, curentOfficeName, createdAt);
+ return new EmployeeEntity(id_, name, surname, patronymic, telephone, email_, officeId, officeName, officeUrl, position, role, profileImageUrl,
+ visitStatus, startVisit, visitIdLast30Days, totalVisitTimeLast30Days, currentOfficeName, createdAt);
} else return null;
}));
}
diff --git a/app/src/main/java/ru/myitschool/work/api/data/dto/employee/EmployeeDTO.java b/app/src/main/java/ru/myitschool/work/api/data/dto/employee/EmployeeDTO.java
index da4da62..3ffaef7 100644
--- a/app/src/main/java/ru/myitschool/work/api/data/dto/employee/EmployeeDTO.java
+++ b/app/src/main/java/ru/myitschool/work/api/data/dto/employee/EmployeeDTO.java
@@ -36,7 +36,7 @@ public class EmployeeDTO {
@SerializedName("officeImageUrl")
public String officeImageUrl;
@Nullable
- @SerializedName("position")
+ @SerializedName("positionName")
public String position; // Название должности
@Nullable
@SerializedName("role")
diff --git a/app/src/main/java/ru/myitschool/work/api/data/network/RetrofitFactory.java b/app/src/main/java/ru/myitschool/work/api/data/network/RetrofitFactory.java
index dc55b68..9b3194c 100644
--- a/app/src/main/java/ru/myitschool/work/api/data/network/RetrofitFactory.java
+++ b/app/src/main/java/ru/myitschool/work/api/data/network/RetrofitFactory.java
@@ -1,6 +1,6 @@
package ru.myitschool.work.api.data.network;
-import com.example.myapplication.core.UrlConstants;
+import ru.myitschool.work.core.UrlConstants;
import okhttp3.OkHttpClient;
import okhttp3.Request;
diff --git a/app/src/main/java/ru/myitschool/work/api/data/source/SignApi.java b/app/src/main/java/ru/myitschool/work/api/data/source/SignApi.java
index b0755a2..0e95206 100644
--- a/app/src/main/java/ru/myitschool/work/api/data/source/SignApi.java
+++ b/app/src/main/java/ru/myitschool/work/api/data/source/SignApi.java
@@ -9,10 +9,9 @@ import ru.myitschool.work.api.data.dto.employee.EmployeeCreateDTO;
import ru.myitschool.work.api.data.dto.employee.EmployeeDTO;
public interface SignApi {
- @POST("api/v1/employees/authorization/register")
+ @POST("api/v1/authorization/register")
Call register(@Body EmployeeCreateDTO employeeCreateDTO);
- @GET("api/v1/employees/authorization//login")
+ @GET("api/v1/authorization/login")
Call login();
-
}
diff --git a/app/src/main/java/ru/myitschool/work/api/domain/EmployeeRepository.java b/app/src/main/java/ru/myitschool/work/api/domain/EmployeeRepository.java
index c0d3858..ca2f455 100644
--- a/app/src/main/java/ru/myitschool/work/api/domain/EmployeeRepository.java
+++ b/app/src/main/java/ru/myitschool/work/api/domain/EmployeeRepository.java
@@ -7,15 +7,15 @@ import java.util.function.Consumer;
import ru.myitschool.work.api.data.dto.employee.EmployeeDTO;
import ru.myitschool.work.api.domain.entity.Status;
-import ru.myitschool.work.api.domain.entity.employee.EmpolyeeEntity;
+import ru.myitschool.work.api.domain.entity.employee.EmployeeEntity;
import ru.myitschool.work.api.domain.entity.employee.ItemEmployeeEntity;
public interface EmployeeRepository {
- void getAllEmployees(@NonNull Consumer>> callback);
- ItemEmployeeEntity getEmployeeById(long id, @NonNull Consumer> callback);
- void getEmployeeByEmail(@NonNull String email, @NonNull Consumer> callback);
- void getEmployeeByTelephone(@NonNull String telephone, @NonNull Consumer> callback);
+ void getAllEmployees(@NonNull Consumer>> callback);
+ ItemEmployeeEntity getEmployeeById(long id, @NonNull Consumer> callback);
+ void getEmployeeByEmail(@NonNull String email, @NonNull Consumer> callback);
+ void getEmployeeByTelephone(@NonNull String telephone, @NonNull Consumer> callback);
void updateEmployee(long id, @NonNull EmployeeDTO employeeDTO, @NonNull Consumer> callback);//переделай после dto
- void deleteEmployee(long id, @NonNull Consumer> callback);
+ void deleteEmployee(long id, @NonNull Consumer> callback);
void patchEmployeerOfficeId(long id, long officeId, @NonNull Consumer> callback);
}
diff --git a/app/src/main/java/ru/myitschool/work/api/domain/SignRepository.java b/app/src/main/java/ru/myitschool/work/api/domain/SignRepository.java
index e87253b..d137fc6 100644
--- a/app/src/main/java/ru/myitschool/work/api/domain/SignRepository.java
+++ b/app/src/main/java/ru/myitschool/work/api/domain/SignRepository.java
@@ -6,10 +6,10 @@ import java.util.function.Consumer;
import ru.myitschool.work.api.data.dto.employee.EmployeeCreateDTO;
import ru.myitschool.work.api.domain.entity.Status;
-import ru.myitschool.work.api.domain.entity.employee.EmpolyeeEntity;
+import ru.myitschool.work.api.domain.entity.employee.EmployeeEntity;
public interface SignRepository {
- void createEmployee(@NonNull EmployeeCreateDTO employeeRegisterDTO, @NonNull Consumer> callback);
- void login(@NonNull String email, @NonNull String password, @NonNull Consumer> callback);
+ void createEmployee(@NonNull EmployeeCreateDTO employeeRegisterDTO, @NonNull Consumer> callback);
+ void login(@NonNull String email, @NonNull String password, @NonNull Consumer> callback);
void logout();
}
diff --git a/app/src/main/java/ru/myitschool/work/api/domain/entity/Status.java b/app/src/main/java/ru/myitschool/work/api/domain/entity/Status.java
index 4d4720b..172e5a5 100644
--- a/app/src/main/java/ru/myitschool/work/api/domain/entity/Status.java
+++ b/app/src/main/java/ru/myitschool/work/api/domain/entity/Status.java
@@ -1,21 +1,20 @@
package ru.myitschool.work.api.domain.entity;
-import androidx.annotation.NonNull;
import androidx.annotation.Nullable;
public class Status {
- final int statusCod;
+ final int statusCode;
@Nullable private final T value;
@Nullable private final Throwable errors;
- public Status(int statusCod, @Nullable T value, @Nullable Throwable errors) {
- this.statusCod = statusCod;
+ public Status(int statusCode, @Nullable T value, @Nullable Throwable errors) {
+ this.statusCode = statusCode;
this.value = value;
this.errors = errors;
}
- public int getStatusCod() {
- return statusCod;
+ public int getStatusCode() {
+ return statusCode;
}
@Nullable
diff --git a/app/src/main/java/ru/myitschool/work/api/domain/entity/employee/EmpolyeeEntity.java b/app/src/main/java/ru/myitschool/work/api/domain/entity/employee/EmployeeEntity.java
similarity index 83%
rename from app/src/main/java/ru/myitschool/work/api/domain/entity/employee/EmpolyeeEntity.java
rename to app/src/main/java/ru/myitschool/work/api/domain/entity/employee/EmployeeEntity.java
index b0ab5b4..471b896 100644
--- a/app/src/main/java/ru/myitschool/work/api/domain/entity/employee/EmpolyeeEntity.java
+++ b/app/src/main/java/ru/myitschool/work/api/domain/entity/employee/EmployeeEntity.java
@@ -3,18 +3,17 @@ package ru.myitschool.work.api.domain.entity.employee;
import androidx.annotation.NonNull;
import androidx.annotation.Nullable;
-import java.util.Date;
import java.util.List;
-public class EmpolyeeEntity {
- @NonNull private final long id;
+public class EmployeeEntity {
+ private final long id;
@NonNull private final String name;
@NonNull private final String surname;
- @NonNull private final String patronymic;
+ @Nullable private final String patronymic;
@NonNull private final String telephone;
@NonNull private final String email;
- @NonNull private final long officeId;
+ private final long officeId;
@NonNull private final String officeName;
@NonNull private final String officeImageUrl;
@@ -24,7 +23,7 @@ public class EmpolyeeEntity {
@NonNull private final String profileImageUrl;
// Текущее состояние входа: false - visit (посещение) ещё не началось, true - visit идёт
- @NonNull private final boolean visitStatus;
+ private final boolean visitStatus;
// Если visitStatus true, то возвращает дату и время начала посещения в формате LocalDateTime.toString(),
// превратить обратно можно с помощью LocalDateTime.parse().
@@ -33,7 +32,7 @@ public class EmpolyeeEntity {
@NonNull private final List visitsIdLast30Days; // Список Id посещений за последние 30 дней.
// Возвращает количество отработанных часов за последний месяц.
- @NonNull private final long totalTimeVisitsLast30Days;
+ private final long totalTimeVisitsLast30Days;
// (Возможно это стоит убрать) Название офиса, в котором сейчас находится работник.
// Если visitStatus false, возвращает null.
@@ -43,7 +42,7 @@ public class EmpolyeeEntity {
// превратить обратно можно с помощью LocalDateTime.parse().
@NonNull private final String createAt;
- public EmpolyeeEntity(long id, @NonNull String name, @NonNull String surname, @NonNull String patronymic, @NonNull String telephone, @NonNull String email, long officeId, @NonNull String officeName, @NonNull String officeImageUrl, @NonNull String position, @NonNull String role, @NonNull String profileImageUrl, boolean visitStatus, @NonNull String startVisitDateTime, @NonNull List visitsIdLast30Days, long totalTimeVisitsLast30Days, @NonNull String currentOfficeName, @NonNull String createAt) {
+ public EmployeeEntity(long id, @NonNull String name, @NonNull String surname, @Nullable String patronymic, @NonNull String telephone, @NonNull String email, long officeId, @NonNull String officeName, @NonNull String officeImageUrl, @NonNull String position, @NonNull String role, @NonNull String profileImageUrl, boolean visitStatus, @NonNull String startVisitDateTime, @NonNull List visitsIdLast30Days, long totalTimeVisitsLast30Days, @NonNull String currentOfficeName, @NonNull String createAt) {
this.id = id;
this.name = name;
this.surname = surname;
@@ -64,52 +63,37 @@ public class EmpolyeeEntity {
this.createAt = createAt;
}
- public long getId() {
- return id;
+ @NonNull
+ public String getCreateAt() {
+ return createAt;
}
@NonNull
- public String getName() {
- return name;
+ public String getCurrentOfficeName() {
+ return currentOfficeName;
+ }
+
+ public long getTotalTimeVisitsLast30Days() {
+ return totalTimeVisitsLast30Days;
}
@NonNull
- public String getSurname() {
- return surname;
+ public List getVisitsIdLast30Days() {
+ return visitsIdLast30Days;
}
@NonNull
- public String getPatronymic() {
- return patronymic;
+ public String getStartVisitDateTime() {
+ return startVisitDateTime;
+ }
+
+ public boolean isVisitStatus() {
+ return visitStatus;
}
@NonNull
- public String getTelephone() {
- return telephone;
- }
-
- @NonNull
- public String getEmail() {
- return email;
- }
-
- public long getOfficeId() {
- return officeId;
- }
-
- @NonNull
- public String getOfficeName() {
- return officeName;
- }
-
- @NonNull
- public String getOfficeImageUrl() {
- return officeImageUrl;
- }
-
- @NonNull
- public String getPosition() {
- return position;
+ public String getProfileImageUrl() {
+ return profileImageUrl;
}
@NonNull
@@ -118,35 +102,50 @@ public class EmpolyeeEntity {
}
@NonNull
- public String getProfileImageUrl() {
- return profileImageUrl;
- }
-
- public boolean isVisitStatus() {
- return visitStatus;
+ public String getPosition() {
+ return position;
}
@NonNull
- public String getStartVisitDateTime() {
- return startVisitDateTime;
+ public String getOfficeImageUrl() {
+ return officeImageUrl;
}
@NonNull
- public List getVisitsIdLast30Days() {
- return visitsIdLast30Days;
+ public String getOfficeName() {
+ return officeName;
}
- public long getTotalTimeVisitsLast30Days() {
- return totalTimeVisitsLast30Days;
+ public long getOfficeId() {
+ return officeId;
}
@NonNull
- public String getCurrentOfficeName() {
- return currentOfficeName;
+ public String getEmail() {
+ return email;
}
@NonNull
- public String getCreateAt() {
- return createAt;
+ public String getTelephone() {
+ return telephone;
+ }
+
+ @Nullable
+ public String getPatronymic() {
+ return patronymic;
+ }
+
+ @NonNull
+ public String getSurname() {
+ return surname;
+ }
+
+ @NonNull
+ public String getName() {
+ return name;
+ }
+
+ public long getId() {
+ return id;
}
}
diff --git a/app/src/main/java/ru/myitschool/work/api/domain/useCases/employee/DeleteEmployeeUseCase.java b/app/src/main/java/ru/myitschool/work/api/domain/useCases/employee/DeleteEmployeeUseCase.java
index 0476b04..37d76c0 100644
--- a/app/src/main/java/ru/myitschool/work/api/domain/useCases/employee/DeleteEmployeeUseCase.java
+++ b/app/src/main/java/ru/myitschool/work/api/domain/useCases/employee/DeleteEmployeeUseCase.java
@@ -6,7 +6,7 @@ import java.util.function.Consumer;
import ru.myitschool.work.api.domain.EmployeeRepository;
import ru.myitschool.work.api.domain.entity.Status;
-import ru.myitschool.work.api.domain.entity.employee.EmpolyeeEntity;
+import ru.myitschool.work.api.domain.entity.employee.EmployeeEntity;
public class DeleteEmployeeUseCase {
private final EmployeeRepository employeeRepository;
@@ -16,7 +16,7 @@ public class DeleteEmployeeUseCase {
}
- public void execute(long id, @NonNull Consumer> callback) {
+ public void execute(long id, @NonNull Consumer> callback) {
employeeRepository.deleteEmployee(id,callback);
}
}
diff --git a/app/src/main/java/ru/myitschool/work/api/domain/useCases/employee/GetAllEmployees.java b/app/src/main/java/ru/myitschool/work/api/domain/useCases/employee/GetAllEmployees.java
index f7e76f5..cf727a0 100644
--- a/app/src/main/java/ru/myitschool/work/api/domain/useCases/employee/GetAllEmployees.java
+++ b/app/src/main/java/ru/myitschool/work/api/domain/useCases/employee/GetAllEmployees.java
@@ -7,7 +7,7 @@ import java.util.function.Consumer;
import ru.myitschool.work.api.domain.EmployeeRepository;
import ru.myitschool.work.api.domain.entity.Status;
-import ru.myitschool.work.api.domain.entity.employee.EmpolyeeEntity;
+import ru.myitschool.work.api.domain.entity.employee.EmployeeEntity;
public class GetAllEmployees {
private final EmployeeRepository employeeRepository;
@@ -16,7 +16,7 @@ public class GetAllEmployees {
this.employeeRepository = employeeRepository;
}
- public void execute(@NonNull Consumer>> callback) {
+ public void execute(@NonNull Consumer>> callback) {
employeeRepository.getAllEmployees(callback);
}
}
diff --git a/app/src/main/java/ru/myitschool/work/api/domain/useCases/employee/GetEmloyeeByIdUseCase.java b/app/src/main/java/ru/myitschool/work/api/domain/useCases/employee/GetEmloyeeByIdUseCase.java
index 80bcc4e..c93a8cf 100644
--- a/app/src/main/java/ru/myitschool/work/api/domain/useCases/employee/GetEmloyeeByIdUseCase.java
+++ b/app/src/main/java/ru/myitschool/work/api/domain/useCases/employee/GetEmloyeeByIdUseCase.java
@@ -8,7 +8,7 @@ import java.util.function.Consumer;
import ru.myitschool.work.api.domain.EmployeeRepository;
import ru.myitschool.work.api.domain.entity.Status;
-import ru.myitschool.work.api.domain.entity.employee.EmpolyeeEntity;
+import ru.myitschool.work.api.domain.entity.employee.EmployeeEntity;
public class GetEmloyeeByIdUseCase {
private final EmployeeRepository employeeRepository;
@@ -17,7 +17,7 @@ public class GetEmloyeeByIdUseCase {
this.employeeRepository = employeeRepository;
}
- public void execute(long id, @NonNull Consumer> callback) {
+ public void execute(long id, @NonNull Consumer> callback) {
employeeRepository.getEmployeeById(id, callback);
}
}
diff --git a/app/src/main/java/ru/myitschool/work/api/domain/useCases/employee/GetEmployeeByEmailUseCase.java b/app/src/main/java/ru/myitschool/work/api/domain/useCases/employee/GetEmployeeByEmailUseCase.java
index f7c2a88..ef667e4 100644
--- a/app/src/main/java/ru/myitschool/work/api/domain/useCases/employee/GetEmployeeByEmailUseCase.java
+++ b/app/src/main/java/ru/myitschool/work/api/domain/useCases/employee/GetEmployeeByEmailUseCase.java
@@ -6,7 +6,7 @@ import java.util.function.Consumer;
import ru.myitschool.work.api.domain.EmployeeRepository;
import ru.myitschool.work.api.domain.entity.Status;
-import ru.myitschool.work.api.domain.entity.employee.EmpolyeeEntity;
+import ru.myitschool.work.api.domain.entity.employee.EmployeeEntity;
public class GetEmployeeByEmailUseCase {
private final ru.myitschool.work.api.domain.EmployeeRepository employeeRepository;
@@ -15,6 +15,6 @@ public class GetEmployeeByEmailUseCase {
this.employeeRepository = employeeRepository;
}
- public void execute(@NonNull String email, @NonNull Consumer> callback) {
+ public void execute(@NonNull String email, @NonNull Consumer> callback) {
employeeRepository.getEmployeeByEmail(email, callback);
}}
diff --git a/app/src/main/java/ru/myitschool/work/api/domain/useCases/sign/CreateEmployeeUseCase.java b/app/src/main/java/ru/myitschool/work/api/domain/useCases/sign/CreateEmployeeUseCase.java
index 65eabd3..22b3812 100644
--- a/app/src/main/java/ru/myitschool/work/api/domain/useCases/sign/CreateEmployeeUseCase.java
+++ b/app/src/main/java/ru/myitschool/work/api/domain/useCases/sign/CreateEmployeeUseCase.java
@@ -7,7 +7,7 @@ import java.util.function.Consumer;
import ru.myitschool.work.api.data.dto.employee.EmployeeCreateDTO;
import ru.myitschool.work.api.domain.SignRepository;
import ru.myitschool.work.api.domain.entity.Status;
-import ru.myitschool.work.api.domain.entity.employee.EmpolyeeEntity;
+import ru.myitschool.work.api.domain.entity.employee.EmployeeEntity;
public class CreateEmployeeUseCase {
private final SignRepository signRepository;
@@ -16,7 +16,7 @@ public class CreateEmployeeUseCase {
this.signRepository = signRepository;
}
- public void execute(@NonNull EmployeeCreateDTO employeeRegisterDTO, Consumer> callback) {
+ public void execute(@NonNull EmployeeCreateDTO employeeRegisterDTO, Consumer> callback) {
signRepository.createEmployee(employeeRegisterDTO, callback);
}
}
diff --git a/app/src/main/java/ru/myitschool/work/api/domain/useCases/sign/LoginEmployeeUseCase.java b/app/src/main/java/ru/myitschool/work/api/domain/useCases/sign/LoginEmployeeUseCase.java
index 7844eee..2be29c9 100644
--- a/app/src/main/java/ru/myitschool/work/api/domain/useCases/sign/LoginEmployeeUseCase.java
+++ b/app/src/main/java/ru/myitschool/work/api/domain/useCases/sign/LoginEmployeeUseCase.java
@@ -6,7 +6,7 @@ import java.util.function.Consumer;
import ru.myitschool.work.api.domain.SignRepository;
import ru.myitschool.work.api.domain.entity.Status;
-import ru.myitschool.work.api.domain.entity.employee.EmpolyeeEntity;
+import ru.myitschool.work.api.domain.entity.employee.EmployeeEntity;
public class LoginEmployeeUseCase {
private final SignRepository signRepository;
@@ -15,9 +15,9 @@ public class LoginEmployeeUseCase {
this.signRepository = signRepository;
}
- public void execute(@NonNull String email, @NonNull String password, Consumer> callback) {
+ public void execute(@NonNull String email, @NonNull String password, Consumer> callback) {
signRepository.login(email, password, employeeEntityStatus -> {
- //if (employeeEntityStatus.getStatusCode() != 200) signRepository.logout();
+ if (employeeEntityStatus.getStatusCode() != 200) signRepository.logout();
callback.accept(employeeEntityStatus);
});
}
diff --git a/app/src/main/java/ru/myitschool/work/core/UrlConstants.kt b/app/src/main/java/ru/myitschool/work/core/UrlConstants.kt
index ec03aab..c1e47ad 100644
--- a/app/src/main/java/ru/myitschool/work/core/UrlConstants.kt
+++ b/app/src/main/java/ru/myitschool/work/core/UrlConstants.kt
@@ -1,7 +1,6 @@
-package com.example.myapplication.core
+package ru.myitschool.work.core
object UrlConstants {
// url для эмулятора http://10.0.2.2:8080/
- const val BASE_URL: String = "http://192.168.0.105:8080"
- const val DOWNLOAD_URL: String = "$BASE_URL/api/v1/images/"
+ const val BASE_URL: String = "http://10.6.66.151:8080"
}
\ No newline at end of file
diff --git a/app/src/main/java/ru/myitschool/work/ui/login/LoginActivity.java b/app/src/main/java/ru/myitschool/work/ui/login/LoginActivity.java
deleted file mode 100644
index a2ef4b8..0000000
--- a/app/src/main/java/ru/myitschool/work/ui/login/LoginActivity.java
+++ /dev/null
@@ -1,115 +0,0 @@
-package ru.myitschool.work.ui.login;
-
-import android.content.Context;
-import android.content.Intent;
-import android.content.SharedPreferences;
-import android.os.Bundle;
-import android.text.Editable;
-import android.view.View;
-
-import androidx.activity.EdgeToEdge;
-import androidx.appcompat.app.AppCompatActivity;
-import androidx.core.graphics.Insets;
-import androidx.core.view.ViewCompat;
-import androidx.core.view.WindowInsetsCompat;
-import androidx.lifecycle.ViewModelProvider;
-
-import com.example.myapplication.core.SettingConstants;
-import com.google.android.material.snackbar.Snackbar;
-import com.google.android.material.textfield.TextInputEditText;
-
-import ru.myitschool.work.R;
-import ru.myitschool.work.databinding.ActivityLoginBinding;
-import ru.myitschool.work.ui.main.MainActivity;
-
-public class LoginActivity extends AppCompatActivity {
-
- private ActivityLoginBinding binding;
- private LoginViewModel viewModel;
-
-
- public LoginActivity() {
- super(R.layout.activity_login);
- }
-
- @Override
- protected void onCreate(Bundle savedInstanceState) {
- super.onCreate(savedInstanceState);
- EdgeToEdge.enable(this);
- setContentView(R.layout.activity_login);
- ViewCompat.setOnApplyWindowInsetsListener(findViewById(R.id.main), (v, insets) -> {
- Insets systemBars = insets.getInsets(WindowInsetsCompat.Type.systemBars());
- v.setPadding(systemBars.left, systemBars.top, systemBars.right, systemBars.bottom);
- return insets;
-
- binding = ActivityLoginBinding.bind(v);
- viewModel = new ViewModelProvider(this).get(ActivityLoginBinding.class);
-
- binding.email.addTextChangedListener(new TextChangedListener<>(binding.email) {
- @Override
- public void onTextChanged(TextInputEditText target, Editable s) {
- listenerEmailEditText(s);
- }
- });
-
- binding.password.addTextChangedListener(new TextChangedListener<>(binding.password) {
- @Override
- public void onTextChanged(TextInputEditText target, Editable s) {
- listenerPasswordEditText(s);
- }
- });
-
- binding.btEnter.setOnClickListener(this.onClickListenerLoginButton);
-
- subscribe();
- });
- }
-
- private void subscribe() {
- viewModel.errorLiveData.observe(getViewLifecycleOwner(), error -> {
- binding.btEnter.setEnabled(true);
- Snackbar.make(requireView(), error, Snackbar.LENGTH_LONG).show();
- });
- viewModel.openLiveData.observe(getViewLifecycleOwner(), employee -> {
- binding.btEnter.setEnabled(true);
-
- SharedPreferences settings = requireView().getContext().getSharedPreferences(
- SettingConstants.PREFS_FILE, Context.MODE_PRIVATE
- );
- settings.edit().putLong(SettingConstants.PREF_ID, employee.getId()).apply();
- settings.edit().putString(SettingConstants.PREF_ROLE, employee.getRole()).apply();
-
- startActivity(new Intent(getApplicationContext(), MainActivity.class));
- });
- }
-
- private void listenerEmailEditText(Editable s) {
- if (s.toString().isEmpty()) {
- binding.email.setError("Обязательное поле");
- } else if (!isEmailValid(s.toString())) {
- binding.emailLay.setError("Неверный формат");
- } else {
- binding.emailLay.setErrorEnabled(false);
- }
- }
-
- private void listenerPasswordEditText(Editable s) {
- if (s.toString().isEmpty()) {
- binding.passwordLay.setError("Обязательное поле");
- } else {
- binding.passwordLay.setErrorEnabled(false);
- }
- }
-
- private void onClickListenerLoginButton(View view) {
- binding.btEnter.setEnabled(false);
-
- viewModel.changeEmail(String.valueOf(binding.email.getText()));
- viewModel.changePassword(String.valueOf(binding.password.getText()));
- viewModel.confirm();
- }
-
- private boolean isEmailValid(String email) {
- return android.util.Patterns.EMAIL_ADDRESS.matcher(email).matches();
- }
-}
\ No newline at end of file
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
deleted file mode 100644
index 7355bf6..0000000
--- a/app/src/main/java/ru/myitschool/work/ui/profile/ProfileFragment.java
+++ /dev/null
@@ -1,35 +0,0 @@
-package ru.myitschool.work.ui.profile;
-
-import android.os.Bundle;
-
-import androidx.fragment.app.Fragment;
-
-import android.view.LayoutInflater;
-import android.view.View;
-import android.view.ViewGroup;
-
-import ru.myitschool.work.R;
-
-/**
- * A simple {@link Fragment} subclass.
- * Use the {@link ProfileFragment#newInstance} factory method to
- * create an instance of this fragment.
- */
-public class ProfileFragment extends Fragment {
-
-
-
-
- @Override
- public void onCreate(Bundle savedInstanceState) {
- super.onCreate(savedInstanceState);
-
- }
-
- @Override
- public View onCreateView(LayoutInflater inflater, ViewGroup container,
- Bundle savedInstanceState) {
- // Inflate the layout for this fragment
- return inflater.inflate(R.layout.fragment_profile, container, false);
- }
-}
\ No newline at end of file
diff --git a/app/src/main/java/ru/myitschool/work/ui/profile/RedactProfileFragment.java b/app/src/main/java/ru/myitschool/work/ui/profile/RedactProfileFragment.java
deleted file mode 100644
index d191f01..0000000
--- a/app/src/main/java/ru/myitschool/work/ui/profile/RedactProfileFragment.java
+++ /dev/null
@@ -1,38 +0,0 @@
-package ru.myitschool.work.ui.profile;
-
-import androidx.lifecycle.ViewModelProvider;
-
-import android.os.Bundle;
-
-import androidx.annotation.NonNull;
-import androidx.annotation.Nullable;
-import androidx.fragment.app.Fragment;
-
-import android.view.LayoutInflater;
-import android.view.View;
-import android.view.ViewGroup;
-
-import ru.myitschool.work.R;
-
-public class RedactProfileFragment extends Fragment {
-
- private RedactProfileViewModel mViewModel;
-
- public static RedactProfileFragment newInstance() {
- return new RedactProfileFragment();
- }
-
- @Override
- public View onCreateView(@NonNull LayoutInflater inflater, @Nullable ViewGroup container,
- @Nullable Bundle savedInstanceState) {
- return inflater.inflate(R.layout.fragment_redact_profile, container, false);
- }
-
- @Override
- public void onActivityCreated(@Nullable Bundle savedInstanceState) {
- super.onActivityCreated(savedInstanceState);
- mViewModel = new ViewModelProvider(this).get(RedactProfileViewModel.class);
- // TODO: Use the ViewModel
- }
-
-}
\ No newline at end of file
diff --git a/app/src/main/java/ru/myitschool/work/ui/profile/RedactProfileViewModel.java b/app/src/main/java/ru/myitschool/work/ui/profile/RedactProfileViewModel.java
deleted file mode 100644
index b06e10e..0000000
--- a/app/src/main/java/ru/myitschool/work/ui/profile/RedactProfileViewModel.java
+++ /dev/null
@@ -1,7 +0,0 @@
-package ru.myitschool.work.ui.profile;
-
-import androidx.lifecycle.ViewModel;
-
-public class RedactProfileViewModel extends ViewModel {
- // TODO: Implement the ViewModel
-}
\ No newline at end of file
diff --git a/app/src/main/java/ru/myitschool/work/ui/screens/LoginActivity.java b/app/src/main/java/ru/myitschool/work/ui/screens/LoginActivity.java
new file mode 100644
index 0000000..4c3bf7c
--- /dev/null
+++ b/app/src/main/java/ru/myitschool/work/ui/screens/LoginActivity.java
@@ -0,0 +1,120 @@
+package ru.myitschool.work.ui.screens;
+
+import android.content.Context;
+import android.content.Intent;
+import android.content.SharedPreferences;
+import android.os.Bundle;
+import android.text.Editable;
+import android.view.View;
+import android.widget.Button;
+
+import androidx.activity.EdgeToEdge;
+import androidx.appcompat.app.AppCompatActivity;
+import androidx.core.graphics.Insets;
+import androidx.core.view.ViewCompat;
+import androidx.core.view.WindowInsetsCompat;
+import androidx.lifecycle.ViewModelProvider;
+
+import com.example.myapplication.core.SettingConstants;
+import com.google.android.material.snackbar.Snackbar;
+import com.google.android.material.textfield.TextInputEditText;
+import com.google.android.material.textfield.TextInputLayout;
+
+import ru.myitschool.work.R;
+import ru.myitschool.work.ui.viewModel.LoginViewModel;
+import ru.myitschool.work.utils.TextChangedListener;
+
+public class LoginActivity extends AppCompatActivity {
+ private Button loginButton;
+ private TextInputEditText email;
+ private TextInputLayout emailLayout;
+ private TextInputEditText password;
+ private TextInputLayout passwordLayout;
+ private LoginViewModel viewModel;
+
+
+ @Override
+ protected void onCreate(Bundle savedInstanceState) {
+ super.onCreate(savedInstanceState);
+ EdgeToEdge.enable(this);
+ setContentView(R.layout.activity_login);
+ ViewCompat.setOnApplyWindowInsetsListener(findViewById(R.id.main), (v, insets) -> {
+ Insets systemBars = insets.getInsets(WindowInsetsCompat.Type.systemBars());
+ v.setPadding(systemBars.left, systemBars.top, systemBars.right, systemBars.bottom);
+ return insets;
+ });
+
+ loginButton = findViewById(R.id.loginButton);
+ email = findViewById(R.id.email);
+ emailLayout = findViewById(R.id.email_layout);
+ password = findViewById(R.id.password);
+ passwordLayout = findViewById(R.id.password_layout);
+
+ viewModel = new ViewModelProvider(this).get(LoginViewModel.class);
+
+ email.addTextChangedListener(new TextChangedListener<>(email) {
+ @Override
+ public void onTextChanged(TextInputEditText target, Editable s) {
+ listenerEmailEditText(s);
+ }
+ });
+ password.addTextChangedListener(new TextChangedListener<>(password) {
+ @Override
+ public void onTextChanged(TextInputEditText target, Editable s) {
+ listenerPasswordEditText(s);
+ }
+ });
+
+ loginButton.setOnClickListener(this::onClickListenerLoginButton);
+ subscribe();
+ }
+
+ private void subscribe() {
+ viewModel.errorLiveData.observe(this, error -> {
+ loginButton.setEnabled(true);
+ Snackbar.make(findViewById(android.R.id.content), error, Snackbar.LENGTH_LONG).show();
+ });
+ viewModel.openLiveData.observe(this, employee -> {
+ loginButton.setEnabled(true);
+
+ SharedPreferences settings = getSharedPreferences(
+ SettingConstants.PREFS_FILE, Context.MODE_PRIVATE
+ );
+ settings.edit().putLong(SettingConstants.PREF_ID, employee.getId()).apply();
+ settings.edit().putString(SettingConstants.PREF_ROLE, employee.getRole()).apply();
+
+ startActivity(new Intent(this, MainActivity.class));
+ finish();
+ });
+ }
+
+ private void listenerEmailEditText(Editable s) {
+ if (s.toString().isEmpty()) {
+ emailLayout.setError("Обязательное поле");
+ } else if (!isEmailValid(s.toString())) {
+ emailLayout.setError("Неверный формат");
+ } else {
+ emailLayout.setErrorEnabled(false);
+ }
+ }
+
+ private void listenerPasswordEditText(Editable s) {
+ if (s.toString().isEmpty()) {
+ passwordLayout.setError("Обязательное поле");
+ } else {
+ passwordLayout.setErrorEnabled(false);
+ }
+ }
+
+ private void onClickListenerLoginButton(View view) {
+ loginButton.setEnabled(false);
+
+ viewModel.changeEmail(String.valueOf(email.getText()));
+ viewModel.changePassword(String.valueOf(password.getText()));
+ viewModel.confirm();
+ }
+
+ private boolean isEmailValid(String email) {
+ return android.util.Patterns.EMAIL_ADDRESS.matcher(email).matches();
+ }
+}
\ No newline at end of file
diff --git a/app/src/main/java/ru/myitschool/work/ui/main/MainActivity.java b/app/src/main/java/ru/myitschool/work/ui/screens/MainActivity.java
similarity index 57%
rename from app/src/main/java/ru/myitschool/work/ui/main/MainActivity.java
rename to app/src/main/java/ru/myitschool/work/ui/screens/MainActivity.java
index 339e6a7..d89691b 100644
--- a/app/src/main/java/ru/myitschool/work/ui/main/MainActivity.java
+++ b/app/src/main/java/ru/myitschool/work/ui/screens/MainActivity.java
@@ -1,6 +1,9 @@
-package ru.myitschool.work.ui.main;
+package ru.myitschool.work.ui.screens;
+import android.content.Intent;
+import android.content.SharedPreferences;
import android.os.Bundle;
+import android.util.Log;
import androidx.activity.EdgeToEdge;
import androidx.appcompat.app.AppCompatActivity;
@@ -8,9 +11,12 @@ import androidx.core.graphics.Insets;
import androidx.core.view.ViewCompat;
import androidx.core.view.WindowInsetsCompat;
+import com.example.myapplication.core.SettingConstants;
+
import ru.myitschool.work.R;
public class MainActivity extends AppCompatActivity {
+ private SharedPreferences settings;
@Override
protected void onCreate(Bundle savedInstanceState) {
@@ -22,5 +28,13 @@ public class MainActivity extends AppCompatActivity {
v.setPadding(systemBars.left, systemBars.top, systemBars.right, systemBars.bottom);
return insets;
});
+
+ settings = getSharedPreferences(SettingConstants.PREFS_FILE, MODE_PRIVATE);
+
+ if (settings.getLong(SettingConstants.PREF_ID, SettingConstants.ERROR_ID) == SettingConstants.ERROR_ID) {
+ Log.d("Test", "(MainActivity) Пользователь не авторизован!");
+ startActivity(new Intent(this, LoginActivity.class));
+ finish();
+ }
}
}
\ No newline at end of file
diff --git a/app/src/main/java/ru/myitschool/work/ui/userlist/CompanyInfoFragment.java b/app/src/main/java/ru/myitschool/work/ui/userlist/CompanyInfoFragment.java
deleted file mode 100644
index 8c78ba5..0000000
--- a/app/src/main/java/ru/myitschool/work/ui/userlist/CompanyInfoFragment.java
+++ /dev/null
@@ -1,38 +0,0 @@
-package ru.myitschool.work.ui.userlist;
-
-import androidx.lifecycle.ViewModelProvider;
-
-import android.os.Bundle;
-
-import androidx.annotation.NonNull;
-import androidx.annotation.Nullable;
-import androidx.fragment.app.Fragment;
-
-import android.view.LayoutInflater;
-import android.view.View;
-import android.view.ViewGroup;
-
-import ru.myitschool.work.R;
-
-public class CompanyInfoFragment extends Fragment {
-
- private CompanyInfoViewModel mViewModel;
-
- public static CompanyInfoFragment newInstance() {
- return new CompanyInfoFragment();
- }
-
- @Override
- public View onCreateView(@NonNull LayoutInflater inflater, @Nullable ViewGroup container,
- @Nullable Bundle savedInstanceState) {
- return inflater.inflate(R.layout.company_info_fragment, container, false);
- }
-
- @Override
- public void onActivityCreated(@Nullable Bundle savedInstanceState) {
- super.onActivityCreated(savedInstanceState);
- mViewModel = new ViewModelProvider(this).get(CompanyInfoViewModel.class);
- // TODO: Use the ViewModel
- }
-
-}
\ No newline at end of file
diff --git a/app/src/main/java/ru/myitschool/work/ui/userlist/CompanyInfoViewModel.java b/app/src/main/java/ru/myitschool/work/ui/userlist/CompanyInfoViewModel.java
deleted file mode 100644
index 708da7d..0000000
--- a/app/src/main/java/ru/myitschool/work/ui/userlist/CompanyInfoViewModel.java
+++ /dev/null
@@ -1,7 +0,0 @@
-package ru.myitschool.work.ui.userlist;
-
-import androidx.lifecycle.ViewModel;
-
-public class CompanyInfoViewModel extends ViewModel {
- // TODO: Implement the ViewModel
-}
\ No newline at end of file
diff --git a/app/src/main/java/ru/myitschool/work/ui/login/LoginViewModel.java b/app/src/main/java/ru/myitschool/work/ui/viewModel/LoginViewModel.java
similarity index 66%
rename from app/src/main/java/ru/myitschool/work/ui/login/LoginViewModel.java
rename to app/src/main/java/ru/myitschool/work/ui/viewModel/LoginViewModel.java
index 2b7a25d..237a10e 100644
--- a/app/src/main/java/ru/myitschool/work/ui/login/LoginViewModel.java
+++ b/app/src/main/java/ru/myitschool/work/ui/viewModel/LoginViewModel.java
@@ -1,4 +1,6 @@
-package ru.myitschool.work.ui.login;
+package ru.myitschool.work.ui.viewModel;
+
+import androidx.lifecycle.ViewModel;
import androidx.annotation.NonNull;
import androidx.annotation.Nullable;
@@ -6,17 +8,17 @@ import androidx.lifecycle.LiveData;
import androidx.lifecycle.MutableLiveData;
import ru.myitschool.work.api.data.SignRepositoryImpl;
-import ru.myitschool.work.api.domain.entity.employee.EmpolyeeEntity;
+import ru.myitschool.work.api.domain.entity.employee.EmployeeEntity;
import ru.myitschool.work.api.domain.useCases.sign.LoginEmployeeUseCase;
-public class LoginViewModel {
+public class LoginViewModel extends ViewModel {
private final MutableLiveData mutableErrorLiveData = new MutableLiveData<>();
public final LiveData errorLiveData = mutableErrorLiveData;
- private final MutableLiveData mutableOpenLiveData = new MutableLiveData<>();
- public final LiveData openLiveData = mutableOpenLiveData;
+ private final MutableLiveData mutableOpenLiveData = new MutableLiveData<>();
+ public final LiveData openLiveData = mutableOpenLiveData;
- private final LoginEmployeeUseCase loginEmployeeUseCase = new LoginEmployeeUseCase(
+ private final LoginEmployeeUseCase loginVolunteerUseCase = new LoginEmployeeUseCase(
SignRepositoryImpl.getInstance()
);
@@ -38,19 +40,19 @@ public class LoginViewModel {
final String currentPassword = password;
if (currentEmail == null || currentEmail.isEmpty()) {
- mutableErrorLiveData.postValue("Пароль пустой!");
- return;
- }
- if (currentPassword == null || currentPassword.isEmpty()) {
mutableErrorLiveData.postValue("email пустой!");
return;
}
- loginEmployeeUseCase.execute(currentEmail, currentPassword, status -> {
+ if (currentPassword == null || currentPassword.isEmpty()) {
+ mutableErrorLiveData.postValue("Пароль пустой!");
+ return;
+ }
+ loginVolunteerUseCase.execute("example1@gmail.com", "password", status -> {
if (status.getStatusCode() == 200 && status.getErrors() == null && status.getValue() != null) {
mutableOpenLiveData.postValue(status.getValue());
- } else if (status.getStatusCode() == 401) mutableErrorLiveData.postValue("Данные не верны. Попробуйте ещё разок :(");
- else mutableErrorLiveData.postValue("Вы не подключены к интернету :(");
+ } else if (status.getStatusCode() == 401)
+ mutableErrorLiveData.postValue("Данные не верны. Попробуйте ещё разок :(");
+ else mutableErrorLiveData.postValue("Вы не подключены к интернету :( " + status.getStatusCode() + " " + status.getValue());
});
}
-
}
diff --git a/app/src/main/res/drawable/activity_main.xml b/app/src/main/res/drawable/activity_main.xml
new file mode 100644
index 0000000..c025673
--- /dev/null
+++ b/app/src/main/res/drawable/activity_main.xml
@@ -0,0 +1,36 @@
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/app/src/main/res/drawable/application_icon.png b/app/src/main/res/drawable/application_icon.png
new file mode 100644
index 0000000..da9cb60
Binary files /dev/null and b/app/src/main/res/drawable/application_icon.png differ
diff --git a/app/src/main/res/drawable/background.png b/app/src/main/res/drawable/background_login.png
similarity index 100%
rename from app/src/main/res/drawable/background.png
rename to app/src/main/res/drawable/background_login.png
diff --git a/app/src/main/res/drawable/small_application_icon.png b/app/src/main/res/drawable/small_application_icon.png
new file mode 100644
index 0000000..d603dd7
Binary files /dev/null and b/app/src/main/res/drawable/small_application_icon.png differ
diff --git a/app/src/main/res/drawable/splash_screen.xml b/app/src/main/res/drawable/splash_screen.xml
new file mode 100644
index 0000000..19a0a21
--- /dev/null
+++ b/app/src/main/res/drawable/splash_screen.xml
@@ -0,0 +1,11 @@
+
+
+
+
+
+ -
+
+
+
\ No newline at end of file
diff --git a/app/src/main/res/layout-w936dp/fragment_main.xml b/app/src/main/res/layout-w936dp/fragment_main.xml
deleted file mode 100644
index 7b5668a..0000000
--- a/app/src/main/res/layout-w936dp/fragment_main.xml
+++ /dev/null
@@ -1,122 +0,0 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
\ No newline at end of file
diff --git a/app/src/main/res/layout-w936dp/fragment_result.xml b/app/src/main/res/layout-w936dp/fragment_result.xml
deleted file mode 100644
index 583d02a..0000000
--- a/app/src/main/res/layout-w936dp/fragment_result.xml
+++ /dev/null
@@ -1,27 +0,0 @@
-
-
-
-
-
-
-
\ No newline at end of file
diff --git a/app/src/main/res/layout/activity_login.xml b/app/src/main/res/layout/activity_login.xml
index b9e5d30..ff9ff72 100644
--- a/app/src/main/res/layout/activity_login.xml
+++ b/app/src/main/res/layout/activity_login.xml
@@ -5,92 +5,87 @@
android:id="@+id/main"
android:layout_width="match_parent"
android:layout_height="match_parent"
- tools:context=".ui.login.LoginActivity"
- android:background="@drawable/background">
+ tools:context=".ui.screens.LoginActivity"
+ android:background="@drawable/background_login">
-
-
+ android:layout_width="360dp"
+ android:layout_height="wrap_content"
+ android:layout_centerInParent="true"
+ app:cardCornerRadius="20dp">
+
+ android:layout_width="match_parent"
+ android:layout_height="wrap_content"
+ android:text="@string/login_text"
+ android:textSize="40sp"
+ android:textAlignment="center"
+ android:textStyle="bold" />
+ android:id="@+id/email_layout"
+ android:layout_width="match_parent"
+ android:layout_height="match_parent"
+ app:shapeAppearance="@style/rounded"
+ android:layout_marginTop="20dp"
+
+ app:boxStrokeColor="@color/login_main_color"
+ app:cursorColor="#49454F"
+ app:hintTextColor="@color/login_main_color">
+ android:layout_width="match_parent"
+ android:layout_height="55dp"
+ android:hint="@string/email"
+ android:maxLines="1"
+ android:inputType="text"/>
+ android:id="@+id/password_layout"
+ android:layout_width="match_parent"
+ android:layout_height="match_parent"
+ android:layout_marginTop="5dp"
+
+ app:shapeAppearance="@style/rounded"
+
+ app:endIconMode="password_toggle"
+ app:helperTextTextColor="@color/red"
+
+ app:boxStrokeColor="@color/login_main_color"
+ app:cursorColor="#49454F"
+ app:hintTextColor="@color/login_main_color">
+ android:layout_width="match_parent"
+ android:layout_height="55dp"
+ android:hint="@string/password"
+ android:inputType="textPassword"
+ android:maxLines="1" />
-
+
+
+
-
-
\ No newline at end of file
diff --git a/app/src/main/res/layout/activity_main.xml b/app/src/main/res/layout/activity_main.xml
index c025673..0f8e09e 100644
--- a/app/src/main/res/layout/activity_main.xml
+++ b/app/src/main/res/layout/activity_main.xml
@@ -1,17 +1,18 @@
-
+ tools:context=".ui.screens.MainActivity"
+ android:background="@color/white">
+ android:layout_marginBottom="0dp"/>
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
\ No newline at end of file
diff --git a/app/src/main/res/layout/employees_fragment.xml b/app/src/main/res/layout/employees_fragment.xml
deleted file mode 100644
index 3fe02e7..0000000
--- a/app/src/main/res/layout/employees_fragment.xml
+++ /dev/null
@@ -1,51 +0,0 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
\ No newline at end of file
diff --git a/app/src/main/res/layout/fragment_main.xml b/app/src/main/res/layout/fragment_main.xml
deleted file mode 100644
index e170100..0000000
--- a/app/src/main/res/layout/fragment_main.xml
+++ /dev/null
@@ -1,115 +0,0 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
\ No newline at end of file
diff --git a/app/src/main/res/layout/fragment_profile.xml b/app/src/main/res/layout/fragment_profile.xml
deleted file mode 100644
index b3164fe..0000000
--- a/app/src/main/res/layout/fragment_profile.xml
+++ /dev/null
@@ -1,218 +0,0 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
\ No newline at end of file
diff --git a/app/src/main/res/layout/fragment_qr.xml b/app/src/main/res/layout/fragment_qr.xml
new file mode 100644
index 0000000..f2156ff
--- /dev/null
+++ b/app/src/main/res/layout/fragment_qr.xml
@@ -0,0 +1,14 @@
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/app/src/main/res/layout/fragment_qr_scan.xml b/app/src/main/res/layout/fragment_qr_scan.xml
deleted file mode 100644
index a52eb71..0000000
--- a/app/src/main/res/layout/fragment_qr_scan.xml
+++ /dev/null
@@ -1,35 +0,0 @@
-
-
-
-
-
-
-
-
-
\ No newline at end of file
diff --git a/app/src/main/res/layout/fragment_redact_profile.xml b/app/src/main/res/layout/fragment_redact_profile.xml
deleted file mode 100644
index a83812f..0000000
--- a/app/src/main/res/layout/fragment_redact_profile.xml
+++ /dev/null
@@ -1,209 +0,0 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
\ No newline at end of file
diff --git a/app/src/main/res/layout/fragment_result.xml b/app/src/main/res/layout/fragment_result.xml
deleted file mode 100644
index 47fb2ec..0000000
--- a/app/src/main/res/layout/fragment_result.xml
+++ /dev/null
@@ -1,26 +0,0 @@
-
-
-
-
-
-
-
\ No newline at end of file
diff --git a/app/src/main/res/layout/item_user_list.xml b/app/src/main/res/layout/item_user_list.xml
deleted file mode 100644
index 813f38d..0000000
--- a/app/src/main/res/layout/item_user_list.xml
+++ /dev/null
@@ -1,80 +0,0 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
\ No newline at end of file
diff --git a/app/src/main/res/values/colors.xml b/app/src/main/res/values/colors.xml
index f8c6127..cbd20b3 100644
--- a/app/src/main/res/values/colors.xml
+++ b/app/src/main/res/values/colors.xml
@@ -7,4 +7,11 @@
#FF018786
#FF000000
#FFFFFFFF
+
+ #66000000
+ #040827
+ #B1B1CF
+
+ #678B78
+ #FF0000
\ 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 cc94ce0..4bb3646 100644
--- a/app/src/main/res/values/strings.xml
+++ b/app/src/main/res/values/strings.xml
@@ -1,5 +1,5 @@
- NTO Client 2024
+ QRP
LoginActivity
@@ -39,4 +39,7 @@
Адрес
Контакты
Описание
+ Войти
+ Пароль
+ Вход
\ No newline at end of file
diff --git a/app/src/main/res/values/styles.xml b/app/src/main/res/values/styles.xml
new file mode 100644
index 0000000..2989386
--- /dev/null
+++ b/app/src/main/res/values/styles.xml
@@ -0,0 +1,33 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/app/src/main/res/values/themes.xml b/app/src/main/res/values/themes.xml
index 89e63d4..1f8d8b2 100644
--- a/app/src/main/res/values/themes.xml
+++ b/app/src/main/res/values/themes.xml
@@ -1,6 +1,6 @@
-