Skip to content

Commit 6a6c316

Browse files
committed
feat(taskview): move save button to action bar menu
1 parent 9279c20 commit 6a6c316

File tree

3 files changed

+60
-36
lines changed

3 files changed

+60
-36
lines changed

app/src/main/java/tech/akpmakes/android/taskkeeper/TaskViewActivity.java

Lines changed: 42 additions & 36 deletions
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,9 @@
55
import android.os.Bundle;
66
import android.os.Handler;
77
import android.support.v7.app.AppCompatActivity;
8+
import android.view.Menu;
9+
import android.view.MenuInflater;
10+
import android.view.MenuItem;
811
import android.view.View;
912
import android.widget.Button;
1013
import android.widget.CheckBox;
@@ -23,6 +26,7 @@
2326

2427
public class TaskViewActivity extends AppCompatActivity implements DatePickerDialog.OnDateSetListener, TimePickerDialog.OnTimeSetListener {
2528
Calendar whenTime;
29+
EditText taskName;
2630
TextView taskDate;
2731
TextView taskTime;
2832
CheckBox useCurrentTime;
@@ -32,11 +36,10 @@ public class TaskViewActivity extends AppCompatActivity implements DatePickerDia
3236
protected void onCreate(Bundle savedInstanceState) {
3337
super.onCreate(savedInstanceState);
3438
setContentView(R.layout.activity_task_view);
35-
final EditText taskName = findViewById(R.id.task_name_content);
39+
taskName = findViewById(R.id.task_name_content);
3640
taskDate = findViewById(R.id.task_when_date);
3741
taskTime = findViewById(R.id.task_when_time);
3842
useCurrentTime = findViewById(R.id.useCurrentTime);
39-
Button taskSave = findViewById(R.id.btn_save_task);
4043

4144
whenTime = Calendar.getInstance();
4245

@@ -101,43 +104,47 @@ public void onClick(View view) {
101104
timePicker.show(getFragmentManager(), "TimePickerDialog");
102105
}
103106
});
107+
}
104108

105-
taskSave.setOnClickListener(new View.OnClickListener() {
106-
@Override
107-
public void onClick(View view) {
108-
if(useCurrentTime.isChecked()) {
109-
updateTime();
110-
}
111-
String name = taskName.getText().toString();
112-
Long when = whenTime.getTimeInMillis();
113-
if (name.length() == 0) {
114-
taskName.setError("Task name is required!");
115-
return;
116-
}
117-
WhenEvent evt = new WhenEvent(name, when);
118-
Intent i = new Intent();
119-
i.putExtra("whenName", evt.getName());
120-
i.putExtra("whenTime", evt.getWhen());
121-
if(whenKey != null) {
122-
i.putExtra("whenKey", whenKey);
123-
}
124-
setResult(Activity.RESULT_OK, i);
125-
finish();
126-
}
127-
});
128-
129-
useCurrentTime.setOnCheckedChangeListener(new CompoundButton.OnCheckedChangeListener() {
130-
@Override
131-
public void onCheckedChanged(CompoundButton compoundButton, boolean isChecked) {
132-
if (isChecked) {
109+
private void saveTask() {
110+
if(useCurrentTime.isChecked()) {
111+
updateTime();
112+
}
113+
String name = taskName.getText().toString();
114+
Long when = whenTime.getTimeInMillis();
115+
if (name.length() == 0) {
116+
taskName.setError("Task name is required!");
117+
return;
118+
}
119+
WhenEvent evt = new WhenEvent(name, when);
120+
Intent i = new Intent();
121+
i.putExtra("whenName", evt.getName());
122+
i.putExtra("whenTime", evt.getWhen());
123+
if(whenKey != null) {
124+
i.putExtra("whenKey", whenKey);
125+
}
126+
setResult(Activity.RESULT_OK, i);
127+
finish();
128+
}
133129

134-
} else {
130+
@Override
131+
public boolean onCreateOptionsMenu(Menu menu) {
132+
MenuInflater inflater = getMenuInflater();
133+
inflater.inflate(R.menu.add_task_menu, menu);
134+
return true;
135+
}
135136

136-
}
137-
}
138-
});
137+
@Override
138+
public boolean onOptionsItemSelected(MenuItem item) {
139+
switch (item.getItemId()) {
140+
case R.id.save_task:
141+
saveTask();
142+
default:
143+
return super.onOptionsItemSelected(item);
144+
}
139145
}
140146

147+
141148
@Override
142149
public void onDateSet(DatePickerDialog view, int year, int monthOfYear, int dayOfMonth) {
143150
whenTime.set(Calendar.YEAR, year);
@@ -161,8 +168,7 @@ public void onTimeSet(TimePickerDialog view, int hourOfDay, int minute, int seco
161168
}
162169

163170
private void updateTime() {
164-
Calendar now = Calendar.getInstance();
165-
whenTime = now;
171+
whenTime = Calendar.getInstance();
166172
updateDateTimeUI();
167173
}
168174

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,9 @@
1+
<vector xmlns:android="http://schemas.android.com/apk/res/android"
2+
android:width="24dp"
3+
android:height="24dp"
4+
android:viewportWidth="24.0"
5+
android:viewportHeight="24.0">
6+
<path
7+
android:fillColor="#FFFFFFFF"
8+
android:pathData="M17,3L5,3c-1.11,0 -2,0.9 -2,2v14c0,1.1 0.89,2 2,2h14c1.1,0 2,-0.9 2,-2L21,7l-4,-4zM12,19c-1.66,0 -3,-1.34 -3,-3s1.34,-3 3,-3 3,1.34 3,3 -1.34,3 -3,3zM15,9L5,9L5,5h10v4z"/>
9+
</vector>
Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,9 @@
1+
<?xml version="1.0" encoding="utf-8"?>
2+
<menu xmlns:android="http://schemas.android.com/apk/res/android"
3+
xmlns:app="http://schemas.android.com/apk/res-auto">
4+
<item
5+
android:id="@+id/save_task"
6+
android:icon="@drawable/ic_save"
7+
android:title="@string/save_task_label"
8+
app:showAsAction="ifRoom" />
9+
</menu>

0 commit comments

Comments
 (0)