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

Commit 5c9a5c7

Browse files
jainkuniyatimabbott
authored andcommitted
Added Enter Date option in menu
Issue #264
1 parent ec1afe9 commit 5c9a5c7

File tree

3 files changed

+29
-0
lines changed

3 files changed

+29
-0
lines changed

app/src/main/java/com/zulip/android/activities/ZulipActivity.java

Lines changed: 25 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,7 @@
55
import android.annotation.SuppressLint;
66
import android.annotation.TargetApi;
77
import android.app.AlertDialog;
8+
import android.app.DatePickerDialog;
89
import android.app.SearchManager;
910
import android.content.BroadcastReceiver;
1011
import android.content.ComponentName;
@@ -55,6 +56,7 @@
5556
import android.widget.AdapterView;
5657
import android.widget.AdapterView.OnItemClickListener;
5758
import android.widget.AutoCompleteTextView;
59+
import android.widget.DatePicker;
5860
import android.widget.EditText;
5961
import android.widget.ExpandableListView;
6062
import android.widget.FilterQueryProvider;
@@ -107,6 +109,7 @@
107109
import java.util.ArrayList;
108110
import java.util.Arrays;
109111
import java.util.Calendar;
112+
import java.util.Date;
110113
import java.util.HashMap;
111114
import java.util.List;
112115
import java.util.concurrent.Callable;
@@ -554,6 +557,11 @@ public Cursor runQuery(CharSequence charSequence) {
554557
calendar = Calendar.getInstance();
555558
}
556559

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+
*/
557565
private void handleOnFragmentChange() {
558566
getSupportFragmentManager().addOnBackStackChangedListener(new FragmentManager.OnBackStackChangedListener() {
559567
@Override
@@ -1836,6 +1844,7 @@ public boolean onOptionsItemSelected(MenuItem item) {
18361844
// Handle item selection
18371845
switch (item.getItemId()) {
18381846
case android.R.id.home:
1847+
narrowedList=null;
18391848
getSupportFragmentManager().popBackStack(NARROW,
18401849
FragmentManager.POP_BACK_STACK_INCLUSIVE);
18411850
break;
@@ -1878,13 +1887,29 @@ public void onClick(
18781887
onRefresh();
18791888
break;
18801889
case R.id.today:
1890+
//check user selected Today or One Day Before
18811891
if (menu != null && menu.getItem(2).getSubMenu().getItem(0).getTitle().equals(getString(R.string.menu_one_day_before))) {
1892+
//user selected One Day Before
18821893
calendar.add(Calendar.DATE, -1);
18831894
doNarrow(new NarrowFilterByDate(calendar.getTime()));
18841895
break;
18851896
}
1897+
//else Narrow to Today
18861898
doNarrow(new NarrowFilterByDate());
18871899
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;
18881913
case R.id.logout:
18891914
logout();
18901915
break;

app/src/main/res/menu/options.xml

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -22,6 +22,9 @@
2222
<item
2323
android:id="@+id/today"
2424
android:title="@string/menu_today" />
25+
<item
26+
android:id="@+id/enterDate"
27+
android:title="@string/enter_date" />
2528
</menu>
2629
</item>
2730

app/src/main/res/values/strings.xml

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -115,4 +115,5 @@
115115
<string name="cancel_content_desp" tools:ignore="ButtonCase">cancel</string>
116116
<string name="camera_content_desp">take photo</string>
117117
<string name="menu_one_day_before">One Day Before</string>
118+
<string name="enter_date">Enter Date</string>
118119
</resources>

0 commit comments

Comments
 (0)