Add change password
This commit is contained in:
@@ -17,6 +17,12 @@
|
|||||||
android:theme="@style/Theme.TaskTracker"
|
android:theme="@style/Theme.TaskTracker"
|
||||||
android:usesCleartextTraffic="true"
|
android:usesCleartextTraffic="true"
|
||||||
tools:targetApi="31">
|
tools:targetApi="31">
|
||||||
|
<activity
|
||||||
|
android:name=".Activities.SettingsActivity"
|
||||||
|
android:exported="false" />
|
||||||
|
<activity
|
||||||
|
android:name=".Settings"
|
||||||
|
android:exported="false" />
|
||||||
<activity
|
<activity
|
||||||
android:name=".Activities.EditTask"
|
android:name=".Activities.EditTask"
|
||||||
android:exported="false" />
|
android:exported="false" />
|
||||||
|
|||||||
@@ -2,14 +2,13 @@ package com.example.tasktracker.Activities;
|
|||||||
|
|
||||||
import android.annotation.SuppressLint;
|
import android.annotation.SuppressLint;
|
||||||
import android.content.Intent;
|
import android.content.Intent;
|
||||||
import android.content.SharedPreferences;
|
|
||||||
import android.os.Bundle;
|
import android.os.Bundle;
|
||||||
import android.util.Log;
|
import android.util.Log;
|
||||||
|
|
||||||
import androidx.activity.EdgeToEdge;
|
import androidx.activity.EdgeToEdge;
|
||||||
import androidx.appcompat.app.AppCompatActivity;
|
import androidx.appcompat.app.AppCompatActivity;
|
||||||
|
|
||||||
import com.example.tasktracker.Answers.LoginAnswer;
|
import com.example.tasktracker.Answers.StatusAnswer;
|
||||||
import com.example.tasktracker.Api.ApiFactory;
|
import com.example.tasktracker.Api.ApiFactory;
|
||||||
import com.example.tasktracker.PublicKeyNames;
|
import com.example.tasktracker.PublicKeyNames;
|
||||||
import com.example.tasktracker.R;
|
import com.example.tasktracker.R;
|
||||||
@@ -84,9 +83,9 @@ public class LoginActivity extends AppCompatActivity {
|
|||||||
|
|
||||||
private void SingIn() {
|
private void SingIn() {
|
||||||
Disposable disposable = ApiFactory.getApiService().singin(login, password)
|
Disposable disposable = ApiFactory.getApiService().singin(login, password)
|
||||||
.subscribeOn(Schedulers.io()).subscribe(new Consumer<LoginAnswer>() {
|
.subscribeOn(Schedulers.io()).subscribe(new Consumer<StatusAnswer>() {
|
||||||
@Override
|
@Override
|
||||||
public void accept(LoginAnswer loginAnswer) throws Throwable {
|
public void accept(StatusAnswer loginAnswer) throws Throwable {
|
||||||
if(loginAnswer.getStatus().equals("big")) {
|
if(loginAnswer.getStatus().equals("big")) {
|
||||||
Snackbar.make(binding.getRoot(), R.string.snackbar_InvalidLogin, Snackbar.LENGTH_SHORT).show();
|
Snackbar.make(binding.getRoot(), R.string.snackbar_InvalidLogin, Snackbar.LENGTH_SHORT).show();
|
||||||
return;
|
return;
|
||||||
@@ -116,9 +115,9 @@ public class LoginActivity extends AppCompatActivity {
|
|||||||
}
|
}
|
||||||
private void SingUp() {
|
private void SingUp() {
|
||||||
Disposable disposable = ApiFactory.getApiService().singup(login, password)
|
Disposable disposable = ApiFactory.getApiService().singup(login, password)
|
||||||
.subscribeOn(Schedulers.io()).subscribe(new Consumer<LoginAnswer>() {
|
.subscribeOn(Schedulers.io()).subscribe(new Consumer<StatusAnswer>() {
|
||||||
@Override
|
@Override
|
||||||
public void accept(LoginAnswer loginAnswer) throws Throwable {
|
public void accept(StatusAnswer loginAnswer) throws Throwable {
|
||||||
if(loginAnswer.getStatus().equals("big")) {
|
if(loginAnswer.getStatus().equals("big")) {
|
||||||
Snackbar.make(binding.getRoot(), R.string.snackbar_BigLoginPassword, Snackbar.LENGTH_SHORT).show();
|
Snackbar.make(binding.getRoot(), R.string.snackbar_BigLoginPassword, Snackbar.LENGTH_SHORT).show();
|
||||||
return;
|
return;
|
||||||
|
|||||||
@@ -1,5 +1,8 @@
|
|||||||
package com.example.tasktracker.Activities;
|
package com.example.tasktracker.Activities;
|
||||||
|
|
||||||
|
import static android.view.View.INVISIBLE;
|
||||||
|
import static android.view.View.VISIBLE;
|
||||||
|
|
||||||
import android.annotation.SuppressLint;
|
import android.annotation.SuppressLint;
|
||||||
import android.content.Context;
|
import android.content.Context;
|
||||||
import android.content.Intent;
|
import android.content.Intent;
|
||||||
@@ -115,19 +118,6 @@ public class MainMenu extends AppCompatActivity {
|
|||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
|
||||||
binding.buttonSingOut.setOnClickListener(v -> {
|
|
||||||
getSharedPreferences(PublicKeyNames.TOKEN_LIST, MODE_PRIVATE).
|
|
||||||
edit().
|
|
||||||
remove(PublicKeyNames.LOGIN_KEY).
|
|
||||||
remove(PublicKeyNames.PASSWORD_KEY).
|
|
||||||
apply();
|
|
||||||
|
|
||||||
@SuppressLint("UnsafeIntentLaunch")
|
|
||||||
Intent intent = new Intent(this, LoginActivity.class);
|
|
||||||
startActivity(intent);
|
|
||||||
finish();
|
|
||||||
});
|
|
||||||
|
|
||||||
viewModel.getOnLoad().observe(this, new Observer<List<Task>>() {
|
viewModel.getOnLoad().observe(this, new Observer<List<Task>>() {
|
||||||
@Override
|
@Override
|
||||||
public void onChanged(List<Task> tasks) {
|
public void onChanged(List<Task> tasks) {
|
||||||
@@ -148,6 +138,22 @@ public class MainMenu extends AppCompatActivity {
|
|||||||
}
|
}
|
||||||
|
|
||||||
public void Offline() {
|
public void Offline() {
|
||||||
|
binding.buttonSettings.setVisibility(INVISIBLE);
|
||||||
|
binding.buttonLogOut.setVisibility(VISIBLE);
|
||||||
|
|
||||||
|
binding.buttonLogOut.setOnClickListener(v -> {
|
||||||
|
getSharedPreferences(PublicKeyNames.TOKEN_LIST, MODE_PRIVATE).
|
||||||
|
edit().
|
||||||
|
remove(PublicKeyNames.LOGIN_KEY).
|
||||||
|
remove(PublicKeyNames.PASSWORD_KEY).
|
||||||
|
apply();
|
||||||
|
|
||||||
|
@SuppressLint("UnsafeIntentLaunch")
|
||||||
|
Intent intent = new Intent(this, LoginActivity.class);
|
||||||
|
startActivity(intent);
|
||||||
|
finish();
|
||||||
|
});
|
||||||
|
|
||||||
ItemTouchHelper helper = new ItemTouchHelper(new ItemTouchHelper.SimpleCallback(0,
|
ItemTouchHelper helper = new ItemTouchHelper(new ItemTouchHelper.SimpleCallback(0,
|
||||||
ItemTouchHelper.LEFT | ItemTouchHelper.RIGHT) {
|
ItemTouchHelper.LEFT | ItemTouchHelper.RIGHT) {
|
||||||
@Override
|
@Override
|
||||||
@@ -181,6 +187,11 @@ public class MainMenu extends AppCompatActivity {
|
|||||||
}
|
}
|
||||||
|
|
||||||
private void Online() {
|
private void Online() {
|
||||||
|
binding.buttonSettings.setOnClickListener(v->{
|
||||||
|
Intent intent = SettingsActivity.getIntent(this, login);
|
||||||
|
startActivity(intent);
|
||||||
|
});
|
||||||
|
|
||||||
viewModel.onFail().observe(this, new Observer<String>() {
|
viewModel.onFail().observe(this, new Observer<String>() {
|
||||||
@Override
|
@Override
|
||||||
public void onChanged(String s) {
|
public void onChanged(String s) {
|
||||||
|
|||||||
@@ -0,0 +1,103 @@
|
|||||||
|
package com.example.tasktracker.Activities;
|
||||||
|
|
||||||
|
import android.content.Context;
|
||||||
|
import android.content.Intent;
|
||||||
|
import android.content.SharedPreferences;
|
||||||
|
import android.os.Bundle;
|
||||||
|
|
||||||
|
import androidx.appcompat.app.AppCompatActivity;
|
||||||
|
|
||||||
|
import com.example.tasktracker.Answers.StatusAnswer;
|
||||||
|
import com.example.tasktracker.Api.ApiFactory;
|
||||||
|
import com.example.tasktracker.PublicKeyNames;
|
||||||
|
import com.example.tasktracker.R;
|
||||||
|
import com.example.tasktracker.databinding.ActivitySettingsBinding;
|
||||||
|
import com.google.android.material.snackbar.Snackbar;
|
||||||
|
|
||||||
|
import io.reactivex.rxjava3.disposables.CompositeDisposable;
|
||||||
|
import io.reactivex.rxjava3.disposables.Disposable;
|
||||||
|
import io.reactivex.rxjava3.functions.Consumer;
|
||||||
|
import io.reactivex.rxjava3.schedulers.Schedulers;
|
||||||
|
|
||||||
|
public class SettingsActivity extends AppCompatActivity {
|
||||||
|
private ActivitySettingsBinding binding;
|
||||||
|
private CompositeDisposable compositeDisposable;
|
||||||
|
|
||||||
|
private String login;
|
||||||
|
|
||||||
|
public static Intent getIntent(Context context, String login) {
|
||||||
|
Intent intent = new Intent(context, SettingsActivity.class);
|
||||||
|
intent.putExtra(PublicKeyNames.LOGIN_KEY, login);
|
||||||
|
return intent;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
protected void onCreate(Bundle savedInstanceState) {
|
||||||
|
binding = ActivitySettingsBinding.inflate(getLayoutInflater());
|
||||||
|
super.onCreate(savedInstanceState);
|
||||||
|
setContentView(binding.getRoot());
|
||||||
|
|
||||||
|
login = getIntent().getStringExtra(PublicKeyNames.LOGIN_KEY);
|
||||||
|
|
||||||
|
binding.login.setText(login);
|
||||||
|
|
||||||
|
binding.buttonBack.setOnClickListener(v->{
|
||||||
|
finish();
|
||||||
|
});
|
||||||
|
binding.buttonLogOut.setOnClickListener(v->{
|
||||||
|
getSharedPreferences(PublicKeyNames.TOKEN_LIST, MODE_PRIVATE)
|
||||||
|
.edit()
|
||||||
|
.remove(PublicKeyNames.LOGIN_KEY)
|
||||||
|
.remove(PublicKeyNames.PASSWORD_KEY)
|
||||||
|
.apply();
|
||||||
|
Intent intent = new Intent(SettingsActivity.this, LoginActivity.class);
|
||||||
|
startActivity(intent);
|
||||||
|
finish();
|
||||||
|
});
|
||||||
|
compositeDisposable = new CompositeDisposable();
|
||||||
|
|
||||||
|
binding.buttonChangePassword.setOnClickListener(v->{
|
||||||
|
String oldPassword = binding.fieldOldPassword.getText().toString();
|
||||||
|
String newPassword = binding.fieldNewPassword.getText().toString();
|
||||||
|
String retryPassword = binding.fieldRetreyPassword.getText().toString();
|
||||||
|
|
||||||
|
if(!retryPassword.equals(newPassword)) {
|
||||||
|
Snackbar.make(binding.getRoot(), R.string.snackbar_PasswordsNotEquals, Snackbar.LENGTH_LONG).show();
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
Disposable disposable = ApiFactory.getApiService().changePassword(oldPassword, login, newPassword)
|
||||||
|
.subscribeOn(Schedulers.io())
|
||||||
|
.subscribe(new Consumer<StatusAnswer>() {
|
||||||
|
@Override
|
||||||
|
public void accept(StatusAnswer statusAnswer) throws Throwable {
|
||||||
|
if (statusAnswer.getStatus().equals("ok")) {
|
||||||
|
getSharedPreferences(PublicKeyNames.TOKEN_LIST, MODE_PRIVATE)
|
||||||
|
.edit()
|
||||||
|
.remove(PublicKeyNames.LOGIN_KEY)
|
||||||
|
.remove(PublicKeyNames.PASSWORD_KEY)
|
||||||
|
.apply();
|
||||||
|
Intent intent = new Intent(SettingsActivity.this, LoginActivity.class);
|
||||||
|
startActivity(intent);
|
||||||
|
finish();
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
Snackbar.make(binding.getRoot(), R.string.snackbar_InvalidPassword, Snackbar.LENGTH_SHORT).show();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}, new Consumer<Throwable>() {
|
||||||
|
@Override
|
||||||
|
public void accept(Throwable throwable) throws Throwable {
|
||||||
|
Snackbar.make(binding.getRoot(), R.string.snackbar_InternetError, Snackbar.LENGTH_SHORT).show();
|
||||||
|
}
|
||||||
|
});
|
||||||
|
compositeDisposable.add(disposable);
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
protected void onDestroy() {
|
||||||
|
super.onDestroy();
|
||||||
|
compositeDisposable.dispose();
|
||||||
|
}
|
||||||
|
}
|
||||||
+1
-1
@@ -4,7 +4,7 @@ import com.google.gson.annotations.SerializedName;
|
|||||||
|
|
||||||
import java.io.Serializable;
|
import java.io.Serializable;
|
||||||
|
|
||||||
public class LoginAnswer implements Serializable {
|
public class StatusAnswer implements Serializable {
|
||||||
@SerializedName("status")
|
@SerializedName("status")
|
||||||
private String status;
|
private String status;
|
||||||
|
|
||||||
@@ -1,6 +1,6 @@
|
|||||||
package com.example.tasktracker.Api;
|
package com.example.tasktracker.Api;
|
||||||
|
|
||||||
import com.example.tasktracker.Answers.LoginAnswer;
|
import com.example.tasktracker.Answers.StatusAnswer;
|
||||||
import com.example.tasktracker.Answers.Task;
|
import com.example.tasktracker.Answers.Task;
|
||||||
|
|
||||||
import java.util.ArrayList;
|
import java.util.ArrayList;
|
||||||
@@ -14,10 +14,10 @@ import retrofit2.http.Query;
|
|||||||
|
|
||||||
public interface ApiService {
|
public interface ApiService {
|
||||||
@GET("singin")
|
@GET("singin")
|
||||||
Single<LoginAnswer> singin(@Query("login") String login, @Query("password") String password);
|
Single<StatusAnswer> singin(@Query("login") String login, @Query("password") String password);
|
||||||
|
|
||||||
@POST("singup")
|
@POST("singup")
|
||||||
Single<LoginAnswer> singup(@Query("login") String login, @Query("password") String password);
|
Single<StatusAnswer> singup(@Query("login") String login, @Query("password") String password);
|
||||||
|
|
||||||
@GET("user/task")
|
@GET("user/task")
|
||||||
Single<Task> getTask(@Query("login") String login, @Query("password") String password, @Query("id") long id);
|
Single<Task> getTask(@Query("login") String login, @Query("password") String password, @Query("id") long id);
|
||||||
@@ -33,4 +33,7 @@ public interface ApiService {
|
|||||||
|
|
||||||
@POST("user/task/remove")
|
@POST("user/task/remove")
|
||||||
Call<Void> removeTask(@Query("login") String login, @Query("password") String password, @Query("id") long ID);
|
Call<Void> removeTask(@Query("login") String login, @Query("password") String password, @Query("id") long ID);
|
||||||
|
|
||||||
|
@POST("user/ChangePassword")
|
||||||
|
Single<StatusAnswer> changePassword(@Query("oldPassword") String oldPassword, @Query("login") String login, @Query("newPassword") String newPassword);
|
||||||
}
|
}
|
||||||
|
|||||||
Binary file not shown.
|
After Width: | Height: | Size: 13 KiB |
@@ -29,12 +29,22 @@
|
|||||||
app:layout_constraintTop_toBottomOf="@id/findLine"/>
|
app:layout_constraintTop_toBottomOf="@id/findLine"/>
|
||||||
|
|
||||||
<com.google.android.material.floatingactionbutton.FloatingActionButton
|
<com.google.android.material.floatingactionbutton.FloatingActionButton
|
||||||
android:id="@+id/button_SingOut"
|
android:id="@+id/button_LogOut"
|
||||||
android:src="@drawable/exit"
|
android:src="@drawable/exit"
|
||||||
android:layout_width="wrap_content"
|
android:layout_width="wrap_content"
|
||||||
android:layout_height="wrap_content"
|
android:layout_height="wrap_content"
|
||||||
app:layout_constraintBottom_toTopOf="@+id/button_addNewTask"
|
app:layout_constraintBottom_toTopOf="@+id/button_addNewTask"
|
||||||
app:layout_constraintEnd_toEndOf="parent"
|
app:layout_constraintEnd_toEndOf="parent"
|
||||||
|
android:layout_margin="20sp"
|
||||||
|
android:visibility="invisible"/>
|
||||||
|
|
||||||
|
<com.google.android.material.floatingactionbutton.FloatingActionButton
|
||||||
|
android:id="@+id/button_Settings"
|
||||||
|
android:src="@drawable/setting"
|
||||||
|
android:layout_width="wrap_content"
|
||||||
|
android:layout_height="wrap_content"
|
||||||
|
app:layout_constraintBottom_toTopOf="@+id/button_addNewTask"
|
||||||
|
app:layout_constraintEnd_toEndOf="parent"
|
||||||
android:layout_margin="20sp"/>
|
android:layout_margin="20sp"/>
|
||||||
|
|
||||||
<com.google.android.material.floatingactionbutton.FloatingActionButton
|
<com.google.android.material.floatingactionbutton.FloatingActionButton
|
||||||
|
|||||||
@@ -0,0 +1,69 @@
|
|||||||
|
<?xml version="1.0" encoding="utf-8"?>
|
||||||
|
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
|
||||||
|
xmlns:app="http://schemas.android.com/apk/res-auto"
|
||||||
|
xmlns:tools="http://schemas.android.com/tools"
|
||||||
|
android:id="@+id/main"
|
||||||
|
android:layout_width="match_parent"
|
||||||
|
android:layout_height="match_parent"
|
||||||
|
android:orientation="vertical"
|
||||||
|
tools:context=".Activities.SettingsActivity">
|
||||||
|
|
||||||
|
<com.google.android.material.floatingactionbutton.FloatingActionButton
|
||||||
|
android:id="@+id/button_back"
|
||||||
|
android:layout_width="wrap_content"
|
||||||
|
android:layout_height="wrap_content"
|
||||||
|
android:layout_margin="10sp"
|
||||||
|
android:src="@android:drawable/ic_media_rew"/>
|
||||||
|
|
||||||
|
<TextView
|
||||||
|
android:id="@+id/login"
|
||||||
|
android:layout_width="match_parent"
|
||||||
|
android:layout_height="wrap_content"
|
||||||
|
android:textSize="25sp"
|
||||||
|
android:layout_margin="10sp"
|
||||||
|
tools:hint="login"/>
|
||||||
|
|
||||||
|
<EditText
|
||||||
|
android:id="@+id/field_oldPassword"
|
||||||
|
android:layout_width="match_parent"
|
||||||
|
android:layout_height="wrap_content"
|
||||||
|
android:textSize="25sp"
|
||||||
|
android:layout_margin="10sp"
|
||||||
|
android:hint="@string/hint_OldPassword"
|
||||||
|
android:inputType="textPassword"/>
|
||||||
|
|
||||||
|
<EditText
|
||||||
|
android:id="@+id/field_newPassword"
|
||||||
|
android:layout_width="match_parent"
|
||||||
|
android:layout_height="wrap_content"
|
||||||
|
android:textSize="25sp"
|
||||||
|
android:layout_margin="10sp"
|
||||||
|
android:hint="@string/hint_NewPassword"
|
||||||
|
android:inputType="textPassword"/>
|
||||||
|
|
||||||
|
<EditText
|
||||||
|
android:id="@+id/field_retreyPassword"
|
||||||
|
android:layout_width="match_parent"
|
||||||
|
android:layout_height="wrap_content"
|
||||||
|
android:textSize="25sp"
|
||||||
|
android:layout_margin="10sp"
|
||||||
|
android:hint="@string/hint_RetreyPassword"
|
||||||
|
android:inputType="textPassword"/>
|
||||||
|
|
||||||
|
<Button
|
||||||
|
android:id="@+id/button_changePassword"
|
||||||
|
android:layout_width="match_parent"
|
||||||
|
android:layout_height="wrap_content"
|
||||||
|
android:textSize="25sp"
|
||||||
|
android:layout_margin="10sp"
|
||||||
|
android:text="@string/button_ChangePassword"/>
|
||||||
|
|
||||||
|
<Button
|
||||||
|
android:id="@+id/button_LogOut"
|
||||||
|
android:layout_width="match_parent"
|
||||||
|
android:layout_height="wrap_content"
|
||||||
|
android:textSize="25sp"
|
||||||
|
android:layout_margin="10sp"
|
||||||
|
android:text="@string/button_LogOut"/>
|
||||||
|
|
||||||
|
</LinearLayout>
|
||||||
@@ -13,6 +13,8 @@
|
|||||||
<string name="hint_TaskName">Task name</string>
|
<string name="hint_TaskName">Task name</string>
|
||||||
<string name="hint_TaskDescription">Description</string>
|
<string name="hint_TaskDescription">Description</string>
|
||||||
<string name="hint_Minute">Minute</string>
|
<string name="hint_Minute">Minute</string>
|
||||||
|
<string name="snackbar_PasswordsNotEquals">Passwords not equals</string>
|
||||||
|
<string name="hint_RetreyPassword">Retry password</string>
|
||||||
<string name="snackbar_EnterLogin">Enter login</string>
|
<string name="snackbar_EnterLogin">Enter login</string>
|
||||||
<string name="snackbar_EnterPassword">Enter password</string>
|
<string name="snackbar_EnterPassword">Enter password</string>
|
||||||
<string name="snackbar_InvalidLogin">Incorrect login or password</string>
|
<string name="snackbar_InvalidLogin">Incorrect login or password</string>
|
||||||
@@ -29,4 +31,9 @@
|
|||||||
<string name="hint_Hour">Hour</string>
|
<string name="hint_Hour">Hour</string>
|
||||||
<string name="snackbar_BigLoginPassword">Login or password is too long.</string>
|
<string name="snackbar_BigLoginPassword">Login or password is too long.</string>
|
||||||
<string name="snackbar_SmallLoginPassword">Login or password is too small.</string>
|
<string name="snackbar_SmallLoginPassword">Login or password is too small.</string>
|
||||||
|
<string name="hint_OldPassword">Old password</string>
|
||||||
|
<string name="hint_NewPassword">New password</string>
|
||||||
|
<string name="button_ChangePassword">Change password</string>
|
||||||
|
<string name="button_LogOut">Log out</string>
|
||||||
|
<string name="snackbar_InvalidPassword">Invalid password</string>
|
||||||
</resources>
|
</resources>
|
||||||
@@ -13,6 +13,8 @@
|
|||||||
<string name="hint_TaskName">Название задачи</string>
|
<string name="hint_TaskName">Название задачи</string>
|
||||||
<string name="hint_TaskDescription">Описание</string>
|
<string name="hint_TaskDescription">Описание</string>
|
||||||
<string name="hint_Minute">Минута</string>
|
<string name="hint_Minute">Минута</string>
|
||||||
|
<string name="snackbar_PasswordsNotEquals">Пароли не софпадают</string>
|
||||||
|
<string name="hint_RetreyPassword">Повтори пароль</string>
|
||||||
<string name="snackbar_EnterLogin">Введите логин</string>
|
<string name="snackbar_EnterLogin">Введите логин</string>
|
||||||
<string name="snackbar_EnterPassword">Введите пароль</string>
|
<string name="snackbar_EnterPassword">Введите пароль</string>
|
||||||
<string name="snackbar_InvalidLogin">Неправильный логин или пароль</string>
|
<string name="snackbar_InvalidLogin">Неправильный логин или пароль</string>
|
||||||
@@ -29,4 +31,9 @@
|
|||||||
<string name="hint_Hour">Час</string>
|
<string name="hint_Hour">Час</string>
|
||||||
<string name="snackbar_BigLoginPassword">Логин или пороль слишком длинный.</string>
|
<string name="snackbar_BigLoginPassword">Логин или пороль слишком длинный.</string>
|
||||||
<string name="snackbar_SmallLoginPassword">Логин или пороль слишком короткий.</string>
|
<string name="snackbar_SmallLoginPassword">Логин или пороль слишком короткий.</string>
|
||||||
|
<string name="hint_OldPassword">Старый пароль</string>
|
||||||
|
<string name="hint_NewPassword">Новый пароль</string>
|
||||||
|
<string name="button_ChangePassword">Сменить пароль</string>
|
||||||
|
<string name="button_LogOut">Выйти</string>
|
||||||
|
<string name="snackbar_InvalidPassword">Не верный пароль</string>
|
||||||
</resources>
|
</resources>
|
||||||
@@ -12,6 +12,8 @@
|
|||||||
<string name="button_NO">No</string>
|
<string name="button_NO">No</string>
|
||||||
<string name="button_DefaultData" translatable="false">DD/MM/YEAR</string>
|
<string name="button_DefaultData" translatable="false">DD/MM/YEAR</string>
|
||||||
<string name="button_DefaultTime" translatable="false">HH/MM</string>
|
<string name="button_DefaultTime" translatable="false">HH/MM</string>
|
||||||
|
<string name="button_ChangePassword">Change password</string>
|
||||||
|
<string name="button_LogOut">Log out</string>
|
||||||
|
|
||||||
<!-- Hints -->
|
<!-- Hints -->
|
||||||
<string name="hint_Login">Login</string>
|
<string name="hint_Login">Login</string>
|
||||||
@@ -24,6 +26,9 @@
|
|||||||
<string name="hint_Yar">Year</string>
|
<string name="hint_Yar">Year</string>
|
||||||
<string name="hint_Hour">Hour</string>
|
<string name="hint_Hour">Hour</string>
|
||||||
<string name="hint_Minute">Minute</string>
|
<string name="hint_Minute">Minute</string>
|
||||||
|
<string name="hint_OldPassword">Old password</string>
|
||||||
|
<string name="hint_NewPassword">New password</string>
|
||||||
|
<string name="hint_RetreyPassword">Retry password</string>
|
||||||
|
|
||||||
<!-- Snackbar -->
|
<!-- Snackbar -->
|
||||||
<string name="snackbar_EnterLogin">Enter login</string>
|
<string name="snackbar_EnterLogin">Enter login</string>
|
||||||
@@ -36,5 +41,7 @@
|
|||||||
<string name="snackbar_DataBaseError">Something went wrong.</string>
|
<string name="snackbar_DataBaseError">Something went wrong.</string>
|
||||||
<string name="snackbar_BigLoginPassword">Login or password is too long.</string>
|
<string name="snackbar_BigLoginPassword">Login or password is too long.</string>
|
||||||
<string name="snackbar_SmallLoginPassword">Login or password is too small.</string>
|
<string name="snackbar_SmallLoginPassword">Login or password is too small.</string>
|
||||||
|
<string name="snackbar_PasswordsNotEquals">Passwords not equals</string>
|
||||||
|
<string name="snackbar_InvalidPassword">Invalid password</string>
|
||||||
|
|
||||||
</resources>
|
</resources>
|
||||||
Reference in New Issue
Block a user