2 * Copyright (C) 2006 The Android Open Source Project
4 * Licensed under the Apache License, Version 2.0 (the "License");
5 * you may not use this file except in compliance with the License.
6 * You may obtain a copy of the License at
8 * http://www.apache.org/licenses/LICENSE-2.0
10 * Unless required by applicable law or agreed to in writing, software
11 * distributed under the License is distributed on an "AS IS" BASIS,
12 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13 * See the License for the specific language governing permissions and
14 * limitations under the License.
17 package com.android.calendar;
19 import static android.provider.Calendar.EVENT_BEGIN_TIME;
20 import android.content.Context;
21 import android.content.Intent;
22 import android.text.format.Time;
23 import android.view.animation.AlphaAnimation;
24 import android.widget.ViewFlipper;
27 public static void startActivity(Context context, String className, long time) {
28 Intent intent = new Intent(Intent.ACTION_VIEW);
30 intent.setClassName(context, className);
31 intent.putExtra(EVENT_BEGIN_TIME, time);
33 context.startActivity(intent);
36 public static final Time timeFromIntent(Intent intent) {
37 Time time = new Time();
38 time.set(timeFromIntentInMillis(intent));
43 * If the given intent specifies a time (in milliseconds since the epoch),
44 * then that time is returned. Otherwise, the current time is returned.
46 public static final long timeFromIntentInMillis(Intent intent) {
47 // If the time was specified, then use that. Otherwise, use the current time.
48 long millis = intent.getLongExtra(EVENT_BEGIN_TIME, -1);
50 millis = System.currentTimeMillis();
55 public static final void applyAlphaAnimation(ViewFlipper v) {
56 AlphaAnimation in = new AlphaAnimation(0.0f, 1.0f);
61 AlphaAnimation out = new AlphaAnimation(1.0f, 0.0f);
63 out.setStartOffset(0);
67 v.setOutAnimation(out);
71 * Formats the given Time object so that it gives the day of the week
72 * and the date (for example, "Monday, September 3, 2007"). If the
73 * abbrev argument is true, then abbreviated names will be used (for
74 * example, "Mon, Sep 3, 2007").
76 * @param time the time to format
77 * @param abbrev if true, use abbreviations for the weekday and month
78 * @return the string containing the weekday and the date
80 public static String formatDayDate(Time time, boolean abbrev) {
83 date = time.format("%a, %b %-d, %Y");
85 date = time.format("%A, %B %-d, %Y");
91 * Formats the given Time object so that it gives the month and year
92 * (for example, "September 2007").
94 * @param time the time to format
95 * @return the string containing the weekday and the date
97 public static String formatMonthYear(Time time) {
98 return time.format("%B %Y");
101 // TODO: replace this with the correct i18n way to do this
102 public static final String englishNthDay[] = {
103 "", "1st", "2nd", "3rd", "4th", "5th", "6th", "7th", "8th", "9th",
104 "10th", "11th", "12th", "13th", "14th", "15th", "16th", "17th", "18th", "19th",
105 "20th", "21st", "22nd", "23rd", "24th", "25th", "26th", "27th", "28th", "29th",
109 public static String formatNth(int nth) {
110 return "the " + englishNthDay[nth];
114 * Sets the time to the beginning of the day (midnight) by clearing the
115 * hour, minute, and second fields.
117 static void setTimeToStartOfDay(Time time) {