Skip to content
This repository was archived by the owner on Nov 18, 2024. It is now read-only.

Commit 15a074e

Browse files
committed
Added searching feature
1 parent f6ca501 commit 15a074e

30 files changed

Lines changed: 322 additions & 90 deletions

app/build.gradle

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -33,5 +33,6 @@ dependencies {
3333
compile 'com.android.support:design:26.1.0'
3434
compile 'com.android.support:cardview-v7:26.1.0'
3535
compile 'com.github.XunMengWinter:CircularAnim:0.3.4'
36+
compile 'com.miguelcatalan:materialsearchview:1.4.0'
3637
testCompile 'junit:junit:4.12'
3738
}

app/release/app-release.apk

72.1 KB
Binary file not shown.

app/release/output.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1 +1 @@
1-
[{"outputType":{"type":"APK"},"apkInfo":{"type":"MAIN","splits":[],"versionCode":1},"path":"app-release.apk","properties":{"packageId":"apps.jizzu.simpletodo","split":"","minSdkVersion":"19"}}]
1+
[{"outputType":{"type":"APK"},"apkInfo":{"type":"MAIN","splits":[],"versionCode":2},"path":"app-release.apk","properties":{"packageId":"apps.jizzu.simpletodo","split":"","minSdkVersion":"19"}}]

app/src/main/java/apps/jizzu/simpletodo/activity/EditTaskActivity.java

Lines changed: 81 additions & 36 deletions
Original file line numberDiff line numberDiff line change
@@ -1,16 +1,19 @@
11
package apps.jizzu.simpletodo.activity;
22

33
import android.animation.Animator;
4+
import android.app.AlertDialog;
45
import android.app.DatePickerDialog;
56
import android.app.DialogFragment;
67
import android.app.TimePickerDialog;
8+
import android.content.DialogInterface;
79
import android.content.Intent;
810
import android.support.design.widget.TextInputLayout;
911
import android.support.v7.app.AppCompatActivity;
1012
import android.os.Bundle;
1113
import android.support.v7.widget.SwitchCompat;
1214
import android.support.v7.widget.Toolbar;
1315
import android.util.Log;
16+
import android.view.Menu;
1417
import android.view.MenuItem;
1518
import android.view.View;
1619
import 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

Comments
 (0)