diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml index a986978..4172d4e 100644 --- a/app/src/main/AndroidManifest.xml +++ b/app/src/main/AndroidManifest.xml @@ -20,6 +20,7 @@ android:theme="@style/Theme.Default" tools:targetApi="31"> 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 9dd828f..0833875 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 @@ -8,6 +8,7 @@ import android.view.View; import androidx.annotation.NonNull; import androidx.annotation.Nullable; +import androidx.core.content.res.ResourcesCompat; import androidx.fragment.app.Fragment; import androidx.lifecycle.ViewModelProvider; import androidx.navigation.Navigation; @@ -57,7 +58,16 @@ public class LoginFragment extends Fragment { binding.error.setVisibility(Utils.visibleOrGone(error != null)); binding.error.setText(error); }); - viewModel.stateLiveData.observe(getViewLifecycleOwner(), state -> binding.login.setClickable(state.isButtonActive())); + viewModel.stateLiveData.observe(getViewLifecycleOwner(), state -> { + binding.login.setClickable(state.isButtonActive()); + if (state.isButtonActive()) { + binding.login.setBackground(ResourcesCompat.getDrawable(getResources(), R.drawable.main_button, getContext().getTheme())); + binding.login.setTextColor(ResourcesCompat.getColor(getResources(), R.color.white, getContext().getTheme())); + } else { + binding.login.setBackground(ResourcesCompat.getDrawable(getResources(), R.drawable.inactive_button, getContext().getTheme())); + binding.login.setTextColor(ResourcesCompat.getColor(getResources(), R.color.black, getContext().getTheme())); + } + }); viewModel.openProfileLiveData.observe(getViewLifecycleOwner(), (unused) -> { if (getContext() != null) { diff --git a/app/src/main/java/ru/myitschool/work/ui/profile/UserFragment.java b/app/src/main/java/ru/myitschool/work/ui/profile/UserFragment.java index 50ba18d..958553a 100644 --- a/app/src/main/java/ru/myitschool/work/ui/profile/UserFragment.java +++ b/app/src/main/java/ru/myitschool/work/ui/profile/UserFragment.java @@ -14,6 +14,8 @@ import androidx.navigation.Navigation; import com.squareup.picasso.Picasso; +import java.text.MessageFormat; + import ru.myitschool.work.R; import ru.myitschool.work.databinding.FragmentUserBinding; import ru.myitschool.work.domain.entities.UserEntity; @@ -52,7 +54,9 @@ public class UserFragment extends Fragment { binding.fullname.setText(entity.getName()); binding.position.setText(entity.getPosition()); - binding.lastEntry.setText(entity.getLast_visit()); + String lastVisit = entity.getLast_visit(); + binding.lastEntry.setText(MessageFormat.format("{0} {1}", + lastVisit.substring(0, 10), lastVisit.substring(11, 16))); if (entity.getPhotoUrl() != null) { Picasso.get().load(entity.getPhotoUrl()).into(binding.photo); @@ -94,7 +98,7 @@ public class UserFragment extends Fragment { @Override public void onFragmentResult(@NonNull String requestKey, @NonNull Bundle result) { if (QrScanDestination.INSTANCE.getDataIfExist(result) != null) { - getParentFragmentManager().setFragmentResult("requestKey", result); + getParentFragmentManager().setFragmentResult(QrScanDestination.REQUEST_KEY, result); Navigation.findNavController(getView()).navigate( R.id.action_userFragment_to_qrResultFragment); } diff --git a/app/src/main/java/ru/myitschool/work/ui/qr/result/QrResultFragment.java b/app/src/main/java/ru/myitschool/work/ui/qr/result/QrResultFragment.java index 552fc9a..3ab2f0e 100644 --- a/app/src/main/java/ru/myitschool/work/ui/qr/result/QrResultFragment.java +++ b/app/src/main/java/ru/myitschool/work/ui/qr/result/QrResultFragment.java @@ -7,6 +7,7 @@ import android.view.View; import androidx.annotation.NonNull; import androidx.annotation.Nullable; +import androidx.core.content.res.ResourcesCompat; import androidx.fragment.app.Fragment; import androidx.fragment.app.FragmentResultListener; import androidx.lifecycle.ViewModelProvider; @@ -32,13 +33,14 @@ public class QrResultFragment extends Fragment { binding = FragmentQrResultBinding.bind(view); viewModel = new ViewModelProvider(this).get(QrResultViewModel.class); - getParentFragmentManager().setFragmentResultListener("requestKey", this, new FragmentResultListener() { + getParentFragmentManager().setFragmentResultListener(QrScanDestination.REQUEST_KEY, this, new FragmentResultListener() { @Override public void onFragmentResult(@NonNull String requestKey, @NonNull Bundle result) { resultQr = QrScanDestination.INSTANCE.getDataIfExist(result); if (resultQr == null) { binding.result.setText(R.string.door_closed); + binding.close.setBackground(ResourcesCompat.getDrawable(getResources(), R.drawable.warn_button, getContext().getTheme())); } viewModel.stateLiveData.observe(getViewLifecycleOwner(), state -> { diff --git a/app/src/main/res/drawable/inactive_button.xml b/app/src/main/res/drawable/inactive_button.xml new file mode 100644 index 0000000..dfe6c28 --- /dev/null +++ b/app/src/main/res/drawable/inactive_button.xml @@ -0,0 +1,7 @@ + + + + + + + \ No newline at end of file diff --git a/app/src/main/res/drawable/input_field.xml b/app/src/main/res/drawable/input_field.xml new file mode 100644 index 0000000..9bb6e7e --- /dev/null +++ b/app/src/main/res/drawable/input_field.xml @@ -0,0 +1,5 @@ + + + + + \ No newline at end of file diff --git a/app/src/main/res/drawable/main_button.xml b/app/src/main/res/drawable/main_button.xml new file mode 100644 index 0000000..7316b2c --- /dev/null +++ b/app/src/main/res/drawable/main_button.xml @@ -0,0 +1,7 @@ + + + + + + + \ No newline at end of file diff --git a/app/src/main/res/drawable/main_button_outline.xml b/app/src/main/res/drawable/main_button_outline.xml new file mode 100644 index 0000000..ab02056 --- /dev/null +++ b/app/src/main/res/drawable/main_button_outline.xml @@ -0,0 +1,7 @@ + + + + + + + \ No newline at end of file diff --git a/app/src/main/res/drawable/warn_button.xml b/app/src/main/res/drawable/warn_button.xml new file mode 100644 index 0000000..e37f411 --- /dev/null +++ b/app/src/main/res/drawable/warn_button.xml @@ -0,0 +1,7 @@ + + + + + + + \ No newline at end of file diff --git a/app/src/main/res/drawable/warn_button_outline.xml b/app/src/main/res/drawable/warn_button_outline.xml new file mode 100644 index 0000000..0c9e4be --- /dev/null +++ b/app/src/main/res/drawable/warn_button_outline.xml @@ -0,0 +1,7 @@ + + + + + + + \ No newline at end of file diff --git a/app/src/main/res/font/manrope_bold.ttf b/app/src/main/res/font/manrope_bold.ttf new file mode 100644 index 0000000..4642009 Binary files /dev/null and b/app/src/main/res/font/manrope_bold.ttf differ diff --git a/app/src/main/res/font/manrope_light.ttf b/app/src/main/res/font/manrope_light.ttf new file mode 100644 index 0000000..0b1ce4b Binary files /dev/null and b/app/src/main/res/font/manrope_light.ttf differ diff --git a/app/src/main/res/layout-land/fragment_user.xml b/app/src/main/res/layout-land/fragment_user.xml new file mode 100644 index 0000000..24b1106 --- /dev/null +++ b/app/src/main/res/layout-land/fragment_user.xml @@ -0,0 +1,121 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + +