Utils.java revision 319052089cab383fed2528946b71b45b7af524da
1/* 2 * Copyright (C) 2006 The Android Open Source Project 3 * 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 7 * 8 * http://www.apache.org/licenses/LICENSE-2.0 9 * 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. 15 */ 16 17package com.android.calendar; 18 19import static android.provider.Calendar.EVENT_BEGIN_TIME; 20import android.content.Context; 21import android.content.Intent; 22import android.content.res.Resources; 23import android.text.format.Time; 24import android.view.animation.AlphaAnimation; 25import android.widget.ViewFlipper; 26 27public class Utils { 28 public static void startActivity(Context context, String className, long time) { 29 Intent intent = new Intent(Intent.ACTION_VIEW); 30 31 intent.setClassName(context, className); 32 intent.putExtra(EVENT_BEGIN_TIME, time); 33 34 context.startActivity(intent); 35 } 36 37 public static final Time timeFromIntent(Intent intent) { 38 Time time = new Time(); 39 time.set(timeFromIntentInMillis(intent)); 40 return time; 41 } 42 43 /** 44 * If the given intent specifies a time (in milliseconds since the epoch), 45 * then that time is returned. Otherwise, the current time is returned. 46 */ 47 public static final long timeFromIntentInMillis(Intent intent) { 48 // If the time was specified, then use that. Otherwise, use the current time. 49 long millis = intent.getLongExtra(EVENT_BEGIN_TIME, -1); 50 if (millis == -1) { 51 millis = System.currentTimeMillis(); 52 } 53 return millis; 54 } 55 56 public static final void applyAlphaAnimation(ViewFlipper v) { 57 AlphaAnimation in = new AlphaAnimation(0.0f, 1.0f); 58 59 in.setStartOffset(0); 60 in.setDuration(500); 61 62 AlphaAnimation out = new AlphaAnimation(1.0f, 0.0f); 63 64 out.setStartOffset(0); 65 out.setDuration(500); 66 67 v.setInAnimation(in); 68 v.setOutAnimation(out); 69 } 70 71 /** 72 * Formats the given Time object so that it gives the month and year 73 * (for example, "September 2007"). 74 * 75 * @param time the time to format 76 * @return the string containing the weekday and the date 77 */ 78 public static String formatMonthYear(Time time) { 79 Resources res = Resources.getSystem(); 80 return time.format(res.getString(com.android.internal.R.string.month_year)); 81 } 82 83 // TODO: replace this with the correct i18n way to do this 84 public static final String englishNthDay[] = { 85 "", "1st", "2nd", "3rd", "4th", "5th", "6th", "7th", "8th", "9th", 86 "10th", "11th", "12th", "13th", "14th", "15th", "16th", "17th", "18th", "19th", 87 "20th", "21st", "22nd", "23rd", "24th", "25th", "26th", "27th", "28th", "29th", 88 "30th", "31st" 89 }; 90 91 public static String formatNth(int nth) { 92 return "the " + englishNthDay[nth]; 93 } 94 95 /** 96 * Sets the time to the beginning of the day (midnight) by clearing the 97 * hour, minute, and second fields. 98 */ 99 static void setTimeToStartOfDay(Time time) { 100 time.second = 0; 101 time.minute = 0; 102 time.hour = 0; 103 } 104} 105