33import android .app .Activity ;
44import android .content .Intent ;
55import android .os .Bundle ;
6+ import android .os .Handler ;
67import android .support .v7 .app .AppCompatActivity ;
78import android .view .View ;
89import android .widget .Button ;
10+ import android .widget .CheckBox ;
11+ import android .widget .CompoundButton ;
912import android .widget .EditText ;
1013import android .widget .TextView ;
1114
@@ -22,6 +25,7 @@ public class TaskViewActivity extends AppCompatActivity implements DatePickerDia
2225 Calendar whenTime ;
2326 TextView taskDate ;
2427 TextView taskTime ;
28+ CheckBox useCurrentTime ;
2529 String whenKey ;
2630
2731 @ Override
@@ -31,16 +35,29 @@ protected void onCreate(Bundle savedInstanceState) {
3135 final EditText taskName = findViewById (R .id .task_name_content );
3236 taskDate = findViewById (R .id .task_when_date );
3337 taskTime = findViewById (R .id .task_when_time );
38+ useCurrentTime = findViewById (R .id .useCurrentTime );
3439 Button taskSave = findViewById (R .id .btn_save_task );
3540
3641 whenTime = Calendar .getInstance ();
3742
43+ final Handler handler = new Handler ();
44+ handler .postDelayed (new Runnable () {
45+ @ Override
46+ public void run () {
47+ if (useCurrentTime .isChecked ()) {
48+ updateTime ();
49+ }
50+ handler .postDelayed ( this , 250 );
51+ }
52+ }, 0 );
53+
3854 Intent i = getIntent ();
3955 if (i .hasExtra ("whenName" )) {
4056 taskName .setText (i .getStringExtra ("whenName" ));
4157 }
4258
4359 if (i .hasExtra ("whenTime" )) {
60+ useCurrentTime .setChecked (false );
4461 whenTime .setTimeInMillis (i .getLongExtra ("whenTime" , 0 ));
4562 }
4663
@@ -88,8 +105,15 @@ public void onClick(View view) {
88105 taskSave .setOnClickListener (new View .OnClickListener () {
89106 @ Override
90107 public void onClick (View view ) {
108+ if (useCurrentTime .isChecked ()) {
109+ updateTime ();
110+ }
91111 String name = taskName .getText ().toString ();
92112 Long when = whenTime .getTimeInMillis ();
113+ if (name .length () == 0 ) {
114+ taskName .setError ("Task name is required!" );
115+ return ;
116+ }
93117 WhenEvent evt = new WhenEvent (name , when );
94118 Intent i = new Intent ();
95119 i .putExtra ("whenName" , evt .getName ());
@@ -101,6 +125,17 @@ public void onClick(View view) {
101125 finish ();
102126 }
103127 });
128+
129+ useCurrentTime .setOnCheckedChangeListener (new CompoundButton .OnCheckedChangeListener () {
130+ @ Override
131+ public void onCheckedChanged (CompoundButton compoundButton , boolean isChecked ) {
132+ if (isChecked ) {
133+
134+ } else {
135+
136+ }
137+ }
138+ });
104139 }
105140
106141 @ Override
@@ -109,6 +144,8 @@ public void onDateSet(DatePickerDialog view, int year, int monthOfYear, int dayO
109144 whenTime .set (Calendar .MONTH , monthOfYear );
110145 whenTime .set (Calendar .DAY_OF_MONTH , dayOfMonth );
111146
147+ useCurrentTime .setChecked (false );
148+
112149 updateDateTimeUI ();
113150 }
114151
@@ -118,6 +155,14 @@ public void onTimeSet(TimePickerDialog view, int hourOfDay, int minute, int seco
118155 whenTime .set (Calendar .MINUTE , minute );
119156 whenTime .set (Calendar .SECOND , second );
120157
158+ useCurrentTime .setChecked (false );
159+
160+ updateDateTimeUI ();
161+ }
162+
163+ private void updateTime () {
164+ Calendar now = Calendar .getInstance ();
165+ whenTime = now ;
121166 updateDateTimeUI ();
122167 }
123168
0 commit comments