11package apps .jizzu .simpletodo .activity ;
22
33import android .animation .Animator ;
4+ import android .app .AlertDialog ;
45import android .app .DatePickerDialog ;
56import android .app .DialogFragment ;
67import android .app .TimePickerDialog ;
8+ import android .content .DialogInterface ;
79import android .content .Intent ;
810import android .support .design .widget .TextInputLayout ;
911import android .support .v7 .app .AppCompatActivity ;
1012import android .os .Bundle ;
1113import android .support .v7 .widget .SwitchCompat ;
1214import android .support .v7 .widget .Toolbar ;
1315import android .util .Log ;
16+ import android .view .Menu ;
1417import android .view .MenuItem ;
1518import android .view .View ;
1619import android .view .inputmethod .InputMethodManager ;
@@ -43,9 +46,14 @@ public class EditTaskActivity extends AppCompatActivity implements DatePickerDia
4346 TextInputLayout mTaskTitleLayout ;
4447 RelativeLayout mReminderLayout ;
4548 Calendar mCalendar ;
46- EditText mDate ;
47- EditText mTime ;
49+ EditText mDateEditText ;
50+ EditText mTimeEditText ;
4851 SwitchCompat mReminderSwitch ;
52+ RecyclerViewAdapter mAdapter ;
53+ long mId ;
54+ long mDate ;
55+ int mPosition ;
56+ long mTimeStamp ;
4957
5058 @ Override
5159 protected void onCreate (Bundle savedInstanceState ) {
@@ -63,37 +71,40 @@ protected void onCreate(Bundle savedInstanceState) {
6371 }
6472
6573 RelativeLayout relativeLayout = findViewById (R .id .container );
66- mDate = findViewById (R .id .taskDate );
74+ mDateEditText = findViewById (R .id .taskDate );
6775 mTaskTitleLayout = findViewById (R .id .taskTitleLayout );
6876 mReminderLayout = findViewById (R .id .reminderContainer );
6977 mTitle = findViewById (R .id .taskTitle );
70- mTime = findViewById (R .id .taskTime );
78+ mTimeEditText = findViewById (R .id .taskTime );
7179 Button addTaskButton = findViewById (R .id .addTaskButton );
7280 mReminderSwitch = findViewById (R .id .reminderSwitch );
7381
82+
7483 // Get Intent data
7584 Intent intent = getIntent ();
76- final long id = intent .getLongExtra ("id" , 0 );
85+ mId = intent .getLongExtra ("id" , 0 );
7786 String title = intent .getStringExtra ("title" );
78- final long date = intent .getLongExtra ("date" , 0 );
79- final int position = intent .getIntExtra ("position" , 0 );
80- final long timeStamp = intent .getLongExtra ("time_stamp" , 0 );
87+ mDate = intent .getLongExtra ("date" , 0 );
88+ mPosition = intent .getIntExtra ("position" , 0 );
89+ mTimeStamp = intent .getLongExtra ("time_stamp" , 0 );
90+
91+ mAdapter = RecyclerViewAdapter .getInstance ();
8192
82- Log .d (TAG , "TASK DATE = " + date );
93+ Log .d (TAG , "TASK DATE = " + mDate );
8394
8495 mTitle .setText (title );
8596 mTitle .setSelection (mTitle .getText ().length ());
86- if (date != 0 ) {
87- mDate .setText (Utils .getDate (date ));
88- mTime .setText (Utils .getTime (date ));
97+ if (mDate != 0 ) {
98+ mDateEditText .setText (Utils .getDate (mDate ));
99+ mTimeEditText .setText (Utils .getTime (mDate ));
89100 }
90101 addTaskButton .setText (getString (R .string .update_task ));
91102
92- if (date == 0 ) {
103+ if (mDate == 0 ) {
93104 mReminderLayout .setVisibility (View .INVISIBLE );
94105 mReminderSwitch .setChecked (false );
95- mDate .setText (null );
96- mTime .setText (null );
106+ mDateEditText .setText (null );
107+ mTimeEditText .setText (null );
97108 } else {
98109 mReminderLayout .setVisibility (View .VISIBLE );
99110 mReminderSwitch .setChecked (true );
@@ -148,8 +159,8 @@ public void onAnimationRepeat(Animator animation) {
148159 }
149160 }
150161 );
151- mDate .setText (null );
152- mTime .setText (null );
162+ mDateEditText .setText (null );
163+ mTimeEditText .setText (null );
153164 }
154165 }
155166 });
@@ -165,27 +176,27 @@ public void onClick(View view) {
165176 });
166177
167178 mCalendar = Calendar .getInstance ();
168- if (mDate .length () != 0 || mTime .length () != 0 ) {
169- mCalendar .setTimeInMillis (date );
179+ if (mDateEditText .length () != 0 || mTimeEditText .length () != 0 ) {
180+ mCalendar .setTimeInMillis (mDate );
170181 }
171182 // If the user specified only the date (without time), then the notification of the event will appear in an hour.
172- if (mTime .length () == 0 ) {
183+ if (mTimeEditText .length () == 0 ) {
173184 mCalendar .set (Calendar .HOUR_OF_DAY , mCalendar .get (Calendar .HOUR_OF_DAY ) + 1 );
174185 }
175186
176- mDate .setOnClickListener (new View .OnClickListener () {
187+ mDateEditText .setOnClickListener (new View .OnClickListener () {
177188 @ Override
178189 public void onClick (View view ) {
179- mDate .setText (null );
190+ mDateEditText .setText (null );
180191 DialogFragment datePickerFragment = new DatePickerFragment ();
181192 datePickerFragment .show (getFragmentManager (), "DatePickerFragment" );
182193 }
183194 });
184195
185- mTime .setOnClickListener (new View .OnClickListener () {
196+ mTimeEditText .setOnClickListener (new View .OnClickListener () {
186197 @ Override
187198 public void onClick (View view ) {
188- mTime .setText (null );
199+ mTimeEditText .setText (null );
189200 DialogFragment timePickerFragment = new TimePickerFragment ();
190201 timePickerFragment .show (getFragmentManager (), "TimePickerFragment" );
191202 }
@@ -200,21 +211,20 @@ public void onClick(View view) {
200211 mTitle .setError (getString (R .string .error_spaces ));
201212 } else {
202213 DBHelper dbHelper = DBHelper .getInstance (MainActivity .mContext );
203- RecyclerViewAdapter adapter = RecyclerViewAdapter .getInstance ();
204214
205- ModelTask task = new ModelTask (id , mTitle .getText ().toString (), date , position , timeStamp );
215+ ModelTask task = new ModelTask (mId , mTitle .getText ().toString (), mDate , mPosition , mTimeStamp );
206216
207- if (mDate .length () != 0 || mTime .length () != 0 ) {
217+ if (mDateEditText .length () != 0 || mTimeEditText .length () != 0 ) {
208218 task .setDate (mCalendar .getTimeInMillis ());
209219 }
210220
211- if (!mReminderSwitch .isChecked () || (mDate .length () == 0 && mTime .length () == 0 )) {
221+ if (!mReminderSwitch .isChecked () || (mDateEditText .length () == 0 && mTimeEditText .length () == 0 )) {
212222 task .setDate (0 );
213223 }
214224 Log .d (TAG , "Title = " + task .getTitle () + ", date = " + task .getDate () + ", position = " + task .getPosition ());
215225
216226 dbHelper .updateTask (task );
217- adapter .updateItem (task , task .getPosition ());
227+ mAdapter .updateItem (task , task .getPosition ());
218228
219229 if (task .getDate () != 0 && task .getDate () <= Calendar .getInstance ().getTimeInMillis ()) {
220230 task .setDate (0 );
@@ -249,17 +259,52 @@ public void hideKeyboard(EditText editText) {
249259 imm .hideSoftInputFromWindow (editText .getWindowToken (), 0 );
250260 }
251261
262+ @ Override
263+ public boolean onCreateOptionsMenu (Menu menu ) {
264+ getMenuInflater ().inflate (R .menu .edit_task_menu , menu );
265+ return true ;
266+ }
267+
252268 /**
253269 * The handler for clicking the close button in the toolbar.
254270 */
255271 @ Override
256272 public boolean onOptionsItemSelected (MenuItem item ) {
257- if (item .getItemId () == android .R .id .home ) {
258- hideKeyboard (mTitle );
259- onBackPressed ();
260- return true ;
273+
274+ switch (item .getItemId ()) {
275+
276+ case android .R .id .home :
277+ hideKeyboard (mTitle );
278+ onBackPressed ();
279+ break ;
280+
281+ case R .id .action_delete :
282+ AlertDialog .Builder alertDialog = new AlertDialog .Builder (this );
283+ alertDialog .setTitle (R .string .dialog_title );
284+ alertDialog .setMessage (R .string .dialog_message );
285+ alertDialog .setPositiveButton (R .string .action_delete , new DialogInterface .OnClickListener () {
286+ @ Override
287+ public void onClick (DialogInterface dialogInterface , int i ) {
288+ hideKeyboard (mTitle );
289+ ModelTask task = new ModelTask (mId , mTitle .getText ().toString (), mDate , mPosition , mTimeStamp );
290+ Log .d (TAG , "EDIT TASK ACTIVITY: task position = " + (task .getPosition ()));
291+ mAdapter .removeItem (task .getPosition ());
292+ if (mAdapter .getItemCount () == 0 && MainActivity .mSearchViewIsOpen ) {
293+ MainActivity .mShowAnimation = true ;
294+ }
295+ finish ();
296+ }
297+ });
298+ alertDialog .setNegativeButton (R .string .action_cancel , new DialogInterface .OnClickListener () {
299+ @ Override
300+ public void onClick (DialogInterface dialogInterface , int i ) {
301+
302+ }
303+ });
304+ alertDialog .show ();
305+ break ;
261306 }
262- return false ;
307+ return super . onOptionsItemSelected ( item ) ;
263308 }
264309
265310 /**
@@ -270,7 +315,7 @@ public void onDateSet(DatePicker datePicker, int year, int monthOfYear, int dayO
270315 mCalendar .set (Calendar .YEAR , year );
271316 mCalendar .set (Calendar .MONTH , monthOfYear );
272317 mCalendar .set (Calendar .DAY_OF_MONTH , dayOfMonth );
273- mDate .setText (Utils .getDate (mCalendar .getTimeInMillis ()));
318+ mDateEditText .setText (Utils .getDate (mCalendar .getTimeInMillis ()));
274319 }
275320
276321 /**
@@ -281,6 +326,6 @@ public void onTimeSet(TimePicker timePicker, int hourOfDay, int minute) {
281326 mCalendar .set (Calendar .HOUR_OF_DAY , hourOfDay );
282327 mCalendar .set (Calendar .MINUTE , minute );
283328 mCalendar .set (Calendar .SECOND , 0 );
284- mTime .setText (Utils .getTime (mCalendar .getTimeInMillis ()));
329+ mTimeEditText .setText (Utils .getTime (mCalendar .getTimeInMillis ()));
285330 }
286331}
0 commit comments