|
5 | 5 | import android.annotation.SuppressLint;
|
6 | 6 | import android.annotation.TargetApi;
|
7 | 7 | import android.app.AlertDialog;
|
| 8 | +import android.app.DatePickerDialog; |
8 | 9 | import android.app.SearchManager;
|
9 | 10 | import android.content.BroadcastReceiver;
|
10 | 11 | import android.content.ComponentName;
|
|
55 | 56 | import android.widget.AdapterView;
|
56 | 57 | import android.widget.AdapterView.OnItemClickListener;
|
57 | 58 | import android.widget.AutoCompleteTextView;
|
| 59 | +import android.widget.DatePicker; |
58 | 60 | import android.widget.EditText;
|
59 | 61 | import android.widget.ExpandableListView;
|
60 | 62 | import android.widget.FilterQueryProvider;
|
|
107 | 109 | import java.util.ArrayList;
|
108 | 110 | import java.util.Arrays;
|
109 | 111 | import java.util.Calendar;
|
| 112 | +import java.util.Date; |
110 | 113 | import java.util.HashMap;
|
111 | 114 | import java.util.List;
|
112 | 115 | import java.util.concurrent.Callable;
|
@@ -554,6 +557,11 @@ public Cursor runQuery(CharSequence charSequence) {
|
554 | 557 | calendar = Calendar.getInstance();
|
555 | 558 | }
|
556 | 559 |
|
| 560 | + /** |
| 561 | + * Called when fragment is changed |
| 562 | + * When narrowedList == null means home page show Today in menu |
| 563 | + * When narrowedList.filter instanceof NarrowFilterByDate show One Day before in menu |
| 564 | + */ |
557 | 565 | private void handleOnFragmentChange() {
|
558 | 566 | getSupportFragmentManager().addOnBackStackChangedListener(new FragmentManager.OnBackStackChangedListener() {
|
559 | 567 | @Override
|
@@ -1836,6 +1844,7 @@ public boolean onOptionsItemSelected(MenuItem item) {
|
1836 | 1844 | // Handle item selection
|
1837 | 1845 | switch (item.getItemId()) {
|
1838 | 1846 | case android.R.id.home:
|
| 1847 | + narrowedList=null; |
1839 | 1848 | getSupportFragmentManager().popBackStack(NARROW,
|
1840 | 1849 | FragmentManager.POP_BACK_STACK_INCLUSIVE);
|
1841 | 1850 | break;
|
@@ -1878,13 +1887,29 @@ public void onClick(
|
1878 | 1887 | onRefresh();
|
1879 | 1888 | break;
|
1880 | 1889 | case R.id.today:
|
| 1890 | + //check user selected Today or One Day Before |
1881 | 1891 | if (menu != null && menu.getItem(2).getSubMenu().getItem(0).getTitle().equals(getString(R.string.menu_one_day_before))) {
|
| 1892 | + //user selected One Day Before |
1882 | 1893 | calendar.add(Calendar.DATE, -1);
|
1883 | 1894 | doNarrow(new NarrowFilterByDate(calendar.getTime()));
|
1884 | 1895 | break;
|
1885 | 1896 | }
|
| 1897 | + //else Narrow to Today |
1886 | 1898 | doNarrow(new NarrowFilterByDate());
|
1887 | 1899 | break;
|
| 1900 | + case R.id.enterDate: |
| 1901 | + //show Dialog with calendar date as selected to pick Date |
| 1902 | + DatePickerDialog datePickerDialog = new DatePickerDialog(ZulipActivity.this, new DatePickerDialog.OnDateSetListener() { |
| 1903 | + @Override |
| 1904 | + public void onDateSet(DatePicker view, int year, int month, int dayOfMonth) { |
| 1905 | + calendar.set(year,month,dayOfMonth); |
| 1906 | + doNarrow(new NarrowFilterByDate(calendar.getTime())); |
| 1907 | + } |
| 1908 | + },calendar.get(Calendar.YEAR),calendar.get(Calendar.MONTH),calendar.get(Calendar.DAY_OF_MONTH)); |
| 1909 | + //set max date to today so future dates are not selectable |
| 1910 | + datePickerDialog.getDatePicker().setMaxDate(new Date().getTime()); |
| 1911 | + datePickerDialog.show(); |
| 1912 | + break; |
1888 | 1913 | case R.id.logout:
|
1889 | 1914 | logout();
|
1890 | 1915 | break;
|
|
0 commit comments