Update
This commit is contained in:
@@ -1,17 +1,20 @@
|
|||||||
package com.example.tasktracker.Activities;
|
package com.example.tasktracker.Activities;
|
||||||
|
|
||||||
import android.app.DatePickerDialog;
|
import android.app.DatePickerDialog;
|
||||||
|
import android.app.TimePickerDialog;
|
||||||
import android.content.Context;
|
import android.content.Context;
|
||||||
import android.content.Intent;
|
import android.content.Intent;
|
||||||
import android.os.Bundle;
|
import android.os.Bundle;
|
||||||
import android.util.Log;
|
import android.util.Log;
|
||||||
import android.widget.DatePicker;
|
import android.widget.DatePicker;
|
||||||
|
import android.widget.TimePicker;
|
||||||
|
|
||||||
import androidx.appcompat.app.AppCompatActivity;
|
import androidx.appcompat.app.AppCompatActivity;
|
||||||
import androidx.lifecycle.Observer;
|
import androidx.lifecycle.Observer;
|
||||||
import androidx.lifecycle.ViewModelProvider;
|
import androidx.lifecycle.ViewModelProvider;
|
||||||
|
|
||||||
import com.example.tasktracker.Activities.ViewModels.AddItemViewModel;
|
import com.example.tasktracker.Activities.ViewModels.AddItemViewModel;
|
||||||
|
import com.example.tasktracker.Activities.ViewModels.TimePickerFragment;
|
||||||
import com.example.tasktracker.Answers.Task;
|
import com.example.tasktracker.Answers.Task;
|
||||||
import com.example.tasktracker.PublicKeyNames;
|
import com.example.tasktracker.PublicKeyNames;
|
||||||
import com.example.tasktracker.R;
|
import com.example.tasktracker.R;
|
||||||
@@ -20,13 +23,14 @@ import com.google.android.material.snackbar.Snackbar;
|
|||||||
|
|
||||||
import java.util.Random;
|
import java.util.Random;
|
||||||
|
|
||||||
public class AddNewTask extends AppCompatActivity implements DatePickerDialog.OnDateSetListener {
|
public class AddNewTask extends AppCompatActivity implements DatePickerDialog.OnDateSetListener, TimePickerDialog.OnTimeSetListener {
|
||||||
private static final String TAG = "ADD_NEW_TASK";
|
private static final String TAG = "ADD_NEW_TASK";
|
||||||
|
|
||||||
private ActivityAddNewTaskBinding binding;
|
private ActivityAddNewTaskBinding binding;
|
||||||
private static String token;
|
private static String token;
|
||||||
private AddItemViewModel viewModel;
|
private AddItemViewModel viewModel;
|
||||||
private String stringDate = "";
|
private String stringDate = "";
|
||||||
|
private String stringTime = "";
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
protected void onCreate(Bundle savedInstanceState) {
|
protected void onCreate(Bundle savedInstanceState) {
|
||||||
@@ -41,12 +45,14 @@ public class AddNewTask extends AppCompatActivity implements DatePickerDialog.On
|
|||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
binding.btnDatePick.setOnClickListener(v->{
|
binding.btnDatePick.setOnClickListener(v->{
|
||||||
DatePickerFragment fragment;
|
DatePickerFragment fragment = new DatePickerFragment();
|
||||||
fragment = new DatePickerFragment();
|
|
||||||
fragment.show(getSupportFragmentManager(), "DATE PICK");
|
fragment.show(getSupportFragmentManager(), "DATE PICK");
|
||||||
});
|
});
|
||||||
|
binding.btnTimePick.setOnClickListener(v->{
|
||||||
|
TimePickerFragment fragment = new TimePickerFragment();
|
||||||
|
fragment.show(getSupportFragmentManager(), "TIME PICKER");
|
||||||
|
});
|
||||||
|
|
||||||
viewModel = new ViewModelProvider(this).get(AddItemViewModel.class);
|
viewModel = new ViewModelProvider(this).get(AddItemViewModel.class);
|
||||||
viewModel.getClose().observe(this, new Observer<Boolean>() {
|
viewModel.getClose().observe(this, new Observer<Boolean>() {
|
||||||
@@ -80,9 +86,15 @@ public class AddNewTask extends AppCompatActivity implements DatePickerDialog.On
|
|||||||
Snackbar.make(binding.getRoot(), R.string.snackbar_EnterDate, Snackbar.LENGTH_SHORT).show();
|
Snackbar.make(binding.getRoot(), R.string.snackbar_EnterDate, Snackbar.LENGTH_SHORT).show();
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
if(stringTime.isEmpty()) {
|
||||||
|
Snackbar.make(binding.getRoot(), R.string.snackbar_EnterDate, Snackbar.LENGTH_SHORT).show();
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
long ID = generateID(name, description, stringDate);
|
String dateTime = stringDate + ' ' + stringTime;
|
||||||
Task task = new Task(ID, name, description, stringDate);
|
|
||||||
|
long ID = generateID(name, description, dateTime);
|
||||||
|
Task task = new Task(ID, name, description, dateTime);
|
||||||
viewModel.OfflineSaveData(task);
|
viewModel.OfflineSaveData(task);
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
@@ -98,19 +110,25 @@ public class AddNewTask extends AppCompatActivity implements DatePickerDialog.On
|
|||||||
binding.AddTask.setOnClickListener(v->{
|
binding.AddTask.setOnClickListener(v->{
|
||||||
String name = binding.TaskName.getText().toString();
|
String name = binding.TaskName.getText().toString();
|
||||||
String description = binding.TaskDescription.getText().toString();
|
String description = binding.TaskDescription.getText().toString();
|
||||||
String date = binding.btnDatePick.getText().toString();
|
|
||||||
|
|
||||||
if(name.isEmpty()) {
|
if(name.isEmpty()) {
|
||||||
Snackbar.make(binding.getRoot(), R.string.snackbar_EnterName, Snackbar.LENGTH_SHORT).show();
|
Snackbar.make(binding.getRoot(), R.string.snackbar_EnterName, Snackbar.LENGTH_SHORT).show();
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
if(date.isEmpty()) {
|
if(stringDate.isEmpty()) {
|
||||||
|
Snackbar.make(binding.getRoot(), R.string.snackbar_EnterDate, Snackbar.LENGTH_SHORT).show();
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
if(stringTime.isEmpty()) {
|
||||||
Snackbar.make(binding.getRoot(), R.string.snackbar_EnterDate, Snackbar.LENGTH_SHORT).show();
|
Snackbar.make(binding.getRoot(), R.string.snackbar_EnterDate, Snackbar.LENGTH_SHORT).show();
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
long ID = generateID(name, description, date);
|
String dateTime = stringDate + ' ' + stringTime;
|
||||||
Task task = new Task(ID, name, description, date);
|
|
||||||
|
long ID = generateID(name, description, dateTime);
|
||||||
|
Task task = new Task(ID, name, description, dateTime);
|
||||||
viewModel.OnlineSaveData(task, token);
|
viewModel.OnlineSaveData(task, token);
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
@@ -140,4 +158,10 @@ public class AddNewTask extends AppCompatActivity implements DatePickerDialog.On
|
|||||||
+ Integer.toString(year);
|
+ Integer.toString(year);
|
||||||
binding.btnDatePick.setText(stringDate);
|
binding.btnDatePick.setText(stringDate);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void onTimeSet(TimePicker timePicker, int hour, int minute) {
|
||||||
|
stringTime = Integer.toString(hour) + ':' + Integer.toString(minute);
|
||||||
|
binding.btnTimePick.setText(stringTime);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
@@ -1,23 +1,26 @@
|
|||||||
package com.example.tasktracker.Activities;
|
package com.example.tasktracker.Activities;
|
||||||
|
|
||||||
import android.app.DatePickerDialog;
|
import android.app.DatePickerDialog;
|
||||||
|
import android.app.TimePickerDialog;
|
||||||
import android.content.Context;
|
import android.content.Context;
|
||||||
import android.content.Intent;
|
import android.content.Intent;
|
||||||
import android.os.Bundle;
|
import android.os.Bundle;
|
||||||
import android.util.Log;
|
import android.util.Log;
|
||||||
import android.widget.DatePicker;
|
import android.widget.DatePicker;
|
||||||
|
import android.widget.TimePicker;
|
||||||
|
|
||||||
import androidx.appcompat.app.AppCompatActivity;
|
import androidx.appcompat.app.AppCompatActivity;
|
||||||
import androidx.lifecycle.Observer;
|
import androidx.lifecycle.Observer;
|
||||||
|
|
||||||
import com.example.tasktracker.Activities.ViewModels.EditTaskViewModel;
|
import com.example.tasktracker.Activities.ViewModels.EditTaskViewModel;
|
||||||
|
import com.example.tasktracker.Activities.ViewModels.TimePickerFragment;
|
||||||
import com.example.tasktracker.Answers.Task;
|
import com.example.tasktracker.Answers.Task;
|
||||||
import com.example.tasktracker.PublicKeyNames;
|
import com.example.tasktracker.PublicKeyNames;
|
||||||
import com.example.tasktracker.R;
|
import com.example.tasktracker.R;
|
||||||
import com.example.tasktracker.databinding.ActivityEditTaskBinding;
|
import com.example.tasktracker.databinding.ActivityEditTaskBinding;
|
||||||
import com.google.android.material.snackbar.Snackbar;
|
import com.google.android.material.snackbar.Snackbar;
|
||||||
|
|
||||||
public class EditTask extends AppCompatActivity implements DatePickerDialog.OnDateSetListener {
|
public class EditTask extends AppCompatActivity implements DatePickerDialog.OnDateSetListener, TimePickerDialog.OnTimeSetListener {
|
||||||
private static final String TAG = "EDIT_TASK";
|
private static final String TAG = "EDIT_TASK";
|
||||||
private static final String TASK_ID_KEY = "TASK_ID";
|
private static final String TASK_ID_KEY = "TASK_ID";
|
||||||
|
|
||||||
@@ -26,6 +29,7 @@ public class EditTask extends AppCompatActivity implements DatePickerDialog.OnDa
|
|||||||
private String token;
|
private String token;
|
||||||
private long taskID = -1;
|
private long taskID = -1;
|
||||||
private String taskDateString;
|
private String taskDateString;
|
||||||
|
private String taskTimeString;
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
protected void onCreate(Bundle savedInstanceState) {
|
protected void onCreate(Bundle savedInstanceState) {
|
||||||
@@ -41,19 +45,26 @@ public class EditTask extends AppCompatActivity implements DatePickerDialog.OnDa
|
|||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
binding.btnDatePick.setOnClickListener(v->{ // <-----
|
binding.btnDatePick.setOnClickListener(v->{
|
||||||
DatePickerFragment fragment;
|
DatePickerFragment fragment = new DatePickerFragment();
|
||||||
fragment = new DatePickerFragment();
|
|
||||||
fragment.show(getSupportFragmentManager(), "DATE PICK");
|
fragment.show(getSupportFragmentManager(), "DATE PICK");
|
||||||
});
|
});
|
||||||
|
binding.btnTimePick.setOnClickListener(v->{
|
||||||
|
TimePickerFragment fragment = new TimePickerFragment();
|
||||||
|
fragment.show(getSupportFragmentManager(), "TIME PICKER");
|
||||||
|
});
|
||||||
|
|
||||||
viewModel.isLoading().observe(this, new Observer<Task>() {
|
viewModel.isLoading().observe(this, new Observer<Task>() {
|
||||||
@Override
|
@Override
|
||||||
public void onChanged(Task task) {
|
public void onChanged(Task task) {
|
||||||
binding.TaskName.setText(task.getTaskName());
|
binding.TaskName.setText(task.getTaskName());
|
||||||
binding.TaskDescription.setText(task.getTaskDescription());
|
binding.TaskDescription.setText(task.getTaskDescription());
|
||||||
taskDateString = task.getTaskDate();
|
String dateTime = task.getTaskDate();
|
||||||
|
String[] buf = dateTime.split(" ");
|
||||||
|
taskDateString = buf[0];
|
||||||
|
taskTimeString = buf[1];
|
||||||
binding.btnDatePick.setText(taskDateString);
|
binding.btnDatePick.setText(taskDateString);
|
||||||
|
binding.btnTimePick.setText(taskTimeString);
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
viewModel.getClose().observe(this, new Observer<Boolean>() {
|
viewModel.getClose().observe(this, new Observer<Boolean>() {
|
||||||
@@ -87,7 +98,7 @@ public class EditTask extends AppCompatActivity implements DatePickerDialog.OnDa
|
|||||||
String name = binding.TaskName.getText().toString();
|
String name = binding.TaskName.getText().toString();
|
||||||
String description = binding.TaskDescription.getText().toString();
|
String description = binding.TaskDescription.getText().toString();
|
||||||
|
|
||||||
Task task = new Task(taskID, name, description, taskDateString);
|
Task task = new Task(taskID, name, description, taskDateString + ' ' +taskTimeString);
|
||||||
viewModel.OfflineSaveData(task);
|
viewModel.OfflineSaveData(task);
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
@@ -97,7 +108,7 @@ public class EditTask extends AppCompatActivity implements DatePickerDialog.OnDa
|
|||||||
String name = binding.TaskName.getText().toString();
|
String name = binding.TaskName.getText().toString();
|
||||||
String description = binding.TaskDescription.getText().toString();
|
String description = binding.TaskDescription.getText().toString();
|
||||||
|
|
||||||
Task task = new Task(taskID, name, description, taskDateString);
|
Task task = new Task(taskID, name, description, taskDateString + ' ' +taskTimeString);
|
||||||
viewModel.OnlineSaveData(task, token);
|
viewModel.OnlineSaveData(task, token);
|
||||||
});
|
});
|
||||||
viewModel.getLiveDataFail().observe(this, new Observer<String>() {
|
viewModel.getLiveDataFail().observe(this, new Observer<String>() {
|
||||||
@@ -125,4 +136,10 @@ public class EditTask extends AppCompatActivity implements DatePickerDialog.OnDa
|
|||||||
+ Integer.toString(year);
|
+ Integer.toString(year);
|
||||||
binding.btnDatePick.setText(taskDateString);
|
binding.btnDatePick.setText(taskDateString);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void onTimeSet(TimePicker timePicker, int hour, int minute) {
|
||||||
|
taskTimeString = Integer.toString(hour) + ':' + Integer.toString(minute);
|
||||||
|
binding.btnTimePick.setText(taskTimeString);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
+22
@@ -0,0 +1,22 @@
|
|||||||
|
package com.example.tasktracker.Activities.ViewModels;
|
||||||
|
|
||||||
|
import android.app.Dialog;
|
||||||
|
import android.app.TimePickerDialog;
|
||||||
|
import android.os.Bundle;
|
||||||
|
|
||||||
|
import androidx.annotation.NonNull;
|
||||||
|
import androidx.annotation.Nullable;
|
||||||
|
import androidx.fragment.app.DialogFragment;
|
||||||
|
|
||||||
|
import java.util.Calendar;
|
||||||
|
|
||||||
|
public class TimePickerFragment extends DialogFragment {
|
||||||
|
@NonNull
|
||||||
|
@Override
|
||||||
|
public Dialog onCreateDialog(@Nullable Bundle savedInstanceState) {
|
||||||
|
Calendar mCalendar = Calendar.getInstance();
|
||||||
|
int hour = mCalendar.get(Calendar.YEAR);
|
||||||
|
int minute = mCalendar.get(Calendar.MONTH);
|
||||||
|
return new TimePickerDialog(getActivity(), (TimePickerDialog.OnTimeSetListener) getActivity(), hour, minute, true);
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -21,12 +21,24 @@
|
|||||||
android:layout_width="match_parent"
|
android:layout_width="match_parent"
|
||||||
android:layout_height="wrap_content"
|
android:layout_height="wrap_content"
|
||||||
android:inputType="textMultiLine"/>
|
android:inputType="textMultiLine"/>
|
||||||
<Button
|
<LinearLayout
|
||||||
android:id="@+id/btnDatePick"
|
android:layout_width="match_parent"
|
||||||
android:text="@string/button_DefaultData"
|
|
||||||
android:layout_width="200sp"
|
|
||||||
android:layout_height="wrap_content"
|
android:layout_height="wrap_content"
|
||||||
android:layout_margin="5sp"/>
|
android:orientation="horizontal"
|
||||||
|
android:layout_margin="5sp">
|
||||||
|
<Button
|
||||||
|
android:id="@+id/btnDatePick"
|
||||||
|
android:text="@string/button_DefaultData"
|
||||||
|
android:layout_width="wrap_content"
|
||||||
|
android:layout_height="wrap_content"
|
||||||
|
android:layout_weight="1"/>
|
||||||
|
<Button
|
||||||
|
android:id="@+id/btnTimePick"
|
||||||
|
android:text="@string/button_DefaultTime"
|
||||||
|
android:layout_width="wrap_content"
|
||||||
|
android:layout_height="wrap_content"
|
||||||
|
android:layout_weight="1"/>
|
||||||
|
</LinearLayout>
|
||||||
<Button
|
<Button
|
||||||
android:id="@+id/AddTask"
|
android:id="@+id/AddTask"
|
||||||
android:text="@string/button_AddTask"
|
android:text="@string/button_AddTask"
|
||||||
|
|||||||
@@ -21,12 +21,24 @@
|
|||||||
android:layout_width="match_parent"
|
android:layout_width="match_parent"
|
||||||
android:layout_height="wrap_content"
|
android:layout_height="wrap_content"
|
||||||
android:inputType="textMultiLine"/>
|
android:inputType="textMultiLine"/>
|
||||||
<Button
|
<LinearLayout
|
||||||
android:id="@+id/btnDatePick"
|
android:layout_width="match_parent"
|
||||||
android:text="@string/button_DefaultData"
|
|
||||||
android:layout_width="200sp"
|
|
||||||
android:layout_height="wrap_content"
|
android:layout_height="wrap_content"
|
||||||
android:layout_margin="5sp"/>
|
android:orientation="horizontal"
|
||||||
|
android:layout_margin="5sp">
|
||||||
|
<Button
|
||||||
|
android:id="@+id/btnDatePick"
|
||||||
|
android:text="@string/button_DefaultData"
|
||||||
|
android:layout_width="wrap_content"
|
||||||
|
android:layout_height="wrap_content"
|
||||||
|
android:layout_weight="1"/>
|
||||||
|
<Button
|
||||||
|
android:id="@+id/btnTimePick"
|
||||||
|
android:text="@string/button_DefaultTime"
|
||||||
|
android:layout_width="wrap_content"
|
||||||
|
android:layout_height="wrap_content"
|
||||||
|
android:layout_weight="1"/>
|
||||||
|
</LinearLayout>
|
||||||
<Button
|
<Button
|
||||||
android:id="@+id/btnEditTask"
|
android:id="@+id/btnEditTask"
|
||||||
android:text="@string/button_editTask"
|
android:text="@string/button_editTask"
|
||||||
|
|||||||
@@ -21,6 +21,7 @@
|
|||||||
<string name="snackebar_FailUpdateTaskList">Fail update task list!</string>
|
<string name="snackebar_FailUpdateTaskList">Fail update task list!</string>
|
||||||
<string name="snackbar_EnterName">Enter task name</string>
|
<string name="snackbar_EnterName">Enter task name</string>
|
||||||
<string name="snackbar_EnterDate">Enter task date</string>
|
<string name="snackbar_EnterDate">Enter task date</string>
|
||||||
|
<string name="snackbar_EnterTime">Enter time</string>
|
||||||
<string name="snackbar_DataBaseError">Something went wrong.</string>
|
<string name="snackbar_DataBaseError">Something went wrong.</string>
|
||||||
<string name="button_editTask">Edit task</string>
|
<string name="button_editTask">Edit task</string>
|
||||||
<string name="button_YES">Yes</string>
|
<string name="button_YES">Yes</string>
|
||||||
|
|||||||
@@ -21,6 +21,7 @@
|
|||||||
<string name="snackebar_FailUpdateTaskList">Неудалось обновить список задач!</string>
|
<string name="snackebar_FailUpdateTaskList">Неудалось обновить список задач!</string>
|
||||||
<string name="snackbar_EnterName">Введите назвние</string>
|
<string name="snackbar_EnterName">Введите назвние</string>
|
||||||
<string name="snackbar_EnterDate">Введите дату</string>
|
<string name="snackbar_EnterDate">Введите дату</string>
|
||||||
|
<string name="snackbar_EnterTime">Введите время</string>
|
||||||
<string name="snackbar_DataBaseError">Что-то пошло не так</string>
|
<string name="snackbar_DataBaseError">Что-то пошло не так</string>
|
||||||
<string name="button_editTask">Редакировать</string>
|
<string name="button_editTask">Редакировать</string>
|
||||||
<string name="button_YES">Да</string>
|
<string name="button_YES">Да</string>
|
||||||
|
|||||||
@@ -11,6 +11,7 @@
|
|||||||
<string name="button_YES">Yes</string>
|
<string name="button_YES">Yes</string>
|
||||||
<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>
|
||||||
|
|
||||||
<!-- Hints -->
|
<!-- Hints -->
|
||||||
<string name="hint_Login">Login</string>
|
<string name="hint_Login">Login</string>
|
||||||
@@ -33,6 +34,7 @@
|
|||||||
<string name="snackebar_FailUpdateTaskList">Fail update task list!</string>
|
<string name="snackebar_FailUpdateTaskList">Fail update task list!</string>
|
||||||
<string name="snackbar_EnterName">Enter task name</string>
|
<string name="snackbar_EnterName">Enter task name</string>
|
||||||
<string name="snackbar_EnterDate">Enter task date</string>
|
<string name="snackbar_EnterDate">Enter task date</string>
|
||||||
|
<string name="snackbar_EnterTime">Enter time</string>
|
||||||
<string name="snackbar_DataBaseError">Something went wrong.</string>
|
<string name="snackbar_DataBaseError">Something went wrong.</string>
|
||||||
|
|
||||||
</resources>
|
</resources>
|
||||||
Reference in New Issue
Block a user