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