summaryrefslogtreecommitdiffstats
path: root/src/com/android/calendar/AllInOneActivity.java
diff options
context:
space:
mode:
authorkaiyiz <kaiyiz@codeaurora.org>2014-03-18 13:42:18 +0800
committerMatt Garnes <matt@cyngn.com>2014-11-11 17:46:50 -0800
commit67be113ebee4fc9f3b19a1f857bdda9c1358c1ec (patch)
tree541532ae84d36dc30f89f7935a786eab8878eee4 /src/com/android/calendar/AllInOneActivity.java
parent033d8e339cd7c61111d3d15890677370abd5c94e (diff)
downloadandroid_packages_apps_Calendar-67be113ebee4fc9f3b19a1f857bdda9c1358c1ec.tar.gz
android_packages_apps_Calendar-67be113ebee4fc9f3b19a1f857bdda9c1358c1ec.tar.bz2
android_packages_apps_Calendar-67be113ebee4fc9f3b19a1f857bdda9c1358c1ec.zip
Calendar: Add the "Go to" menu for user to go to any date as select
When user press the menu button, it will show the "Go to" item, and the user could select any date to view. CRs-Fixed: 587493 Change-Id: Ia90f9c5697cf36a753534a0256947fa5e3a58576
Diffstat (limited to 'src/com/android/calendar/AllInOneActivity.java')
-rw-r--r--src/com/android/calendar/AllInOneActivity.java64
1 files changed, 64 insertions, 0 deletions
diff --git a/src/com/android/calendar/AllInOneActivity.java b/src/com/android/calendar/AllInOneActivity.java
index af432828..7567fa4c 100644
--- a/src/com/android/calendar/AllInOneActivity.java
+++ b/src/com/android/calendar/AllInOneActivity.java
@@ -26,6 +26,9 @@ import android.animation.Animator.AnimatorListener;
import android.animation.ObjectAnimator;
import android.app.ActionBar;
import android.app.ActionBar.Tab;
+import android.app.DatePickerDialog;
+import android.app.Dialog;
+import android.app.DialogFragment;
import android.app.Fragment;
import android.app.FragmentManager;
import android.app.FragmentTransaction;
@@ -35,6 +38,7 @@ import android.content.ComponentName;
import android.content.ContentResolver;
import android.content.ContentUris;
import android.content.Context;
+import android.content.DialogInterface;
import android.content.Intent;
import android.content.ServiceConnection;
import android.content.SharedPreferences;
@@ -61,6 +65,7 @@ import android.view.Menu;
import android.view.MenuItem;
import android.view.View;
import android.view.accessibility.AccessibilityEvent;
+import android.widget.DatePicker;
import android.widget.LinearLayout;
import android.widget.RelativeLayout;
import android.widget.RelativeLayout.LayoutParams;
@@ -79,6 +84,7 @@ import com.android.lunar.ILunarService;
import com.android.lunar.LunarUtils;
import java.io.IOException;
+import java.util.Calendar;
import java.util.List;
import java.util.Locale;
import java.util.TimeZone;
@@ -154,6 +160,7 @@ public class AllInOneActivity extends AbstractCalendarActivity implements EventH
private SearchView mSearchView;
private MenuItem mSearchMenu;
private MenuItem mControlsMenu;
+ private MenuItem mGoToMenu;
private Menu mOptionsMenu;
private CalendarViewAdapter mActionBarMenuSpinnerAdapter;
private QueryHandler mHandler;
@@ -774,6 +781,11 @@ public class AllInOneActivity extends AbstractCalendarActivity implements EventH
mControlsMenu.setTitle(mHideControls ? mShowString : mHideString);
}
+ mGoToMenu = menu.findItem(R.id.action_goto);
+ if (!getResources().getBoolean(R.bool.show_goto_menu)) {
+ mGoToMenu.setVisible(false);
+ }
+
MenuItem menuItem = menu.findItem(R.id.action_today);
if (Utils.isJellybeanOrLater()) {
// replace the default top layer drawable of the today icon with a
@@ -841,6 +853,12 @@ public class AllInOneActivity extends AbstractCalendarActivity implements EventH
} else if (itemId == R.id.action_delete_events) {
startActivity(new Intent(this, DeleteEventsActivity.class));
return true;
+ } else if (itemId == R.id.action_goto) {
+ // Get the current time to display in Dialog.
+ String timeZone = mTimeZone;
+ GoToDialogFragment goToFrg = GoToDialogFragment.newInstance(timeZone);
+ goToFrg.show(getFragmentManager(), "goto");
+ return true;
} else {
return mExtensions.handleItemSelected(item, this);
}
@@ -1361,4 +1379,50 @@ public class AllInOneActivity extends AbstractCalendarActivity implements EventH
}
return false;
}
+
+ public static class GoToDialogFragment extends DialogFragment {
+ private static final String KEY_TIMEZONE = "timezone";
+
+ public static GoToDialogFragment newInstance(String timeZone) {
+ GoToDialogFragment goToFrg = new GoToDialogFragment();
+ Bundle bundle = new Bundle();
+ bundle.putString(KEY_TIMEZONE, timeZone);
+ goToFrg.setArguments(bundle);
+ return goToFrg;
+ }
+
+ @Override
+ public Dialog onCreateDialog(Bundle savedInstanceState) {
+ final String timeZone = getArguments().getString(KEY_TIMEZONE);
+ final CalendarController controller = CalendarController.getInstance(getActivity());
+ Time t = null;
+ t = new Time(timeZone);
+ Calendar calendar = Calendar.getInstance();
+ t.year = calendar.get(Calendar.YEAR);
+ t.month = calendar.get(Calendar.MONTH);
+ t.monthDay = calendar.get(Calendar.DATE);
+ DatePickerDialog dialog = new DatePickerDialog(getActivity(), null,
+ t.year, t.month, t.monthDay) {
+ };
+ final DatePicker datePicker = dialog.getDatePicker();
+ dialog.setButton(DialogInterface.BUTTON_POSITIVE,
+ getResources().getString(R.string.save_label),
+ new DialogInterface.OnClickListener() {
+ @Override
+ public void onClick(DialogInterface dialog, int which) {
+ Time t = null;
+ t = new Time(timeZone);
+ int year = datePicker.getYear();
+ int monthOfYear = datePicker.getMonth();
+ int dayOfMonth = datePicker.getDayOfMonth();
+ t.set(dayOfMonth, monthOfYear, year);
+ t.set(t.toMillis(false));
+ controller.sendEvent(this, EventType.GO_TO, null, null, t, -1,
+ ViewType.CURRENT, CalendarController.EXTRA_GOTO_TIME,
+ null, null);
+ }
+ });
+ return dialog;
+ }
+ }
}