Code drop from //branches/cupcake/...@124589
The Android Open Source Project [Thu, 18 Dec 2008 02:05:53 +0000 (18:05 -0800)]
63 files changed:
Android.mk
AndroidManifest.xml
res/drawable/angenda_item.xml [deleted file]
res/drawable/app_calendar.png [deleted file]
res/drawable/ic_statusbar_calendar.png [deleted file]
res/drawable/line.xml [deleted file]
res/drawable/panel_section_divider.9.png [deleted file]
res/drawable/round_rect.xml [deleted file]
res/drawable/section_divider.9.png [deleted file]
res/drawable/title_left_arrow.png [deleted file]
res/drawable/title_right_arrow.png [deleted file]
res/layout/agenda_item.xml
res/layout/alert_activity.xml
res/layout/alert_item.xml
res/layout/alert_toast.xml
res/layout/bubble_event.xml
res/layout/calendar_item.xml
res/layout/calendars_dropdown_item.xml
res/layout/edit_event.xml
res/layout/event_activity.xml [deleted file]
res/layout/ics_import_activity.xml
res/layout/month_activity.xml
res/layout/month_bubble.xml
res/layout/status_bar_event.xml [deleted file]
res/layout/view_reminder_item.xml [deleted file]
res/values-cs/strings.xml [deleted file]
res/values-de-rDE/strings.xml [deleted file]
res/values-de/arrays.xml [new file with mode: 0644]
res/values-de/strings.xml [new file with mode: 0644]
res/values-en-rGB/strings.xml
res/values-es-rUS/strings.xml [deleted file]
res/values-fr-rFR/strings.xml [deleted file]
res/values-it-rIT/strings.xml [deleted file]
res/values-ja/arrays.xml [new file with mode: 0644]
res/values-ja/strings.xml [new file with mode: 0644]
res/values-nl-rNL/strings.xml [deleted file]
res/values-zh-rTW/strings.xml [deleted file]
res/values/arrays.xml
res/values/colors.xml
res/values/strings.xml
res/values/styles.xml
src/com/android/calendar/AgendaActivity.java
src/com/android/calendar/AgendaAdapter.java
src/com/android/calendar/AgendaByDayAdapter.java
src/com/android/calendar/AlertActivity.java
src/com/android/calendar/AlertAdapter.java
src/com/android/calendar/AlertService.java
src/com/android/calendar/CalendarActivity.java
src/com/android/calendar/CalendarView.java
src/com/android/calendar/DateSpinner.java
src/com/android/calendar/DeleteEventHelper.java
src/com/android/calendar/EditEvent.java
src/com/android/calendar/Event.java
src/com/android/calendar/EventInfoActivity.java
src/com/android/calendar/LaunchActivity.java
src/com/android/calendar/MenuHelper.java
src/com/android/calendar/MonthActivity.java
src/com/android/calendar/MonthView.java
src/com/android/calendar/Navigator.java
src/com/android/calendar/SelectCalendarsActivity.java
src/com/android/calendar/Utils.java
tests/src/com/android/calendar/FormatDateRangeTest.java
tests/src/com/android/calendar/WeekNumberTest.java

index 06ac103..68ea41f 100644 (file)
@@ -3,12 +3,14 @@ include $(CLEAR_VARS)
 
 LOCAL_MODULE_TAGS := user
 
-LOCAL_SRC_FILES := $(call all-subdir-java-files)
+LOCAL_SRC_FILES := $(call all-java-files-under,src)
 
 # TODO: Remove dependency of application on the test runner (android.test.runner) 
 # library.
 LOCAL_JAVA_LIBRARIES := android.test.runner
 
+LOCAL_STATIC_JAVA_LIBRARIES := googlelogin-client
+
 LOCAL_PACKAGE_NAME := Calendar
 
 include $(BUILD_PACKAGE)
index 3b0a141..2a260d8 100644 (file)
@@ -26,6 +26,7 @@
     <uses-permission android:name="android.permission.READ_CALENDAR" />
     <uses-permission android:name="android.permission.WRITE_CALENDAR" />
     <uses-permission android:name="android.permission.WAKE_LOCK" />
+    <uses-permission android:name="com.google.android.googleapps.permission.GOOGLE_AUTH.mail" />
 
     <application android:name="CalendarApplication"
             android:label="@string/app_label" android:icon="@drawable/app_icon"
diff --git a/res/drawable/angenda_item.xml b/res/drawable/angenda_item.xml
deleted file mode 100644 (file)
index e63e41c..0000000
+++ /dev/null
@@ -1,22 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!-- Copyright (C) 2008 The Android Open Source Project
-
-     Licensed under the Apache License, Version 2.0 (the "License");
-     you may not use this file except in compliance with the License.
-     You may obtain a copy of the License at
-  
-          http://www.apache.org/licenses/LICENSE-2.0
-  
-     Unless required by applicable law or agreed to in writing, software
-     distributed under the License is distributed on an "AS IS" BASIS,
-     WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-     See the License for the specific language governing permissions and
-     limitations under the License.
--->
-
-<shape xmlns:android="http://schemas.android.com/apk/res/android" 
-    android:shape="rectangle">
-    
-    <corners android:radius="8dip"/>
-    <solid android:color="#ffffffff"/>
-</shape>
diff --git a/res/drawable/app_calendar.png b/res/drawable/app_calendar.png
deleted file mode 100644 (file)
index 5e07a15..0000000
Binary files a/res/drawable/app_calendar.png and /dev/null differ
diff --git a/res/drawable/ic_statusbar_calendar.png b/res/drawable/ic_statusbar_calendar.png
deleted file mode 100644 (file)
index 9539623..0000000
Binary files a/res/drawable/ic_statusbar_calendar.png and /dev/null differ
diff --git a/res/drawable/line.xml b/res/drawable/line.xml
deleted file mode 100644 (file)
index 9ffd504..0000000
+++ /dev/null
@@ -1,23 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--
-/*
-** Copyright 2006, The Android Open Source Project
-**
-** Licensed under the Apache License, Version 2.0 (the "License"); 
-** you may not use this file except in compliance with the License. 
-** You may obtain a copy of the License at 
-**
-**     http://www.apache.org/licenses/LICENSE-2.0 
-**
-** Unless required by applicable law or agreed to in writing, software 
-** distributed under the License is distributed on an "AS IS" BASIS, 
-** WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 
-** See the License for the specific language governing permissions and 
-** limitations under the License.
-*/
--->
-<shape xmlns:android="http://schemas.android.com/apk/res/android" type="line">
-    <stroke android:width="1dp" android:color="#ff000000" />
-    <padding android:left="0dp" android:top="1dp"
-            android:right="0dp" android:bottom="1dp" />
-</shape>
diff --git a/res/drawable/panel_section_divider.9.png b/res/drawable/panel_section_divider.9.png
deleted file mode 100644 (file)
index 46098ae..0000000
Binary files a/res/drawable/panel_section_divider.9.png and /dev/null differ
diff --git a/res/drawable/round_rect.xml b/res/drawable/round_rect.xml
deleted file mode 100644 (file)
index 37c9237..0000000
+++ /dev/null
@@ -1,23 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!-- Copyright (C) 2007 The Android Open Source Project
-
-     Licensed under the Apache License, Version 2.0 (the "License");
-     you may not use this file except in compliance with the License.
-     You may obtain a copy of the License at
-  
-          http://www.apache.org/licenses/LICENSE-2.0
-  
-     Unless required by applicable law or agreed to in writing, software
-     distributed under the License is distributed on an "AS IS" BASIS,
-     WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-     See the License for the specific language governing permissions and
-     limitations under the License.
--->
-
-<shape xmlns:android="http://schemas.android.com/apk/res/android" type="rectangle">
-    <solid android:color="#00000000"/>
-    <stroke android:width="1dp" android:color="#ff5782c3" />
-    <padding android:left="7dp" android:top="7dp"
-            android:right="7dp" android:bottom="7dp" />
-    <corners android:radius="8dp" />
-</shape>
diff --git a/res/drawable/section_divider.9.png b/res/drawable/section_divider.9.png
deleted file mode 100644 (file)
index 46098ae..0000000
Binary files a/res/drawable/section_divider.9.png and /dev/null differ
diff --git a/res/drawable/title_left_arrow.png b/res/drawable/title_left_arrow.png
deleted file mode 100644 (file)
index 5734b8a..0000000
Binary files a/res/drawable/title_left_arrow.png and /dev/null differ
diff --git a/res/drawable/title_right_arrow.png b/res/drawable/title_right_arrow.png
deleted file mode 100644 (file)
index 402051a..0000000
Binary files a/res/drawable/title_right_arrow.png and /dev/null differ
index 76386ba..1e9bbb1 100644 (file)
@@ -44,7 +44,7 @@
             android:layout_width="fill_parent"
             android:layout_height="wrap_content"
             android:textStyle="bold"
-            android:textColor="@color/black"
+            android:textColor="@android:color/black"
             style="?android:attr/textAppearanceMediumInverse"
         />
         
@@ -63,7 +63,7 @@
                     android:layout_width="wrap_content"
                     android:layout_height="wrap_content"
                     android:textStyle="bold"
-                    android:textColor="@color/black"
+                    android:textColor="@android:color/black"
                     style="?android:attr/textAppearanceSmallInverse"
                 />
                 
@@ -88,7 +88,7 @@
             android:layout_width="fill_parent"
             android:layout_height="wrap_content"
             android:textStyle="bold"
-            android:textColor="@color/black"
+            android:textColor="@android:color/black"
             style="?android:attr/textAppearanceSmallInverse"
         />
     </LinearLayout>
index ba0074f..bce77d1 100644 (file)
@@ -27,7 +27,7 @@
         android:listSelector="@android:color/transparent"
         android:divider="@null" />
     
-    <LinearLayout android:id="@+id/button_container"
+    <LinearLayout
         android:orientation="horizontal"
         android:layout_width="fill_parent"
         android:layout_height="wrap_content"
index 3f389bd..9e76405 100644 (file)
@@ -28,7 +28,7 @@
         android:layout_marginRight="5dip"
         android:background="@drawable/box_color_white" />
         
-    <LinearLayout android:id="@+id/alert_content"
+    <LinearLayout
         android:orientation="vertical"
         android:layout_width="fill_parent"
         android:layout_height="wrap_content">
@@ -43,7 +43,7 @@
                 android:layout_height="wrap_content"
                 android:layout_gravity="center"
                 android:textStyle="bold"
-                android:textColor="@color/black"
+                android:textColor="@android:color/black"
                 style="?android:attr/textAppearanceMediumInverse" />
         </LinearLayout>
         
index 17b1808..3187ca7 100644 (file)
 -->
 
 <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
-    android:id="@+id/event"
     android:orientation="vertical"
     android:layout_width="wrap_content"
     android:layout_height="wrap_content"
     android:background="@android:drawable/toast_frame">
     
-    <LinearLayout android:id="@+id/event_title_container"
+    <LinearLayout
         android:orientation="horizontal"
         android:layout_width="fill_parent"
         android:layout_height="wrap_content"
             style="@style/TextAppearance.Alert_Title" />
     </LinearLayout>
     
-    <ImageView android:id="@+id/title_separator"
+    <ImageView
         android:layout_width="fill_parent"
         android:layout_height="wrap_content"
         android:background="@android:drawable/divider_horizontal_dark" />
     
-    <LinearLayout android:id="@+id/event_details"
+    <LinearLayout
         android:orientation="vertical"
         android:layout_width="fill_parent"
         android:layout_height="wrap_content"
         android:padding="10dip">
         
-        <LinearLayout android:id="@+id/when_container"
+        <LinearLayout
             android:orientation="horizontal"
             android:layout_width="fill_parent"
             android:layout_height="wrap_content">
@@ -70,7 +69,7 @@
                 style="@style/TextAppearance.Alert_Value" />
         </LinearLayout>
         
-        <LinearLayout android:id="@+id/where_container"
+        <LinearLayout
             android:orientation="horizontal"
             android:layout_width="fill_parent"
             android:layout_height="wrap_content">
index 0c273c6..71d9e7f 100644 (file)
@@ -24,7 +24,7 @@
         
     <TextView android:id="@+id/event_title"
         android:textStyle="bold"
-        android:textColor="@drawable/panel_text_foreground"
+        android:textColor="@color/panel_text_foreground"
         android:layout_width="fill_parent"
         android:layout_height="wrap_content" />
 
         />
 
         <TextView android:id="@+id/time"
-            android:textColor="@drawable/panel_text_foreground"
+            android:textColor="@color/panel_text_foreground"
             android:layout_width="fill_parent"
             android:layout_height="wrap_content" />
 
     </LinearLayout>
 
     <TextView android:id="@+id/where"
-        android:textColor="@drawable/panel_text_foreground"
+        android:textColor="@color/panel_text_foreground"
         android:layout_width="fill_parent"
         android:layout_height="wrap_content" />
 </LinearLayout>
index 2fce8c8..9d3ba39 100644 (file)
@@ -33,7 +33,6 @@
     />
 
     <TextView android:id="@+id/calendar"
-        android:text="@string/calendar_item_calendar_text"
         android:layout_width="wrap_content"
         android:layout_height="wrap_content"
         style="?android:attr/textAppearanceLarge"
index 5b6bbd6..1335999 100644 (file)
@@ -19,7 +19,7 @@
     android:layout_height="wrap_content"
     android:layout_width="fill_parent">
 
-    <ImageView android:id="@+id/right_arrow"
+    <ImageView
            android:layout_width="wrap_content"
            android:layout_height="fill_parent"
            android:src="@drawable/calendars_item"/>
index 3252b9b..5d222f4 100644 (file)
@@ -25,7 +25,7 @@
         android:layout_height="fill_parent">
         
         <!-- WHAT -->
-        <LinearLayout android:id="@+id/what_container"
+        <LinearLayout
             android:orientation="vertical"
             android:layout_width="fill_parent"
             android:layout_height="wrap_content"
@@ -45,7 +45,7 @@
         </LinearLayout>
         
         <!-- WHEN -->
-        <View android:id="@+id/when_separator"
+        <View
             android:layout_width="fill_parent"
             android:layout_height="1dip"
             android:background="@android:drawable/divider_horizontal_dark"
         </LinearLayout>
 
         <!-- WHERE -->
-        <View android:id="@+id/where_separator"
+        <View
             android:layout_width="fill_parent"
             android:layout_height="1dip"
             android:background="@android:drawable/divider_horizontal_dark"
             android:layout_height="wrap_content"
             android:padding="5dip">
             
-            <TextView android:id="@+id/location_label"
+            <TextView
                 android:layout_width="wrap_content"
                 android:layout_height="wrap_content"
                 android:text="@string/where_label"
         </LinearLayout>
 
         <!-- DESCRIPTION -->
-        <View android:id="@+id/description_separator"
+        <View
             android:layout_width="fill_parent"
             android:layout_height="1dip"
             android:background="@android:drawable/divider_horizontal_dark"
         />
         
-        <LinearLayout android:id="@+id/description_container"
+        <LinearLayout
             android:orientation="vertical"
             android:layout_width="fill_parent"
             android:layout_height="wrap_content"
             android:background="@android:drawable/divider_horizontal_dark"
         />
         
-        <LinearLayout android:id="@+id/calendars_container"
+        <LinearLayout
             android:orientation="vertical"
             android:layout_width="fill_parent"
             android:layout_height="wrap_content"
     
             <Spinner android:id="@+id/calendars"
                 android:layout_width="fill_parent"
-                android:layout_height="wrap_content"
-                android:text="@string/repeats_label"/>
+                android:layout_height="wrap_content" />
         </LinearLayout>
         
         <!-- REMINDERS -->
         </LinearLayout>
         
         <!-- REPEATS -->
-        <View android:id="@+id/repeats_separator"
+        <View
             android:layout_width="fill_parent"
             android:layout_height="1dip"
             android:background="@android:drawable/divider_horizontal_dark"
         />
         
-        <LinearLayout android:id="@+id/repeats_container"
+        <LinearLayout
             android:orientation="vertical"
             android:layout_width="fill_parent"
             android:layout_height="wrap_content"
             android:visibility="gone">
             
             <!-- PRESENCE -->
-            <View android:id="@+id/presense_separator"
+            <View
                 android:layout_width="fill_parent"
                 android:layout_height="1dip"
                 android:background="@android:drawable/divider_horizontal_dark"
             />
             
-            <LinearLayout android:id="@+id/presence_container"
+            <LinearLayout
                 android:orientation="vertical"
                 android:layout_width="fill_parent"
                 android:layout_height="wrap_content"
             </LinearLayout>
     
             <!-- PRIVACY -->
-            <View android:id="@+id/privacy_separator"
+            <View
                 android:layout_width="fill_parent"
                 android:layout_height="1dip"
                 android:background="@android:drawable/divider_horizontal_dark"
             />
             
-            <LinearLayout android:id="@+id/privacy_container"
+            <LinearLayout
                 android:orientation="vertical"
                 android:layout_width="fill_parent"
                 android:layout_height="wrap_content"
         </LinearLayout>
         
         <!-- BUTTONS -->
-        <View android:id="@+id/buttons_separator"
+        <View
             android:layout_width="fill_parent"
             android:layout_height="1dip"
             android:background="@android:drawable/divider_horizontal_dark"
         />
         
-        <LinearLayout android:id="@+id/buttons"
+        <LinearLayout
             android:orientation="horizontal"
             android:layout_width="fill_parent"
             android:layout_height="wrap_content"
diff --git a/res/layout/event_activity.xml b/res/layout/event_activity.xml
deleted file mode 100644 (file)
index 08b6102..0000000
+++ /dev/null
@@ -1,433 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!-- Copyright (C) 2006 The Android Open Source Project
-
-     Licensed under the Apache License, Version 2.0 (the "License");
-     you may not use this file except in compliance with the License.
-     You may obtain a copy of the License at
-  
-          http://www.apache.org/licenses/LICENSE-2.0
-  
-     Unless required by applicable law or agreed to in writing, software
-     distributed under the License is distributed on an "AS IS" BASIS,
-     WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-     See the License for the specific language governing permissions and
-     limitations under the License.
--->
-
-<ScrollView xmlns:android="http://schemas.android.com/apk/res/android"
-    android:id="@+id/scroll_view"
-    android:layout_width="fill_parent"
-    android:layout_height="fill_parent"
-    android:background="@drawable/event_background" >
-
-    <LinearLayout android:id="@+id/event"
-        android:orientation="vertical"
-        android:paddingLeft="15dip"
-        android:paddingRight="3dip"
-        android:paddingTop="3dip"
-        android:paddingBottom="15dip"
-        android:layout_width="fill_parent"
-        android:layout_height="fill_parent">
-
-        <TableLayout
-            android:layout_width="fill_parent"
-            android:layout_height="wrap_content"
-            android:shrinkColumns="1">
-
-            <TableRow>
-                <TextView android:id="@+id/what_label"
-                    android:text="@string/what_label"
-                    android:gravity="right|top"
-                    android:textStyle="bold"
-                    android:paddingRight="10dip"
-                    android:layout_width="wrap_content"
-                    android:layout_height="wrap_content" />
-
-                <EditText android:id="@+id/event_title"
-                    android:layout_width="fill_parent"
-                    android:layout_height="wrap_content" />
-            </TableRow>
-
-            <ImageView android:id="@+id/what_divider" android:scaleType="fitXY"
-                android:src="@drawable/section_divider"
-                android:layout_marginTop="4dip"
-                android:layout_marginBottom="4dip"
-                android:layout_width="fill_parent"
-                android:layout_height="wrap_content" />
-
-            <TableRow>
-                <TextView android:id="@+id/when_label"
-                    android:text="@string/when_label"
-                    android:gravity="right|top"
-                    android:textStyle="bold"
-                    android:paddingRight="10dip"
-                    android:layout_width="wrap_content"
-                    android:layout_height="wrap_content" />
-
-                <CheckBox android:id="@+id/all_day"
-                    android:layout_width="wrap_content"
-                    android:layout_height="wrap_content"
-                    android:text="@string/all_day_event" />
-            </TableRow>
-
-            <TableRow>
-                <TextView android:id="@+id/from_label"
-                    android:text="@string/from_label"
-                    android:textColor="@drawable/label_foreground"
-                    android:gravity="right|top"
-                    android:paddingRight="10dip"
-                    android:layout_width="wrap_content"
-                    android:layout_height="wrap_content" />
-
-                <com.android.calendar.DateSpinner android:id="@+id/start_date_spinner"
-                    android:layout_width="fill_parent"
-                    android:layout_height="wrap_content" />
-            </TableRow>
-
-            <TableRow>
-                <com.android.calendar.TimeSpinner android:id="@+id/start_time_spinner"
-                    android:layout_width="fill_parent"
-                    android:layout_height="wrap_content"
-                    android:layout_column="1" />
-            </TableRow>
-
-            <TableRow>
-                <TextView android:id="@+id/to_label"
-                    android:text="@string/to_label"
-                    android:textColor="@drawable/label_foreground"
-                    android:gravity="right|top"
-                    android:paddingRight="10dip"
-                    android:layout_width="wrap_content"
-                    android:layout_height="wrap_content" />
-
-                <com.android.calendar.TimeSpinner android:id="@+id/end_time_spinner"
-                    android:layout_width="fill_parent"
-                    android:layout_height="wrap_content" />
-            </TableRow>
-
-            <TableRow>
-                <TextView android:id="@+id/to_date_label"
-                    android:text="@string/to_label"
-                    android:textColor="@drawable/label_foreground"
-                    android:gravity="right|top"
-                    android:paddingRight="10dip"
-                    android:layout_width="wrap_content"
-                    android:layout_height="wrap_content" />
-
-                <com.android.calendar.DateSpinner android:id="@+id/end_date_spinner"
-                    android:layout_width="fill_parent"
-                    android:layout_height="wrap_content" />
-            </TableRow>
-
-            <ImageView android:id="@+id/when_divider" android:scaleType="fitXY"
-                android:src="@drawable/section_divider"
-                android:layout_marginTop="4dip"
-                android:layout_marginBottom="4dip"
-                android:layout_width="fill_parent"
-                android:layout_height="wrap_content" />
-
-            <TableRow android:id="@+id/where_row">
-                <TextView android:id="@+id/where_label"
-                    android:text="@string/where_label"
-                    android:gravity="right|top"
-                    android:textStyle="bold"
-                    android:paddingRight="10dip"
-                    android:layout_width="wrap_content"
-                    android:layout_height="wrap_content" />
-
-                <EditText android:id="@+id/where"
-                    android:layout_width="fill_parent"
-                    android:layout_height="wrap_content" />
-            </TableRow>
-
-            <ImageView android:id="@+id/where_divider" android:scaleType="fitXY"
-                android:src="@drawable/section_divider"
-                android:layout_marginTop="4dip"
-                android:layout_marginBottom="4dip"
-                android:layout_width="fill_parent"
-                android:layout_height="wrap_content" />
-
-            <TableRow>
-                <TextView android:id="@+id/reminder_label"
-                    android:gravity="right|top"
-                    android:textStyle="bold"
-                    android:layout_width="wrap_content"
-                    android:layout_height="wrap_content"
-                    android:paddingRight="10dip"
-                    android:text="@string/reminder" />
-
-                <Spinner android:id="@+id/reminder"
-                    android:layout_width="wrap_content"
-                    android:layout_height="wrap_content"
-                    android:entries="@array/reminder_minutes_labels" />
-            </TableRow>
-
-            <ImageView android:id="@+id/reminder_divider" android:scaleType="fitXY"
-                android:src="@drawable/section_divider"
-                android:layout_marginTop="4dip"
-                android:layout_marginBottom="4dip"
-                android:layout_width="fill_parent"
-                android:layout_height="wrap_content" />
-
-            <TableRow>
-                <ImageView android:id="@+id/calendar_icon"
-                    android:layout_marginTop="4dip"
-                    android:paddingRight="10dip"
-                    android:layout_width="wrap_content"
-                    android:layout_height="wrap_content"
-                    android:src="@drawable/sym_calendar_event" />
-
-                <Spinner android:id="@+id/calendars"
-                    android:layout_width="wrap_content"
-                    android:layout_height="wrap_content" />
-            </TableRow>
-
-            <ImageView android:id="@+id/calendar_divider" android:scaleType="fitXY"
-                android:src="@drawable/section_divider"
-                android:layout_marginTop="4dip"
-                android:layout_marginBottom="4dip"
-                android:layout_width="fill_parent"
-                android:layout_height="wrap_content" />
-
-            <TableRow>
-                <TextView android:id="@+id/repeats_label"
-                    android:text="@string/repeats_label"
-                    android:gravity="right|top"
-                    android:textStyle="bold"
-                    android:paddingRight="10dip"
-                    android:layout_width="wrap_content"
-                    android:layout_height="wrap_content" />
-
-                <Spinner android:id="@+id/repeats"
-                    android:layout_width="fill_parent"
-                    android:layout_height="wrap_content"
-                    android:entries="@array/repeat_strings" />
-            </TableRow>
-
-            <TableRow android:id="@+id/every_row">
-                <TextView android:id="@+id/every_label"
-                    android:text="@string/every_label"
-                    android:gravity="right|top"
-                    android:paddingRight="10dip"
-                    android:layout_width="wrap_content"
-                    android:layout_height="wrap_content" />
-
-                <Spinner android:id="@+id/every"
-                    android:layout_width="fill_parent"
-                    android:layout_height="wrap_content" />
-            </TableRow>
-
-            <TableRow android:id="@+id/on_row">
-                <TextView android:id="@+id/on_label"
-                    android:text="@string/on_label"
-                    android:gravity="right|top"
-                    android:paddingRight="10dip"
-                    android:layout_width="wrap_content"
-                    android:layout_height="wrap_content" />
-
-                <LinearLayout
-                    android:orientation="horizontal"
-                    android:layout_width="fill_parent"
-                    android:layout_height="wrap_content">
-
-                    <LinearLayout
-                        android:orientation="vertical"
-                        android:layout_width="wrap_content"
-                        android:layout_height="wrap_content">
-
-                        <CheckBox android:id="@+id/on_sunday"
-                            android:layout_width="wrap_content"
-                            android:layout_height="wrap_content" />
-
-                        <TextView
-                            android:text="@string/sunday_letter"
-                            android:textStyle="bold"
-                            android:paddingLeft="3dip"
-                            android:layout_width="wrap_content"
-                            android:layout_height="wrap_content" />
-                    </LinearLayout>
-
-                    <LinearLayout
-                        android:orientation="vertical"
-                        android:layout_width="wrap_content"
-                        android:layout_height="wrap_content">
-
-                        <CheckBox android:id="@+id/on_monday"
-                            android:layout_width="wrap_content"
-                            android:layout_height="wrap_content" />
-
-                        <TextView
-                            android:text="@string/monday_letter"
-                            android:textStyle="bold"
-                            android:paddingLeft="3dip"
-                            android:layout_width="wrap_content"
-                            android:layout_height="wrap_content" />
-                    </LinearLayout>
-
-                    <LinearLayout
-                        android:orientation="vertical"
-                        android:layout_width="wrap_content"
-                        android:layout_height="wrap_content">
-
-                        <CheckBox android:id="@+id/on_tuesday"
-                            android:layout_width="wrap_content"
-                            android:layout_height="wrap_content" />
-
-                        <TextView
-                            android:text="@string/tuesday_letter"
-                            android:textStyle="bold"
-                            android:paddingLeft="3dip"
-                            android:layout_width="wrap_content"
-                            android:layout_height="wrap_content" />
-                    </LinearLayout>
-
-                    <LinearLayout
-                        android:orientation="vertical"
-                        android:layout_width="wrap_content"
-                        android:layout_height="wrap_content">
-
-                        <CheckBox android:id="@+id/on_wednesday"
-                            android:layout_width="wrap_content"
-                            android:layout_height="wrap_content" />
-
-                        <TextView
-                            android:text="@string/wednesday_letter"
-                            android:textStyle="bold"
-                            android:paddingLeft="3dip"
-                            android:layout_width="wrap_content"
-                            android:layout_height="wrap_content" />
-                    </LinearLayout>
-
-                    <LinearLayout
-                        android:orientation="vertical"
-                        android:layout_width="wrap_content"
-                        android:layout_height="wrap_content">
-
-                        <CheckBox android:id="@+id/on_thursday"
-                            android:layout_width="wrap_content"
-                            android:layout_height="wrap_content" />
-
-                        <TextView
-                            android:text="@string/thursday_letter"
-                            android:textStyle="bold"
-                            android:paddingLeft="3dip"
-                            android:layout_width="wrap_content"
-                            android:layout_height="wrap_content" />
-                    </LinearLayout>
-
-                    <LinearLayout
-                        android:orientation="vertical"
-                        android:layout_width="wrap_content"
-                        android:layout_height="wrap_content">
-
-                        <CheckBox android:id="@+id/on_friday"
-                            android:layout_width="wrap_content"
-                            android:layout_height="wrap_content" />
-
-                        <TextView
-                            android:text="@string/friday_letter"
-                            android:textStyle="bold"
-                            android:paddingLeft="3dip"
-                            android:layout_width="wrap_content"
-                            android:layout_height="wrap_content" />
-                    </LinearLayout>
-
-                    <LinearLayout
-                        android:orientation="vertical"
-                        android:layout_width="wrap_content"
-                        android:layout_height="wrap_content">
-
-                        <CheckBox android:id="@+id/on_saturday"
-                            android:layout_width="wrap_content"
-                            android:layout_height="wrap_content" />
-
-                        <TextView
-                            android:text="@string/saturday_letter"
-                            android:textStyle="bold"
-                            android:paddingLeft="3dip"
-                            android:layout_width="wrap_content"
-                            android:layout_height="wrap_content" />
-                    </LinearLayout>
-                </LinearLayout>
-            </TableRow>
-
-            <TableRow android:id="@+id/month_row">
-                <TextView
-                    android:text="@string/repeat_on_label"
-                    android:gravity="right|top"
-                    android:paddingRight="10dip"
-                    android:layout_width="wrap_content"
-                    android:layout_height="wrap_content" />
-
-                <RadioGroup android:id="@+id/repeat_on_radio_group"
-                    android:layout_width="fill_parent"
-                    android:layout_height="wrap_content"
-                    android:orientation="vertical">
-
-                    <RadioButton android:id="@+id/day_of_week" />
-                    <RadioButton android:id="@+id/day_of_month" />
-                </RadioGroup>
-            </TableRow>
-
-            <TableRow android:id="@+id/until_row">
-                <LinearLayout
-                    android:orientation="horizontal"
-                    android:gravity="right"
-                    android:layout_width="wrap_content"
-                    android:layout_height="wrap_content">
-
-                    <CheckBox android:id="@+id/until"
-                        android:layout_width="wrap_content"
-                        android:layout_height="wrap_content"
-                        android:text="@string/until" />
-                </LinearLayout>
-
-                <com.android.calendar.DateSpinner android:id="@+id/until_spinner"
-                    android:layout_width="fill_parent"
-                    android:layout_height="wrap_content" />
-            </TableRow>
-
-            <ImageView android:id="@+id/repeats_divider" android:scaleType="fitXY"
-                android:src="@drawable/section_divider"
-                android:layout_marginTop="4dip"
-                android:layout_marginBottom="4dip"
-                android:layout_width="fill_parent"
-                android:layout_height="wrap_content" />
-
-            <TableRow>
-                <TextView android:id="@+id/notes_label"
-                    android:text="@string/notes_label"
-                    android:gravity="right|top"
-                    android:textStyle="bold"
-                    android:paddingRight="10dip"
-                    android:layout_width="wrap_content"
-                    android:layout_height="wrap_content" />
-
-                <EditText android:id="@+id/notes"
-                    android:layout_width="fill_parent"
-                    android:layout_height="wrap_content" />
-            </TableRow>
-
-            <TableRow>
-                <LinearLayout
-                    android:orientation="horizontal"
-                    android:layout_width="fill_parent"
-                    android:layout_height="wrap_content"
-                    android:layout_column="1">
-
-                    <Button android:id="@+id/done"
-                        android:layout_marginTop="8dip"
-                        android:layout_width="wrap_content"
-                        android:layout_height="wrap_content"
-                        android:text="@string/done_label" />
-
-                    <Button android:id="@+id/options"
-                        android:layout_marginTop="8dip"
-                        android:layout_width="wrap_content"
-                        android:layout_height="wrap_content"
-                        android:text="@string/more_options_label" />
-                </LinearLayout>
-            </TableRow>
-        </TableLayout>
-    </LinearLayout>
-</ScrollView>
index 37427fc..f994f1c 100644 (file)
@@ -17,7 +17,7 @@
 <ScrollView xmlns:android="http://schemas.android.com/apk/res/android"
     android:layout_width="fill_parent"
     android:layout_height="fill_parent"
-    android:background="@drawable/event_background" >
+    android:background="@color/event_background" >
 
     <LinearLayout android:id="@+id/import_ics"
         android:orientation="vertical"
@@ -68,7 +68,7 @@
                     android:layout_marginTop="8dip"
                     android:layout_width="wrap_content"
                     android:layout_height="wrap_content"
-                    android:text="@string/cancel_label" />
+                    android:text="@android:string/cancel" />
         </LinearLayout>
     </LinearLayout>
 </ScrollView>
index 3f287ca..f2fd961 100644 (file)
@@ -55,7 +55,7 @@
 
     <LinearLayout android:id="@+id/day_names"
         android:orientation="horizontal"
-        android:background="@drawable/daynames_background"
+        android:background="@color/daynames_background"
         android:layout_width="fill_parent"
         android:layout_height="23dip" >
         
index 6c6c67a..9cd6c5d 100644 (file)
@@ -30,7 +30,7 @@
         <TableRow android:id="@+id/item_layout0">
             <TextView android:id="@+id/time0"
                 android:paddingRight="10dip"
-                android:textColor="@drawable/panel_text_foreground"
+                android:textColor="@color/panel_text_foreground"
                 android:layout_width="fill_parent"
                 android:layout_height="wrap_content" />
 
@@ -38,7 +38,7 @@
                 android:singleLine="true"
                 android:ellipsize="end"
                 android:textStyle="bold"
-                android:textColor="@drawable/panel_text_foreground"
+                android:textColor="@color/panel_text_foreground"
                 android:layout_width="fill_parent"
                 android:layout_height="wrap_content" />
         </TableRow>
@@ -46,7 +46,7 @@
         <TableRow android:id="@+id/item_layout1">
             <TextView android:id="@+id/time1"
                 android:paddingRight="10dip"
-                android:textColor="@drawable/panel_text_foreground"
+                android:textColor="@color/panel_text_foreground"
                 android:layout_width="fill_parent"
                 android:layout_height="wrap_content" />
 
@@ -54,7 +54,7 @@
                 android:singleLine="true"
                 android:ellipsize="end"
                 android:textStyle="bold"
-                android:textColor="@drawable/panel_text_foreground"
+                android:textColor="@color/panel_text_foreground"
                 android:layout_width="fill_parent"
                 android:layout_height="wrap_content" />
         </TableRow>
@@ -62,7 +62,7 @@
         <TableRow android:id="@+id/item_layout2">
             <TextView android:id="@+id/time2"
                 android:paddingRight="10dip"
-                android:textColor="@drawable/panel_text_foreground"
+                android:textColor="@color/panel_text_foreground"
                 android:layout_width="fill_parent"
                 android:layout_height="wrap_content" />
 
@@ -70,7 +70,7 @@
                 android:singleLine="true"
                 android:ellipsize="end"
                 android:textStyle="bold"
-                android:textColor="@drawable/panel_text_foreground"
+                android:textColor="@color/panel_text_foreground"
                 android:layout_width="fill_parent"
                 android:layout_height="wrap_content" />
         </TableRow>
@@ -78,7 +78,7 @@
         <TableRow android:id="@+id/item_layout3">
             <TextView android:id="@+id/time3"
                 android:paddingRight="10dip"
-                android:textColor="@drawable/panel_text_foreground"
+                android:textColor="@color/panel_text_foreground"
                 android:layout_width="fill_parent"
                 android:layout_height="wrap_content" />
 
@@ -86,7 +86,7 @@
                 android:singleLine="true"
                 android:ellipsize="end"
                 android:textStyle="bold"
-                android:textColor="@drawable/panel_text_foreground"
+                android:textColor="@color/panel_text_foreground"
                 android:layout_width="fill_parent"
                 android:layout_height="wrap_content" />
         </TableRow>
@@ -95,7 +95,7 @@
     <TextView android:id="@+id/plus_more"
         android:singleLine="true"
         android:textStyle="bold"
-        android:textColor="@drawable/panel_text_foreground"
+        android:textColor="@color/panel_text_foreground"
         android:layout_width="fill_parent"
         android:layout_height="wrap_content" />
 </LinearLayout>
diff --git a/res/layout/status_bar_event.xml b/res/layout/status_bar_event.xml
deleted file mode 100644 (file)
index 8eb9b2a..0000000
+++ /dev/null
@@ -1,86 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!-- Copyright (C) 2007 The Android Open Source Project
-
-     Licensed under the Apache License, Version 2.0 (the "License");
-     you may not use this file except in compliance with the License.
-     You may obtain a copy of the License at
-  
-          http://www.apache.org/licenses/LICENSE-2.0
-  
-     Unless required by applicable law or agreed to in writing, software
-     distributed under the License is distributed on an "AS IS" BASIS,
-     WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-     See the License for the specific language governing permissions and
-     limitations under the License.
--->
-
-<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
-    android:id="@+id/event_layout"
-    android:orientation="vertical"
-    android:layout_width="wrap_content"
-    android:layout_height="wrap_content" >
-
-    <TableLayout
-        android:layout_width="fill_parent"
-        android:layout_height="wrap_content"
-        android:shrinkColumns="1">
-
-        <TableRow>
-            <TextView android:id="@+id/what_label"
-                android:text="@string/what_label"
-                android:gravity="right"
-                android:paddingRight="10dip"
-                android:textColor="@drawable/panel_label_foreground"
-                android:layout_width="wrap_content"
-                android:layout_height="wrap_content" />
-
-            <TextView android:id="@+id/event_title" android:autoLink="all"
-                android:textColor="@drawable/panel_text_foreground"
-                android:layout_width="fill_parent"
-                android:layout_height="wrap_content" />
-        </TableRow>
-
-        <TableRow>
-            <TextView android:id="@+id/when_label"
-                android:text="@string/when_label"
-                android:gravity="right"
-                android:paddingRight="10dip"
-                android:textColor="@drawable/panel_label_foreground"
-                android:layout_width="wrap_content"
-                android:layout_height="wrap_content" />
-
-            <LinearLayout
-                android:orientation="vertical"
-                android:layout_width="fill_parent"
-                android:layout_height="wrap_content">
-
-                <TextView android:id="@+id/date"
-                    android:textColor="@drawable/panel_text_foreground"
-                    android:layout_width="fill_parent"
-                    android:layout_height="wrap_content" />
-
-                <TextView android:id="@+id/time"
-                    android:textColor="@drawable/panel_text_foreground"
-                    android:layout_width="fill_parent"
-                    android:layout_height="wrap_content" />
-            </LinearLayout>
-        </TableRow>
-
-        <TableRow>
-            <TextView android:id="@+id/where_label"
-                android:text="@string/where_label"
-                android:gravity="right"
-                android:paddingRight="10dip"
-                android:textColor="@drawable/panel_label_foreground"
-                android:layout_width="wrap_content"
-                android:layout_height="wrap_content" />
-
-            <TextView android:id="@+id/where" android:autoLink="all"
-                android:textColor="@drawable/panel_text_foreground"
-                android:layout_width="fill_parent"
-                android:layout_height="wrap_content" />
-        </TableRow>
-    </TableLayout>
-</LinearLayout>
-
-
diff --git a/res/layout/view_reminder_item.xml b/res/layout/view_reminder_item.xml
deleted file mode 100644 (file)
index 957396c..0000000
+++ /dev/null
@@ -1,36 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!-- Copyright (C) 2008 The Android Open Source Project
-
-     Licensed under the Apache License, Version 2.0 (the "License");
-     you may not use this file except in compliance with the License.
-     You may obtain a copy of the License at
-  
-          http://www.apache.org/licenses/LICENSE-2.0
-  
-     Unless required by applicable law or agreed to in writing, software
-     distributed under the License is distributed on an "AS IS" BASIS,
-     WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-     See the License for the specific language governing permissions and
-     limitations under the License.
--->
-
-<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
-    android:orientation="horizontal"
-    android:layout_width="fill_parent"
-    android:layout_height="wrap_content" >
-    
-    <ImageView android:id="@+id/reminder_icon"
-        android:layout_width="wrap_content"
-        android:layout_height="wrap_content"
-        android:layout_gravity="center"
-        android:src="@drawable/ic_alarm_white"
-        android:focusable="false"
-        android:clickable="false"
-    />
-    
-    <TextView android:id="@+id/reminder"
-        android:layout_width="wrap_content"
-        android:layout_height="wrap_content"
-        style="@style/TextAppearance.EditEvent_Value"
-    />
-</LinearLayout>
diff --git a/res/values-cs/strings.xml b/res/values-cs/strings.xml
deleted file mode 100644 (file)
index 7c0598c..0000000
+++ /dev/null
@@ -1,113 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<resources xmlns:android="http://schemas.android.com/apk/res/android"
-    xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
-  <string name="add_calendars">"Přidat kalendáře"</string>
-  <string name="agenda_view">"Program jednání"</string>
-  <string name="agenda_when_label">Kdy\u2026</string>
-  <string name="agenda_where_label">Kde\u2026</string>
-  <string name="alert_missed_events_multiple">a <xliff:g id="reminder_count">%s</xliff:g> dalších připomenutí</string>
-  <string name="alert_missed_events_single">a <xliff:g id="reminder_count">%s</xliff:g> další připomenutí</string>
-  <string name="alert_when_label">Kdy:</string>
-  <string name="alert_where_label">Kde:</string>
-  <string name="all_day_event">Celodenní událost</string>
-  <string name="app_label">Kalendář</string>
-  <string name="calendars_title">"Kalendáře"</string>
-  <string name="cancel_label">"Storno"</string>
-  <string name="custom">"Vlastní\u2026 (nelze přizpůsobit v zařízení)"</string>
-  <string name="daily">Denně</string>
-  <string name="day_view">"Zobrazení dne"</string>
-  <string name="delete_label">"Odstranit událost"</string>
-  <string name="description_label">Popis</string>
-  <string name="discard_label">Zrušit změny</string>
-  <string name="dismiss_all_label">"Zavřít vše"</string>
-  <string name="dismiss_label">"Zavřít"</string>
-  <string name="does_not_repeat">Neopakovat</string>
-  <string name="done_label">"Hotovo"</string>
-  <string name="edit_event_all_day_label">Celý den</string>
-  <string name="edit_event_calendar_label">Kalendář</string>
-  <string name="edit_event_from_label">Od</string>
-  <string name="edit_event_hide_extra_options">Skrýt doplňkové možnosti</string>
-  <string name="edit_event_show_extra_options">Zobrazit doplňkové možnosti</string>
-  <string name="edit_event_to_label">Do</string>
-  <string name="event_create">"Nová událost"</string>
-  <string name="event_delete">"Odstranit událost"</string>
-  <string name="event_edit">"Upravit událost"</string>
-  <string name="event_edit_title">"Podrobnosti o události"</string>
-  <string name="event_info_title">Zobrazit událost</string>
-  <string name="event_info_title_invite">Pozvánka na schůzku</string>
-  <string name="event_view">"Zobrazit událost"</string>
-  <string name="every_label">"Každý"</string>
-  <string name="every_weekday">"Každý den v týdnu (Po\u2013Pá)"</string>
-  <string name="friday_letter">"Pá"</string>
-  <string name="from_label">Od</string>
-  <string name="goto_today">"Přejít na dnešek"</string>
-  <string name="hint_description">"Popis události"</string>
-  <string name="hint_what">"Název události"</string>
-  <string name="hint_where">"Místo události"</string>
-  <string name="import_label">"Import"</string>
-  <string name="menu_preferences">"Nastavení"</string>
-  <string name="menu_select_calendars">"Správa kalendářů"</string>
-  <string name="modify_all">Změnit všechny události</string>
-  <string name="modify_all_following">Změnit všechny budoucí události</string>
-  <string name="modify_event">Změnit tuto událost</string>
-  <string name="monday_letter">"Po"</string>
-  <string name="month_view">"Zobrazení měsíce"</string>
-  <string name="monthly_on_day">"Měsíčně (<xliff:g id="day_of_month">%s</xliff:g>. den)"</string>
-  <string name="monthly_on_day_count">"Měsíčně (každý <xliff:g id="ordinal_number">%1$s</xliff:g>. <xliff:g id="day_of_week">%2$s</xliff:g>)"</string>
-  <string name="more_options_label">"Další možnosti"</string>
-  <string name="no_title_label">(Předmět nezadán)</string>
-  <string name="notes_label">Poznámky</string>
-  <string name="num_events">"Čís. události"</string>
-  <string name="on_label">"Zapnuto"</string>
-  <string name="plus_N_more">"(plus <xliff:g id="more_count">%d</xliff:g> dalších \u2026)"</string>
-  <string name="preferences_alerts_sound_title">Vyzv. tón</string>
-  <string name="preferences_alerts_title">Nastavení připomenutí</string>
-  <string name="preferences_alerts_type_default">1</string>
-  <string name="preferences_alerts_type_dialog">Nastavit připomenutí</string>
-  <string name="preferences_alerts_type_title">Výstrahy a oznámení\u2026</string>
-  <string name="preferences_alerts_vibrate_title">Vibrace</string>
-  <string name="preferences_default_reminder_default">10</string>
-  <string name="preferences_default_reminder_dialog">Nastavit výchozí připomenutí</string>
-  <string name="preferences_default_reminder_title">Výchozí připomenutí\u2026</string>
-  <string name="preferences_general_title">Obecné nastavení</string>
-  <string name="preferences_hide_declined_title">Skrýt odmítnuté události</string>
-  <string name="preferences_title">"Nastavení"</string>
-  <string name="presence_label">Účast</string>
-  <string name="privacy_label">Utajení</string>
-  <string name="reminder">Připomenutí</string>
-  <string name="reminders_label">Připomenutí</string>
-  <string name="reminders_remove_label">Odebrat</string>
-  <string name="remove_calendars">"Odebrat kalendáře"</string>
-  <string name="repeat_on_label">"Opakovat dne"</string>
-  <string name="repeats_label">Opakování</string>
-  <string name="saturday_letter">"So"</string>
-  <string name="save_label">Uložit</string>
-  <string name="select_calendars_to_sync">"Vyberte kalendáře k synchronizaci"</string>
-  <string name="set_time">"Nastavit čas"</string>
-  <string name="snooze_all_label">"Připomenout vše znovu"</string>
-  <string name="snooze_label">"Připomenout znovu"</string>
-  <string name="sunday_letter">"Ne"</string>
-  <string name="thursday_letter">"Čt"</string>
-  <string name="to_label">do:</string>
-  <string name="tuesday_letter">"Út"</string>
-  <string name="until">"do"</string>
-  <string name="view_event_accept_button">Ano</string>
-  <string name="view_event_accept_label">Účastní se</string>
-  <string name="view_event_calendar_label">Kalendář</string>
-  <string name="view_event_decline_button">Ne</string>
-  <string name="view_event_decline_label">Neúčastní se</string>
-  <string name="view_event_edit">Upravit</string>
-  <string name="view_event_no_response_label">(Bez odpovědi)</string>
-  <string name="view_event_reminders_label">Připomenutí</string>
-  <string name="view_event_response_label">Odpověď</string>
-  <string name="view_event_tentative_button">Možná</string>
-  <string name="view_event_tentative_label">Možná se účastní</string>
-  <string name="view_label">"Zobrazit"</string>
-  <string name="wednesday_letter">"St"</string>
-  <string name="week_view">"Zobrazení týdne"</string>
-  <string name="weekly">"Týdně (každý <xliff:g id="days_of_week">%s</xliff:g>)"</string>
-  <string name="what_label">Co</string>
-  <string name="when_label">Kdy</string>
-  <string name="where_label">Kde</string>
-  <string name="yearly">"Ročně (dne <xliff:g id="dates">%s</xliff:g>)"</string>
-</resources>
diff --git a/res/values-de-rDE/strings.xml b/res/values-de-rDE/strings.xml
deleted file mode 100644 (file)
index a58ee07..0000000
+++ /dev/null
@@ -1,124 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<resources xmlns:android="http://schemas.android.com/apk/res/android"
-    xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
-  <string name="add_calendars">"Kalender hinzufügen"</string>
-  <string name="add_new_reminder">Erinnerung hinzufügen</string>
-  <string name="agenda_today">Heute</string>
-  <string name="agenda_view">"Tagesordnung"</string>
-  <string name="agenda_when_label">Wann</string>
-  <string name="agenda_where_label">Wo</string>
-  <string name="alert_missed_events_multiple">(<xliff:g id="reminder_count">%s</xliff:g> weitere Erinnerungen)</string>
-  <string name="alert_missed_events_single">(<xliff:g id="reminder_count">%s</xliff:g> weitere Erinnerung)</string>
-  <string name="alert_when_label">Wann:</string>
-  <string name="alert_where_label">Wo:</string>
-  <string name="all_day_event">Ganztägiges Ereignis</string>
-  <string name="app_label">Kalender</string>
-  <string name="calendars_title">"Eigene Kalender"</string>
-  <string name="cancel_label">"Abbrechen"</string>
-  <string name="custom">"Benutzerdefiniert\u2026 (Benutzerdefinierung auf Telefon nicht möglich)"</string>
-  <string name="daily">Täglich</string>
-  <string name="day_view">"Tag"</string>
-  <string name="delete_event_label">"Ereignis löschen"</string>
-  <string name="delete_label">"Löschen"</string>
-  <string name="delete_this_event_title">Dieses Ereignis wird gelöscht.</string>
-  <string name="delete_title">Löschen</string>
-  <string name="description_label">Beschreibung</string>
-  <string name="discard_label">Änderungen verwerfen</string>
-  <string name="dismiss_all_label">"Alle schließen"</string>
-  <string name="dismiss_label">"Schließen"</string>
-  <string name="does_not_repeat">Wird nicht wiederholt</string>
-  <string name="done_label">"Fertig"</string>
-  <string name="edit_event_all_day_label">Ganztägig</string>
-  <string name="edit_event_calendar_label">Kalender</string>
-  <string name="edit_event_from_label">Von</string>
-  <string name="edit_event_hide_extra_options">Zusätzliche Optionen ausblenden</string>
-  <string name="edit_event_label">"Ereignis bearbeiten"</string>
-  <string name="edit_event_show_extra_options">Zusätzliche Optionen anzeigen</string>
-  <string name="edit_event_to_label">An</string>
-  <string name="event_create">"Neues Ereignis"</string>
-  <string name="event_delete">"Ereignis löschen"</string>
-  <string name="event_edit">"Ereignis bearbeiten"</string>
-  <string name="event_edit_title">"Ereignisdetails"</string>
-  <string name="event_info_title">Ereignis anzeigen</string>
-  <string name="event_info_title_invite">Besprechungseinladung</string>
-  <string name="event_view">"Ereignis anzeigen"</string>
-  <string name="every_label">"Alle"</string>
-  <string name="every_weekday">"Jeden Wochentag (Mon\u2013Fre)"</string>
-  <string name="friday_letter">"F"</string>
-  <string name="from_label">Von</string>
-  <string name="goto_today">"Heute"</string>
-  <string name="hint_description">"Ereignisbeschreibung"</string>
-  <string name="hint_what">"Ereignisname"</string>
-  <string name="hint_where">"Ereignisort"</string>
-  <string name="import_label">"Importieren"</string>
-  <string name="menu_preferences">"Einstellungen"</string>
-  <string name="menu_select_calendars">"Eigene Kalender"</string>
-  <string name="modify_all">Alle Ereignisse in der Serie ändern.</string>
-  <string name="modify_all_following">Dieses und alle zukünftigen Ereignisse ändern.</string>
-  <string name="modify_event">Nur dieses Ereignis ändern.</string>
-  <string name="monday_letter">"M"</string>
-  <string name="month_view">"Monat"</string>
-  <string name="monthly_on_day">"Monatlich (am Tag <xliff:g id="day_of_month">%s</xliff:g>)"</string>
-  <string name="monthly_on_day_count">"Monatlich (jeden <xliff:g id="ordinal_number">%1$s</xliff:g> <xliff:g id="day_of_week">%2$s</xliff:g>)"</string>
-  <string name="more_options_label">"Weitere Optionen"</string>
-  <string name="no_calendars">Warten auf Synchronsierung</string>
-  <string name="no_calendars_msg">Ihre Ereignisse werden in Kürze erscheinen.</string>
-  <string name="no_title_label">(Kein Betreff)</string>
-  <string name="notes_label">Notizen</string>
-  <string name="num_events">"Anzahl Ereignisse"</string>
-  <string name="ok_label">"OK"</string>
-  <string name="on_label">"Ein"</string>
-  <string name="plus_N_more">"(plus <xliff:g id="more_count">%d</xliff:g> mehr \u2026)"</string>
-  <string name="preferences_alerts_ringtone_title">Klingelton auswählen</string>
-  <string name="preferences_alerts_sound_title">Sound</string>
-  <string name="preferences_alerts_title">Erinnerungseinstellungen</string>
-  <string name="preferences_alerts_type_default">1</string>
-  <string name="preferences_alerts_type_dialog">Erinnerung einstellen</string>
-  <string name="preferences_alerts_type_title">Warnhinweise &amp; Benachrichtigungen einstellen</string>
-  <string name="preferences_alerts_vibrate_title">Vibrieren</string>
-  <string name="preferences_default_reminder_default">10</string>
-  <string name="preferences_default_reminder_dialog">Standarderinnerung einstellen</string>
-  <string name="preferences_default_reminder_title">Standarderinnerung einstellen</string>
-  <string name="preferences_general_title">Kalenderansicht-Einstellung</string>
-  <string name="preferences_hide_declined_title">Abgelehnte Ereignisse ausblenden</string>
-  <string name="preferences_title">"Einstellungen"</string>
-  <string name="presence_label">Anwesenheit</string>
-  <string name="privacy_label">Datenschutz</string>
-  <string name="reminder">Erinnerung</string>
-  <string name="reminders_label">Erinnerungen</string>
-  <string name="reminders_remove_label">Entfernen</string>
-  <string name="remove_calendars">"Kalender entfernen"</string>
-  <string name="repeat_on_label">"Wiederholen ein"</string>
-  <string name="repeats_label">Wiederholt</string>
-  <string name="saturday_letter">"S"</string>
-  <string name="save_label">Speichern</string>
-  <string name="select_calendars_to_sync">"Kalender für Synchr. auswählen"</string>
-  <string name="set_time">"Uhrzeit einstellen"</string>
-  <string name="snooze_all_label">"An alle erinnern"</string>
-  <string name="snooze_label">"Erinnern"</string>
-  <string name="sunday_letter">"S"</string>
-  <string name="thursday_letter">"D"</string>
-  <string name="to_label">bis</string>
-  <string name="tuesday_letter">"D"</string>
-  <string name="until">"Bis"</string>
-  <string name="view_event_accept_button">Ja</string>
-  <string name="view_event_accept_label">Nimmt teil</string>
-  <string name="view_event_calendar_label">Kalender</string>
-  <string name="view_event_decline_button">Nein</string>
-  <string name="view_event_decline_label">Nimmt nicht teil</string>
-  <string name="view_event_edit">Bearbeiten</string>
-  <string name="view_event_no_response_label">(Keine Antwort)</string>
-  <string name="view_event_reminders_label">Erinnern an</string>
-  <string name="view_event_response_label">Teilnehmend?</string>
-  <string name="view_event_tentative_button">Eventuell</string>
-  <string name="view_event_tentative_label">Eventuelle Teilnahme</string>
-  <string name="view_event_timezone_label">Lokale Zeitzone</string>
-  <string name="view_label">"Ansicht"</string>
-  <string name="wednesday_letter">"M"</string>
-  <string name="week_view">"Woche"</string>
-  <string name="weekly">"Wöchentlich (alle <xliff:g id="days_of_week">%s</xliff:g>)"</string>
-  <string name="what_label">Was</string>
-  <string name="when_label">Wann</string>
-  <string name="where_label">Wo</string>
-  <string name="yearly">"Jährlich (am <xliff:g id="dates">%s</xliff:g>)"</string>
-</resources>
diff --git a/res/values-de/arrays.xml b/res/values-de/arrays.xml
new file mode 100644 (file)
index 0000000..4c71b5a
--- /dev/null
@@ -0,0 +1,121 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<resources xmlns:android="http://schemas.android.com/apk/res/android"
+    xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+  <string-array name="reminder_minutes_labels">
+    <item>"5 Minuten"</item>
+    <item>"10 Minuten"</item>
+    <item>"15 Minuten"</item>
+    <item>"20 Minuten"</item>
+    <item>"25 Minuten"</item>
+    <item>"30 Minuten"</item>
+    <item>"45 Minuten"</item>
+    <item>"1 Stunde"</item>
+    <item>"2 Stunden"</item>
+    <item>"3 Stunden"</item>
+    <item>"12 Stunden"</item>
+    <item>"24 Stunden"</item>
+    <item>"2 Tage"</item>
+    <item>"1 Woche"</item>
+  </string-array>
+  <string-array name="reminder_minutes_values">
+    <item>"5"</item>
+    <item>"10"</item>
+    <item>"15"</item>
+    <item>"20"</item>
+    <item>"25"</item>
+    <item>"30"</item>
+    <item>"45"</item>
+    <item>"60"</item>
+    <item>"120"</item>
+    <item>"180"</item>
+    <item>"720"</item>
+    <item>"1440"</item>
+    <item>"2880"</item>
+    <item>"10080"</item>
+  </string-array>
+  <string-array name="preferences_default_reminder_labels">
+    <item>"Keine"</item>
+    <item>"5 Minuten"</item>
+    <item>"10 Minuten"</item>
+    <item>"15 Minuten"</item>
+    <item>"20 Minuten"</item>
+    <item>"25 Minuten"</item>
+    <item>"30 Minuten"</item>
+    <item>"45 Minuten"</item>
+    <item>"1 Stunde"</item>
+    <item>"2 Stunden"</item>
+    <item>"3 Stunden"</item>
+    <item>"12 Stunden"</item>
+    <item>"24 Stunden"</item>
+    <item>"2 Tage"</item>
+    <item>"1 Woche"</item>
+  </string-array>
+  <string-array name="preferences_default_reminder_values">
+    <item>"0"</item>
+    <item>"5"</item>
+    <item>"10"</item>
+    <item>"15"</item>
+    <item>"20"</item>
+    <item>"25"</item>
+    <item>"30"</item>
+    <item>"45"</item>
+    <item>"60"</item>
+    <item>"120"</item>
+    <item>"180"</item>
+    <item>"720"</item>
+    <item>"1440"</item>
+    <item>"2880"</item>
+    <item>"10080"</item>
+  </string-array>
+  <string-array name="preferences_alert_type_labels">
+    <item>"Benachrichtigung"</item>
+    <item>"Statuszeilenbenachrichtigung"</item>
+    <item>"Aus"</item>
+  </string-array>
+  <string-array name="preferences_alert_type_values">
+    <item>"0"</item>
+    <item>"1"</item>
+    <item>"2"</item>
+  </string-array>
+    <!-- no translation found for availability:0 (454869065893453189) -->
+    <!-- no translation found for availability:1 (6228387173725732140) -->
+  <string-array name="visibility">
+    <item>"Standard"</item>
+    <item>"Privat"</item>
+    <item>"Öffentlich"</item>
+  </string-array>
+  <string-array name="day_labels">
+    <item>"Sonntag"</item>
+    <item>"Montag"</item>
+    <item>"Dienstag"</item>
+    <item>"Mittwoch"</item>
+    <item>"Donnerstag"</item>
+    <item>"Freitag"</item>
+    <item>"Samstag"</item>
+  </string-array>
+  <string-array name="ordinal_labels">
+    <item>"ersten"</item>
+    <item>"zweiten"</item>
+    <item>"dritten"</item>
+    <item>"vierten"</item>
+    <item>"letzten"</item>
+  </string-array>
+  <string-array name="response_labels1">
+    <item>"(keine Antwort)"</item>
+    <item>"Ja"</item>
+    <item>"Vielleicht"</item>
+    <item>"Nein"</item>
+  </string-array>
+  <string-array name="response_labels2">
+    <item>"Ja"</item>
+    <item>"Vielleicht"</item>
+    <item>"Nein"</item>
+  </string-array>
+  <string-array name="delete_repeating_labels">
+    <item>"Nur dieser Termin"</item>
+    <item>"Dieser und zukünftige Termine"</item>
+    <item>"Alle Termine"</item>
+  </string-array>
+    <!-- no translation found for delete_repeating_labels_no_selected:0 (1341910309321756150) -->
+    <!-- no translation found for delete_repeating_labels_no_selected:1 (6315440193748139854) -->
+</resources>
diff --git a/res/values-de/strings.xml b/res/values-de/strings.xml
new file mode 100644 (file)
index 0000000..96be21b
--- /dev/null
@@ -0,0 +1,116 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<resources xmlns:android="http://schemas.android.com/apk/res/android"
+    xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+    <string name="app_label">"Kalender"</string>
+    <string name="calendar_plug"><font fgcolor="#ffffffff">"Willkommen bei Google Kalender!"</font>" "\n"Ein Ansatz à la Google beim Verwalten Ihrer Termine, der zeigen soll, dass Terminverwaltung intuitiver, effizienter und einfacher sein kann."</string>
+    <string name="what_label">"Was"</string>
+    <string name="when_label">"Wann"</string>
+    <string name="where_label">"Wo"</string>
+    <!-- no translation found for repeats_label (7414023871434593196) -->
+    <skip />
+    <string name="no_title_label">"(kein Thema)"</string>
+  <plurals name="Nminutes">
+    <item quantity="one">"1 Minute"</item>
+    <item quantity="other">"<xliff:g id="COUNT">%d</xliff:g> Minuten"</item>
+  </plurals>
+  <plurals name="Nmins">
+    <item quantity="one">"1 Min."</item>
+    <item quantity="other">"<xliff:g id="COUNT">%d</xliff:g> Min."</item>
+  </plurals>
+  <plurals name="Nhours">
+    <item quantity="one">"1 Stunde"</item>
+    <item quantity="other">"<xliff:g id="COUNT">%d</xliff:g> Stunden"</item>
+  </plurals>
+  <plurals name="Ndays">
+    <item quantity="one">"1 Tag"</item>
+    <item quantity="other">"<xliff:g id="COUNT">%d</xliff:g> Tag(e)"</item>
+  </plurals>
+    <string name="agenda_view">"Terminübersicht"</string>
+    <string name="day_view">"Tag"</string>
+    <string name="week_view">"Woche"</string>
+    <string name="month_view">"Monat"</string>
+    <string name="event_view">"Termin anzeigen"</string>
+    <string name="event_create">"Neuer Termin"</string>
+    <string name="event_edit">"Termin bearbeiten"</string>
+    <string name="event_delete">"Termin löschen"</string>
+    <string name="goto_today">"Heute"</string>
+    <string name="menu_select_calendars">"Meine Kalender"</string>
+    <string name="menu_preferences">"Einstellungen"</string>
+    <string name="plus_N_more">"(und <xliff:g id="MORE_COUNT">%d</xliff:g> weitere…)"</string>
+    <string name="calendars_title">"Meine Kalender"</string>
+    <string name="add_calendars">"Kalender hinzufügen"</string>
+    <string name="remove_calendars">"Kalender entfernen"</string>
+    <string name="event_edit_title">"Termindetails"</string>
+    <string name="hint_what">"Terminname"</string>
+    <string name="hint_where">"Ort des Termins"</string>
+    <string name="hint_description">"Terminbeschreibung"</string>
+    <!-- no translation found for creating_event (8237877638457604455) -->
+    <skip />
+    <!-- no translation found for saving_event (8853425146353785688) -->
+    <skip />
+    <!-- no translation found for loading_calendars_title (3819254313413902272) -->
+    <skip />
+    <!-- no translation found for loading_calendars_message (8266077515011438420) -->
+    <skip />
+    <string name="alert_when_label">"Wann:"</string>
+    <string name="alert_where_label">"Wo:"</string>
+    <string name="alert_missed_events_single">"(<xliff:g id="REMINDER_COUNT">%s</xliff:g> weitere Erinnerung)"</string>
+    <string name="alert_missed_events_multiple">"(<xliff:g id="REMINDER_COUNT">%s</xliff:g> weitere Erinnerungen)"</string>
+    <string name="event_info_title">"Termin anzeigen"</string>
+    <string name="event_info_title_invite">"Einladung zu einer Besprechung"</string>
+    <string name="add_new_reminder">"Erinnerung hinzufügen"</string>
+    <string name="edit_event_to_label">"Bis"</string>
+    <string name="edit_event_from_label">"Von"</string>
+    <string name="edit_event_all_day_label">"Ganztägig"</string>
+    <string name="edit_event_calendar_label">"Kalender"</string>
+    <string name="edit_event_show_extra_options">"Zusätzliche Optionen anzeigen"</string>
+    <string name="edit_event_hide_extra_options">"Zusätzliche Optionen ausblenden"</string>
+    <string name="description_label">"Beschreibung"</string>
+    <string name="presence_label">"Status"</string>
+    <string name="privacy_label">"Datenschutz"</string>
+    <string name="reminders_label">"Erinnerungen"</string>
+    <!-- no translation found for no_syncable_calendars (7019488867045436129) -->
+    <skip />
+    <!-- no translation found for no_calendars_found (755379468136462058) -->
+    <skip />
+    <string name="view_event_calendar_label">"Kalender"</string>
+    <string name="view_event_timezone_label">"Lokalzeit"</string>
+    <string name="view_event_response_label">"Teilnahme?"</string>
+    <string name="agenda_today">"Heute"</string>
+    <string name="num_events">"Anzahl Termine"</string>
+    <string name="edit_event_label">"Termin bearbeiten"</string>
+    <string name="delete_label">"Löschen"</string>
+    <string name="delete_event_label">"Termin löschen"</string>
+    <string name="save_label">"Speichern"</string>
+    <string name="discard_label">"Änderungen verwerfen"</string>
+    <string name="import_label">"Import"</string>
+    <string name="snooze_all_label">"Später erinnern"</string>
+    <string name="dismiss_all_label">"Alle schließen"</string>
+    <!-- no translation found for does_not_repeat (1877681921029738999) -->
+    <skip />
+    <string name="daily">"Täglich"</string>
+    <string name="every_weekday">"Jeden Werktag (Mo. - Fr.)"</string>
+    <string name="weekly">"Wöchentlich (jeden <xliff:g id="DAYS_OF_WEEK">%s</xliff:g>)"</string>
+    <string name="monthly_on_day_count">"Monatlich (jeden <xliff:g id="ORDINAL_NUMBER">%1$s</xliff:g> <xliff:g id="DAY_OF_WEEK">%2$s</xliff:g>)"</string>
+    <string name="monthly_on_day">"Monatlich (am <xliff:g id="DAY_OF_MONTH">%s</xliff:g>.)"</string>
+    <string name="yearly">"Jährlich (am <xliff:g id="DATES">%s</xliff:g>)"</string>
+    <string name="custom">"Benutzerdefiniert… (Anpassung über Telefon nicht möglich)"</string>
+    <string name="modify_event">"Nur diesen Termin ändern"</string>
+    <string name="modify_all">"Alle Termine in dieser Serie ändern"</string>
+    <string name="modify_all_following">"Diesen und alle zukünftigen Termine ändern"</string>
+    <string name="delete_this_event_title">"Dieser Termin wird gelöscht."</string>
+    <string name="delete_title">"Löschen"</string>
+    <string name="preferences_title">"Einstellungen"</string>
+    <string name="preferences_general_title">"Einstellung für Kalenderansicht"</string>
+    <string name="preferences_alerts_title">"Erinnerungseinstellungen"</string>
+    <string name="preferences_hide_declined_title">"Abgelehnte Termine ausblenden"</string>
+    <string name="preferences_alerts_type_title">"Benachrichtigungen und Hinweise festlegen"</string>
+    <!-- no translation found for preferences_alerts_type_dialog (2195667763429994271) -->
+    <skip />
+    <string name="preferences_alerts_vibrate_title">"Vibration"</string>
+    <string name="preferences_alerts_ringtone_title">"Klingelton auswählen"</string>
+    <string name="preferences_default_reminder_title">"Standarderinnerung festlegen"</string>
+    <!-- no translation found for preferences_default_reminder_dialog (2490348857239323412) -->
+    <skip />
+    <string name="preferences_default_reminder_default">"10"</string>
+</resources>
index f206c4f..5141fd7 100644 (file)
-<?xml version="1.0" encoding="utf-8"?>
+<?xml version="1.0" encoding="UTF-8"?>
 <resources xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
-  <string name="add_calendars">"Add calendars"</string>
-  <string name="add_new_reminder">Add reminder</string>
-  <string name="agenda_today">Today</string>
-  <string name="agenda_view">"Agenda"</string>
-  <string name="agenda_when_label">When</string>
-  <string name="agenda_where_label">Where</string>
-  <string name="alert_missed_events_multiple">(<xliff:g id="reminder_count">%s</xliff:g> more reminders)</string>
-  <string name="alert_missed_events_single">(<xliff:g id="reminder_count">%s</xliff:g> more reminder)</string>
-  <string name="alert_when_label">When:</string>
-  <string name="alert_where_label">Where:</string>
-  <string name="all_day_event">All-day event</string>
-  <string name="app_label">Calendar</string>
-  <string name="calendars_title">"My calendars"</string>
-  <string name="cancel_label">"Cancel"</string>
-  <string name="custom">"Custom\u2026 (cannot customise on phone)"</string>
-  <string name="daily">Daily</string>
-  <string name="day_view">"Day"</string>
-  <string name="delete_event_label">"Delete event"</string>
-  <string name="delete_label">"Delete"</string>
-  <string name="delete_this_event_title">This event will be deleted.</string>
-  <string name="delete_title">Delete</string>
-  <string name="description_label">Description</string>
-  <string name="discard_label">Discard changes</string>
-  <string name="dismiss_all_label">"Dismiss all"</string>
-  <string name="dismiss_label">"Dismiss"</string>
-  <string name="does_not_repeat">Does not repeat</string>
-  <string name="done_label">"Done"</string>
-  <string name="edit_event_all_day_label">All day</string>
-  <string name="edit_event_calendar_label">Calendar</string>
-  <string name="edit_event_from_label">From</string>
-  <string name="edit_event_hide_extra_options">Hide extra options</string>
-  <string name="edit_event_label">"Edit event"</string>
-  <string name="edit_event_show_extra_options">Show extra options</string>
-  <string name="edit_event_to_label">To</string>
-  <string name="event_create">"New event"</string>
-  <string name="event_delete">"Delete event"</string>
-  <string name="event_edit">"Edit event"</string>
-  <string name="event_edit_title">"Event details"</string>
-  <string name="event_info_title">View event</string>
-  <string name="event_info_title_invite">Meeting invitation</string>
-  <string name="event_view">"View event"</string>
-  <string name="every_label">"Every"</string>
-  <string name="every_weekday">"Every weekday (Mon\u2013Fri)"</string>
-  <string name="friday_letter">"F"</string>
-  <string name="from_label">From</string>
-  <string name="goto_today">"Today"</string>
-  <string name="hint_description">"Event description"</string>
-  <string name="hint_what">"Event name"</string>
-  <string name="hint_where">"Event location"</string>
-  <string name="import_label">"Import"</string>
-  <string name="menu_preferences">"Settings"</string>
-  <string name="menu_select_calendars">"My calendars"</string>
-  <string name="modify_all">Change all events in the series.</string>
-  <string name="modify_all_following">Change this and all future events.</string>
-  <string name="modify_event">Change only this event.</string>
-  <string name="monday_letter">"M"</string>
-  <string name="month_view">"Month"</string>
-  <string name="monthly_on_day">"Monthly (on day <xliff:g id="day_of_month">%s</xliff:g>)"</string>
-  <string name="monthly_on_day_count">"Monthly (every <xliff:g id="ordinal_number">%1$s</xliff:g> <xliff:g id="day_of_week">%2$s</xliff:g>)"</string>
-  <string name="more_options_label">"More options"</string>
-  <string name="no_title_label">(No subject)</string>
-  <string name="notes_label">Notes</string>
-  <string name="num_events">"Num events"</string>
-  <string name="ok_label">"OK"</string>
-  <string name="on_label">"On"</string>
-  <string name="plus_N_more">"(plus <xliff:g id="more_count">%d</xliff:g> more \u2026)"</string>
-  <string name="preferences_alerts_ringtone_title">Select ringtone</string>
-  <string name="preferences_alerts_sound_title">Sound</string>
-  <string name="preferences_alerts_title">Reminder settings</string>
-  <string name="preferences_alerts_type_default">1</string>
-  <string name="preferences_alerts_type_dialog">Set reminder</string>
-  <string name="preferences_alerts_type_title">Set alerts &amp; notifications</string>
-  <string name="preferences_alerts_vibrate_title">Vibrate</string>
-  <string name="preferences_default_reminder_default">10</string>
-  <string name="preferences_default_reminder_dialog">Set default reminder</string>
-  <string name="preferences_default_reminder_title">Set default reminder</string>
-  <string name="preferences_general_title">Calendar view setting</string>
-  <string name="preferences_hide_declined_title">Hide declined events</string>
-  <string name="preferences_title">"Settings"</string>
-  <string name="presence_label">Presence</string>
-  <string name="privacy_label">Privacy</string>
-  <string name="reminder">Reminder</string>
-  <string name="reminders_label">Reminders</string>
-  <string name="reminders_remove_label">Remove</string>
-  <string name="remove_calendars">"Remove calendars"</string>
-  <string name="repeat_on_label">"Repeat on"</string>
-  <string name="repeats_label">Repeats</string>
-  <string name="saturday_letter">"S"</string>
-  <string name="save_label">Save</string>
-  <string name="select_calendars_to_sync">"Select calendars to sync"</string>
-  <string name="set_time">"Set the time"</string>
-  <string name="snooze_all_label">"Snooze all"</string>
-  <string name="snooze_label">"Snooze"</string>
-  <string name="sunday_letter">"S"</string>
-  <string name="thursday_letter">"T"</string>
-  <string name="to_label">to</string>
-  <string name="tuesday_letter">"T"</string>
-  <string name="until">"Until"</string>
-  <string name="view_event_accept_button">Yes</string>
-  <string name="view_event_accept_label">Attending</string>
-  <string name="view_event_calendar_label">Calendar</string>
-  <string name="view_event_decline_button">No</string>
-  <string name="view_event_decline_label">Not attending</string>
-  <string name="view_event_edit">Edit</string>
-  <string name="view_event_no_response_label">(No response)</string>
-  <string name="view_event_reminders_label">Reminders</string>
-  <string name="view_event_response_label">Attending?</string>
-  <string name="view_event_tentative_button">Maybe</string>
-  <string name="view_event_tentative_label">Maybe attending</string>
-  <string name="view_event_timezone_label">Local time zone</string>
-  <string name="view_label">"View"</string>
-  <string name="wednesday_letter">"W"</string>
-  <string name="week_view">"Week"</string>
-  <string name="weekly">"Weekly (every <xliff:g id="days_of_week">%s</xliff:g>)"</string>
-  <string name="what_label">What</string>
-  <string name="when_label">When</string>
-  <string name="where_label">Where</string>
-  <string name="yearly">"Yearly (on <xliff:g id="dates">%s</xliff:g>)"</string>
+    <string name="app_label">"Calendar"</string>
+    <!-- no translation found for calendar_plug (4048572330264956957) -->
+    <skip />
+    <string name="what_label">"What"</string>
+    <string name="when_label">"When"</string>
+    <string name="where_label">"Where"</string>
+    <string name="repeats_label">"Repeats"</string>
+    <string name="no_title_label">"(No subject)"</string>
+    <!-- no translation found for Nminutes:one (6081118741858086532) -->
+    <!-- no translation found for Nminutes:other (1264594317967322630) -->
+    <!-- no translation found for Nmins:one (4614567358157302948) -->
+    <!-- no translation found for Nmins:other (486965688561269531) -->
+    <!-- no translation found for Nhours:one (4993938150407112728) -->
+    <!-- no translation found for Nhours:other (600521157331446471) -->
+    <!-- no translation found for Ndays:one (3245393674146438398) -->
+    <!-- no translation found for Ndays:other (3502645058844566354) -->
+    <string name="agenda_view">"Agenda"</string>
+    <string name="day_view">"Day"</string>
+    <string name="week_view">"Week"</string>
+    <string name="month_view">"Month"</string>
+    <string name="event_view">"View event"</string>
+    <string name="event_create">"New event"</string>
+    <string name="event_edit">"Edit event"</string>
+    <string name="event_delete">"Delete event"</string>
+    <string name="goto_today">"Today"</string>
+    <string name="menu_select_calendars">"My calendars"</string>
+    <string name="menu_preferences">"Settings"</string>
+    <string name="plus_N_more">"(plus <xliff:g id="MORE_COUNT">%d</xliff:g> more …)"</string>
+    <string name="calendars_title">"My calendars"</string>
+    <string name="add_calendars">"Add calendars"</string>
+    <string name="remove_calendars">"Remove calendars"</string>
+    <string name="event_edit_title">"Event details"</string>
+    <string name="hint_what">"Event name"</string>
+    <string name="hint_where">"Event location"</string>
+    <string name="hint_description">"Event description"</string>
+    <!-- no translation found for creating_event (4830642711192836714) -->
+    <skip />
+    <!-- no translation found for saving_event (2501598127034230955) -->
+    <skip />
+    <!-- no translation found for loading_calendars_title (6145461690011608604) -->
+    <skip />
+    <!-- no translation found for loading_calendars_message (4814002597639099673) -->
+    <skip />
+    <string name="alert_when_label">"When:"</string>
+    <string name="alert_where_label">"Where:"</string>
+    <string name="alert_missed_events_single">"(<xliff:g id="REMINDER_COUNT">%s</xliff:g> more reminder)"</string>
+    <string name="alert_missed_events_multiple">"(<xliff:g id="REMINDER_COUNT">%s</xliff:g> more reminders)"</string>
+    <string name="event_info_title">"View event"</string>
+    <string name="event_info_title_invite">"Meeting invitation"</string>
+    <string name="add_new_reminder">"Add reminder"</string>
+    <string name="edit_event_to_label">"To"</string>
+    <string name="edit_event_from_label">"From"</string>
+    <string name="edit_event_all_day_label">"All day"</string>
+    <string name="edit_event_calendar_label">"Calendar"</string>
+    <string name="edit_event_show_extra_options">"Show extra options"</string>
+    <string name="edit_event_hide_extra_options">"Hide extra options"</string>
+    <string name="description_label">"Description"</string>
+    <string name="presence_label">"Presence"</string>
+    <string name="privacy_label">"Privacy"</string>
+    <string name="reminders_label">"Reminders"</string>
+    <!-- no translation found for no_syncable_calendars (3658601685334109347) -->
+    <skip />
+    <!-- no translation found for no_calendars_found (7802708375572302907) -->
+    <skip />
+    <string name="view_event_calendar_label">"Calendar"</string>
+    <string name="view_event_timezone_label">"Local time zone"</string>
+    <string name="view_event_response_label">"Attending?"</string>
+    <string name="agenda_today">"Today"</string>
+    <string name="num_events">"Num events"</string>
+    <string name="edit_event_label">"Edit event"</string>
+    <string name="delete_label">"Delete"</string>
+    <string name="delete_event_label">"Delete event"</string>
+    <string name="save_label">"Save"</string>
+    <string name="discard_label">"Discard changes"</string>
+    <string name="import_label">"Import"</string>
+    <string name="snooze_all_label">"Snooze all"</string>
+    <string name="dismiss_all_label">"Dismiss all"</string>
+    <string name="does_not_repeat">"Does not repeat"</string>
+    <string name="daily">"Daily"</string>
+    <string name="every_weekday">"Every weekday (Mon–Fri)"</string>
+    <string name="weekly">"Weekly (every <xliff:g id="DAYS_OF_WEEK">%s</xliff:g>)"</string>
+    <string name="monthly_on_day_count">"Monthly (every <xliff:g id="ORDINAL_NUMBER">%1$s</xliff:g> <xliff:g id="DAY_OF_WEEK">%2$s</xliff:g>)"</string>
+    <string name="monthly_on_day">"Monthly (on day <xliff:g id="DAY_OF_MONTH">%s</xliff:g>)"</string>
+    <string name="yearly">"Yearly (on <xliff:g id="DATES">%s</xliff:g>)"</string>
+    <string name="custom">"Custom… (cannot customise on phone)"</string>
+    <string name="modify_event">"Change only this event."</string>
+    <string name="modify_all">"Change all events in the series."</string>
+    <string name="modify_all_following">"Change this and all future events."</string>
+    <string name="delete_this_event_title">"This event will be deleted."</string>
+    <string name="delete_title">"Delete"</string>
+    <string name="preferences_title">"Settings"</string>
+    <string name="preferences_general_title">"Calendar view setting"</string>
+    <string name="preferences_alerts_title">"Reminder settings"</string>
+    <string name="preferences_hide_declined_title">"Hide declined events"</string>
+    <string name="preferences_alerts_type_title">"Set alerts &amp; notifications"</string>
+    <string name="preferences_alerts_type_dialog">"Set reminder"</string>
+    <string name="preferences_alerts_vibrate_title">"Vibrate"</string>
+    <string name="preferences_alerts_ringtone_title">"Select ringtone"</string>
+    <string name="preferences_default_reminder_title">"Set default reminder"</string>
+    <string name="preferences_default_reminder_dialog">"Set default reminder"</string>
+    <string name="preferences_default_reminder_default">"10"</string>
 </resources>
diff --git a/res/values-es-rUS/strings.xml b/res/values-es-rUS/strings.xml
deleted file mode 100644 (file)
index 8dde2b9..0000000
+++ /dev/null
@@ -1,124 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<resources xmlns:android="http://schemas.android.com/apk/res/android"
-    xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
-  <string name="add_calendars">"Agregar calendarios"</string>
-  <string name="add_new_reminder">Agregar aviso</string>
-  <string name="agenda_today">Hoy</string>
-  <string name="agenda_view">"Agenda"</string>
-  <string name="agenda_when_label">Cuándo</string>
-  <string name="agenda_where_label">Dónde</string>
-  <string name="alert_missed_events_multiple">(<xliff:g id="reminder_count">%s</xliff:g> más avisos)</string>
-  <string name="alert_missed_events_single">(<xliff:g id="reminder_count">%s</xliff:g> más avisos)</string>
-  <string name="alert_when_label">Cuándo:</string>
-  <string name="alert_where_label">Dónde:</string>
-  <string name="all_day_event">Evento de todo el día</string>
-  <string name="app_label">Calendario</string>
-  <string name="calendars_title">"Mis calendarios"</string>
-  <string name="cancel_label">"Cancelar"</string>
-  <string name="custom">"Personalizar\u2026 (no se puede personalizar en teléfono)"</string>
-  <string name="daily">Diariamente</string>
-  <string name="day_view">"Día"</string>
-  <string name="delete_event_label">"Eliminar evento"</string>
-  <string name="delete_label">"Eliminar"</string>
-  <string name="delete_this_event_title">Se eliminará este evento:</string>
-  <string name="delete_title">Eliminar</string>
-  <string name="description_label">Descripción</string>
-  <string name="discard_label">Rechazar cambios</string>
-  <string name="dismiss_all_label">"Rechazar todo"</string>
-  <string name="dismiss_label">"Descartar"</string>
-  <string name="does_not_repeat">No se repite</string>
-  <string name="done_label">"Listo"</string>
-  <string name="edit_event_all_day_label">Todo el día</string>
-  <string name="edit_event_calendar_label">Calendario</string>
-  <string name="edit_event_from_label">De</string>
-  <string name="edit_event_hide_extra_options">Ocultar opciones extras</string>
-  <string name="edit_event_label">"Editar evento"</string>
-  <string name="edit_event_show_extra_options">Mostrar opciones extras</string>
-  <string name="edit_event_to_label">Para</string>
-  <string name="event_create">"Nuevo evento"</string>
-  <string name="event_delete">"Eliminar evento"</string>
-  <string name="event_edit">"Editar evento"</string>
-  <string name="event_edit_title">"Detalles del evento"</string>
-  <string name="event_info_title">Ver evento</string>
-  <string name="event_info_title_invite">Invitación a reunión</string>
-  <string name="event_view">"Ver evento"</string>
-  <string name="every_label">"Cada"</string>
-  <string name="every_weekday">"Todos los días laborables (Lun\u2013Vie)"</string>
-  <string name="friday_letter">"V"</string>
-  <string name="from_label">De</string>
-  <string name="goto_today">"Hoy"</string>
-  <string name="hint_description">"Descripción del evento"</string>
-  <string name="hint_what">"Nombre del evento"</string>
-  <string name="hint_where">"Ubicación del evento"</string>
-  <string name="import_label">"Importar"</string>
-  <string name="menu_preferences">"Configuración"</string>
-  <string name="menu_select_calendars">"Mis calendarios"</string>
-  <string name="modify_all">Cambiar todos los eventos de la serie.</string>
-  <string name="modify_all_following">Cambiar esto y todos los eventos futuros. </string>
-  <string name="modify_event">Cambiar sólo este evento.</string>
-  <string name="monday_letter">"L"</string>
-  <string name="month_view">"Mes"</string>
-  <string name="monthly_on_day">"Mensual (en día <xliff:g id="day_of_month">%s</xliff:g>)"</string>
-  <string name="monthly_on_day_count">"Mensual (cada <xliff:g id="ordinal_number">%1$s</xliff:g><xliff:g id="day_of_week">%2$s</xliff:g>)"</string>
-  <string name="more_options_label">"Más opciones"</string>
-  <string name="no_calendars">Esperando sincronización</string>
-  <string name="no_calendars_msg">Sus eventos aparecerán en breve.</string>
-  <string name="no_title_label">(Sin asunto)</string>
-  <string name="notes_label">Notas</string>
-  <string name="num_events">"Nº de eventos"</string>
-  <string name="ok_label">"Aceptar"</string>
-  <string name="on_label">"Activado"</string>
-  <string name="plus_N_more">"(además de <xliff:g id="more_count">%d</xliff:g> más\u2026)"</string>
-  <string name="preferences_alerts_ringtone_title">Seleccionar tono de timbre</string>
-  <string name="preferences_alerts_sound_title">Sonido</string>
-  <string name="preferences_alerts_title">Configuración de aviso</string>
-  <string name="preferences_alerts_type_default">1</string>
-  <string name="preferences_alerts_type_dialog">Configurar aviso</string>
-  <string name="preferences_alerts_type_title">Configurar alertas y notificaciones</string>
-  <string name="preferences_alerts_vibrate_title">Vibrar</string>
-  <string name="preferences_default_reminder_default">10</string>
-  <string name="preferences_default_reminder_dialog">Configurar aviso predeterminado</string>
-  <string name="preferences_default_reminder_title">Configurar aviso predeterminado</string>
-  <string name="preferences_general_title">Configuración de visualización del calendario</string>
-  <string name="preferences_hide_declined_title">Ocultar eventos rechazados</string>
-  <string name="preferences_title">"Configuración"</string>
-  <string name="presence_label">Presencia</string>
-  <string name="privacy_label">Privacidad</string>
-  <string name="reminder">Aviso</string>
-  <string name="reminders_label">Avisos</string>
-  <string name="reminders_remove_label">Quitar</string>
-  <string name="remove_calendars">"Quitar calendarios"</string>
-  <string name="repeat_on_label">"Repetir en"</string>
-  <string name="repeats_label">Se repite</string>
-  <string name="saturday_letter">"S"</string>
-  <string name="save_label">Guardar</string>
-  <string name="select_calendars_to_sync">"Seleccionar calendarios a sincronizar"</string>
-  <string name="set_time">"Configurar la hora"</string>
-  <string name="snooze_all_label">"Posponer todo"</string>
-  <string name="snooze_label">"Posponer"</string>
-  <string name="sunday_letter">"D"</string>
-  <string name="thursday_letter">"J"</string>
-  <string name="to_label">para</string>
-  <string name="tuesday_letter">"M"</string>
-  <string name="until">"Hasta"</string>
-  <string name="view_event_accept_button">Sí</string>
-  <string name="view_event_accept_label">Asistes</string>
-  <string name="view_event_calendar_label">Calendario</string>
-  <string name="view_event_decline_button">No</string>
-  <string name="view_event_decline_label">No asistes</string>
-  <string name="view_event_edit">Editar</string>
-  <string name="view_event_no_response_label">(Sin respuesta)</string>
-  <string name="view_event_reminders_label">Avisos</string>
-  <string name="view_event_response_label">¿Asistes?</string>
-  <string name="view_event_tentative_button">Quizás</string>
-  <string name="view_event_tentative_label">Quizás asista</string>
-  <string name="view_event_timezone_label">Zona horaria local</string>
-  <string name="view_label">"Ver"</string>
-  <string name="wednesday_letter">"M"</string>
-  <string name="week_view">"Semana"</string>
-  <string name="weekly">"Semanal (cada <xliff:g id="days_of_week">%s</xliff:g>)"</string>
-  <string name="what_label">Qué</string>
-  <string name="when_label">Cuándo</string>
-  <string name="where_label">Dónde</string>
-  <string name="yearly">"Anual (en <xliff:g id="dates">%s</xliff:g>)"</string>
-</resources>
diff --git a/res/values-fr-rFR/strings.xml b/res/values-fr-rFR/strings.xml
deleted file mode 100644 (file)
index bf4fa0b..0000000
+++ /dev/null
@@ -1,124 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<resources xmlns:android="http://schemas.android.com/apk/res/android"
-    xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
-  <string name="add_calendars">"Ajouter agendas"</string>
-  <string name="add_new_reminder">Ajouter rappel</string>
-  <string name="agenda_today">Aujourd\'hui</string>
-  <string name="agenda_view">"Agenda"</string>
-  <string name="agenda_when_label">Quand</string>
-  <string name="agenda_where_label">Où</string>
-  <string name="alert_missed_events_multiple">(<xliff:g id="reminder_count">%s</xliff:g> plus de rappels)</string>
-  <string name="alert_missed_events_single">(<xliff:g id="reminder_count">%s</xliff:g> plus de rappel)</string>
-  <string name="alert_when_label">Quand :</string>
-  <string name="alert_where_label">Où :</string>
-  <string name="all_day_event">Journée entière</string>
-  <string name="app_label">Agenda</string>
-  <string name="calendars_title">"Mes agendas"</string>
-  <string name="cancel_label">"Annuler"</string>
-  <string name="custom">"Personnaliser\u2026 (impossible de personnaliser sur le téléphone)"</string>
-  <string name="daily">Quotidien</string>
-  <string name="day_view">"Jour"</string>
-  <string name="delete_event_label">"Supprimer l\'événement"</string>
-  <string name="delete_label">"Supprimer"</string>
-  <string name="delete_this_event_title">Cet événement sera supprimé.</string>
-  <string name="delete_title">Supprimer</string>
-  <string name="description_label">Description</string>
-  <string name="discard_label">Abandonner les modifications</string>
-  <string name="dismiss_all_label">"Abandonner tout"</string>
-  <string name="dismiss_label">"Abandonner"</string>
-  <string name="does_not_repeat">Ne se répète pas</string>
-  <string name="done_label">"Terminé"</string>
-  <string name="edit_event_all_day_label">Journée entière</string>
-  <string name="edit_event_calendar_label">Agenda</string>
-  <string name="edit_event_from_label">De</string>
-  <string name="edit_event_hide_extra_options">Masquer les options supplémentaires</string>
-  <string name="edit_event_label">"Modifier l\'événement"</string>
-  <string name="edit_event_show_extra_options">Afficher les options supplémentaires</string>
-  <string name="edit_event_to_label">À</string>
-  <string name="event_create">"Nouvel événement"</string>
-  <string name="event_delete">"Supprimer l\'événement"</string>
-  <string name="event_edit">"Modifier l\'événement"</string>
-  <string name="event_edit_title">"Détails de l\'événement"</string>
-  <string name="event_info_title">Afficher l\'événement</string>
-  <string name="event_info_title_invite">Invitation à une réunion</string>
-  <string name="event_view">"Afficher l\'événement"</string>
-  <string name="every_label">"Chaque"</string>
-  <string name="every_weekday">"Chaque jour ouvré (Lun\u2013Ven)"</string>
-  <string name="friday_letter">"V"</string>
-  <string name="from_label">De</string>
-  <string name="goto_today">"Aujourd\'hui"</string>
-  <string name="hint_description">"Description de l\'événement"</string>
-  <string name="hint_what">"Nom de l\'événement"</string>
-  <string name="hint_where">"Lieu de l\'événement"</string>
-  <string name="import_label">"Importer"</string>
-  <string name="menu_preferences">"Paramètres"</string>
-  <string name="menu_select_calendars">"Mes agendas"</string>
-  <string name="modify_all">Modifier tous les événements de la série.</string>
-  <string name="modify_all_following">Modifier ceci et les événements futurs.</string>
-  <string name="modify_event">Modifier seulement cet événement.</string>
-  <string name="monday_letter">"L"</string>
-  <string name="month_view">"Mois"</string>
-  <string name="monthly_on_day">"Mensuel (le jour <xliff:g id="day_of_month">%s</xliff:g>)"</string>
-  <string name="monthly_on_day_count">"Mensuel (chaque <xliff:g id="ordinal_number">%1$s</xliff:g><xliff:g id="day_of_week">%2$s</xliff:g>)"</string>
-  <string name="more_options_label">"Plus d\'options"</string>
-  <string name="no_calendars">Attente de synchronisation</string>
-  <string name="no_calendars_msg">Vos événements apparaîtront bientôt.</string>
-  <string name="no_title_label">(Aucun objet)</string>
-  <string name="notes_label">Notes</string>
-  <string name="num_events">"Événement num"</string>
-  <string name="ok_label">"OK"</string>
-  <string name="on_label">"Activé"</string>
-  <string name="plus_N_more">"(plus <xliff:g id="more_count">%d</xliff:g> de plus \u2026)"</string>
-  <string name="preferences_alerts_ringtone_title">Sélectionner la sonnerie</string>
-  <string name="preferences_alerts_sound_title">Son</string>
-  <string name="preferences_alerts_title">Paramètres de rappel</string>
-  <string name="preferences_alerts_type_default">1</string>
-  <string name="preferences_alerts_type_dialog">Définir le rappel</string>
-  <string name="preferences_alerts_type_title">Définir les alertes et notifications</string>
-  <string name="preferences_alerts_vibrate_title">Vibreur</string>
-  <string name="preferences_default_reminder_default">10</string>
-  <string name="preferences_default_reminder_dialog">Définir le rappel par défaut</string>
-  <string name="preferences_default_reminder_title">Définir le rappel par défaut</string>
-  <string name="preferences_general_title">Paramètre de vue de l\'agenda</string>
-  <string name="preferences_hide_declined_title">Masquer les événements refusés</string>
-  <string name="preferences_title">"Paramètres"</string>
-  <string name="presence_label">Présence</string>
-  <string name="privacy_label">Vie privée</string>
-  <string name="reminder">Rappel</string>
-  <string name="reminders_label">Rappels</string>
-  <string name="reminders_remove_label">Supprimer</string>
-  <string name="remove_calendars">"Supprimer agendas"</string>
-  <string name="repeat_on_label">"Répéter le"</string>
-  <string name="repeats_label">Répétitions</string>
-  <string name="saturday_letter">"S"</string>
-  <string name="save_label">Enregistrer</string>
-  <string name="select_calendars_to_sync">"Sélectionner les agendas à synchroniser"</string>
-  <string name="set_time">"Définir l\'heure"</string>
-  <string name="snooze_all_label">"Répéter tout"</string>
-  <string name="snooze_label">"Répétition"</string>
-  <string name="sunday_letter">"D"</string>
-  <string name="thursday_letter">"J"</string>
-  <string name="to_label">à</string>
-  <string name="tuesday_letter">"M"</string>
-  <string name="until">"Jusqu\'à"</string>
-  <string name="view_event_accept_button">Oui</string>
-  <string name="view_event_accept_label">Participe</string>
-  <string name="view_event_calendar_label">Agenda</string>
-  <string name="view_event_decline_button">Non</string>
-  <string name="view_event_decline_label">Ne participe pas</string>
-  <string name="view_event_edit">Modifier</string>
-  <string name="view_event_no_response_label">(Pas de réponse)</string>
-  <string name="view_event_reminders_label">Rappels</string>
-  <string name="view_event_response_label">Participe ?</string>
-  <string name="view_event_tentative_button">Peut-être</string>
-  <string name="view_event_tentative_label">Participe peut-être</string>
-  <string name="view_event_timezone_label">Fuseau horaire local</string>
-  <string name="view_label">"Afficher"</string>
-  <string name="wednesday_letter">"M"</string>
-  <string name="week_view">"Semaine"</string>
-  <string name="weekly">"Hebdomadaire (chaque <xliff:g id="days_of_week">%s</xliff:g>)"</string>
-  <string name="what_label">Quoi</string>
-  <string name="when_label">Quand</string>
-  <string name="where_label">Où</string>
-  <string name="yearly">"Annuellement (le <xliff:g id="dates">%s</xliff:g>)"</string>
-</resources>
diff --git a/res/values-it-rIT/strings.xml b/res/values-it-rIT/strings.xml
deleted file mode 100644 (file)
index a7c46cb..0000000
+++ /dev/null
@@ -1,124 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<resources xmlns:android="http://schemas.android.com/apk/res/android"
-    xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
-  <string name="add_calendars">"Aggiungi calendari"</string>
-  <string name="add_new_reminder">Aggiungi promemoria</string>
-  <string name="agenda_today">Oggi</string>
-  <string name="agenda_view">"Agenda"</string>
-  <string name="agenda_when_label">Quando</string>
-  <string name="agenda_where_label">Dove</string>
-  <string name="alert_missed_events_multiple">(<xliff:g id="reminder_count">%s</xliff:g> ulteriori promemoria)</string>
-  <string name="alert_missed_events_single">(<xliff:g id="reminder_count">%s</xliff:g> ulteriore promemoria)</string>
-  <string name="alert_when_label">Quando:</string>
-  <string name="alert_where_label">Dove:</string>
-  <string name="all_day_event">Evento giornata intera</string>
-  <string name="app_label">Calendario</string>
-  <string name="calendars_title">"Calendari"</string>
-  <string name="cancel_label">"Annulla"</string>
-  <string name="custom">"Personalizza\u2026 (impossibile personalizzare sul telefono)"</string>
-  <string name="daily">Giornaliero</string>
-  <string name="day_view">"Giorno"</string>
-  <string name="delete_event_label">"Elimina evento"</string>
-  <string name="delete_label">"Elimina"</string>
-  <string name="delete_this_event_title">L'evento verrà eliminato.</string>
-  <string name="delete_title">Elimina</string>
-  <string name="description_label">Descrizione</string>
-  <string name="discard_label">Ignora modifiche</string>
-  <string name="dismiss_all_label">"Elimina tutti"</string>
-  <string name="dismiss_label">"Elimina"</string>
-  <string name="does_not_repeat">Non si ripete</string>
-  <string name="done_label">"Completato"</string>
-  <string name="edit_event_all_day_label">Giornata intera</string>
-  <string name="edit_event_calendar_label">Calendario</string>
-  <string name="edit_event_from_label">Da</string>
-  <string name="edit_event_hide_extra_options">Nascondi opzioni extra</string>
-  <string name="edit_event_label">"Modifica evento"</string>
-  <string name="edit_event_show_extra_options">Mostra opzioni extra</string>
-  <string name="edit_event_to_label">A</string>
-  <string name="event_create">"Nuovo evento"</string>
-  <string name="event_delete">"Elimina evento"</string>
-  <string name="event_edit">"Modifica evento"</string>
-  <string name="event_edit_title">"Dettagli evento"</string>
-  <string name="event_info_title">Visualizza evento</string>
-  <string name="event_info_title_invite">Invito a Riunione</string>
-  <string name="event_view">"Visualizza evento"</string>
-  <string name="every_label">"Ogni"</string>
-  <string name="every_weekday">"Ogni settimana (Lun\u2013Ven)"</string>
-  <string name="friday_letter">"V"</string>
-  <string name="from_label">Da</string>
-  <string name="goto_today">"Oggi"</string>
-  <string name="hint_description">"Descrizione evento"</string>
-  <string name="hint_what">"Nome evento"</string>
-  <string name="hint_where">"Ubicazione evento"</string>
-  <string name="import_label">"Importa"</string>
-  <string name="menu_preferences">"Impostazioni"</string>
-  <string name="menu_select_calendars">"Calendari"</string>
-  <string name="modify_all">Cambia tutti gli eventi nella serie.</string>
-  <string name="modify_all_following">Cambia questo evento e tutti gli eventi futuri.</string>
-  <string name="modify_event">Cambia solo questo evento.</string>
-  <string name="monday_letter">"L"</string>
-  <string name="month_view">"Mese"</string>
-  <string name="monthly_on_day">"Mensile (il giorno <xliff:g id="day_of_month">%s</xliff:g>)"</string>
-  <string name="monthly_on_day_count">"Mensile (ogni <xliff:g id="ordinal_number">%1$s</xliff:g><xliff:g id="day_of_week">%2$s</xliff:g>)"</string>
-  <string name="more_options_label">"Altre opzioni"</string>
-  <string name="no_calendars">In attesa della sincronizzazione</string>
-  <string name="no_calendars_msg">Gli eventi verranno visualizzati tra alcuni istanti.</string>
-  <string name="no_title_label">(Nessun oggetto)</string>
-  <string name="notes_label">Note</string>
-  <string name="num_events">"Num eventi"</string>
-  <string name="ok_label">"OK"</string>
-  <string name="on_label">"On"</string>
-  <string name="plus_N_more">"(più ulteriore <xliff:g id="more_count">%d</xliff:g> \u2026)"</string>
-  <string name="preferences_alerts_ringtone_title">Seleziona suoneria</string>
-  <string name="preferences_alerts_sound_title">Suono</string>
-  <string name="preferences_alerts_title">Impostazioni promemoria</string>
-  <string name="preferences_alerts_type_default">1</string>
-  <string name="preferences_alerts_type_dialog">Imposta promemoria</string>
-  <string name="preferences_alerts_type_title">Imposta avvisi e notifiche</string>
-  <string name="preferences_alerts_vibrate_title">Vibrazione</string>
-  <string name="preferences_default_reminder_default">10</string>
-  <string name="preferences_default_reminder_dialog">Imposta promemoria predefinito</string>
-  <string name="preferences_default_reminder_title">Imposta promemoria predefinito</string>
-  <string name="preferences_general_title">Impostazione visualizzazione calendario</string>
-  <string name="preferences_hide_declined_title">Nascondi eventi rifiutati</string>
-  <string name="preferences_title">"Impostazioni"</string>
-  <string name="presence_label">Presenza</string>
-  <string name="privacy_label">Privacy</string>
-  <string name="reminder">Promemoria</string>
-  <string name="reminders_label">Promemoria</string>
-  <string name="reminders_remove_label">Rimuovi</string>
-  <string name="remove_calendars">"Rimuovi calendari"</string>
-  <string name="repeat_on_label">"Ripeti il"</string>
-  <string name="repeats_label">Ripetizioni</string>
-  <string name="saturday_letter">"S"</string>
-  <string name="save_label">Salva</string>
-  <string name="select_calendars_to_sync">"Selezionare i calendari da sincronizzare"</string>
-  <string name="set_time">"Imposta l'ora"</string>
-  <string name="snooze_all_label">"Posponi tutto"</string>
-  <string name="snooze_label">"Posponi"</string>
-  <string name="sunday_letter">"D"</string>
-  <string name="thursday_letter">"G"</string>
-  <string name="to_label">in</string>
-  <string name="tuesday_letter">"M"</string>
-  <string name="until">"Fino"</string>
-  <string name="view_event_accept_button">Sì</string>
-  <string name="view_event_accept_label">Partecipante</string>
-  <string name="view_event_calendar_label">Calendario</string>
-  <string name="view_event_decline_button">No</string>
-  <string name="view_event_decline_label">Non partecipante</string>
-  <string name="view_event_edit">Modifica</string>
-  <string name="view_event_no_response_label">(Nessuna risposta)</string>
-  <string name="view_event_reminders_label">Promemoria</string>
-  <string name="view_event_response_label">Partecipante?</string>
-  <string name="view_event_tentative_button">Forse</string>
-  <string name="view_event_tentative_label">Probabile partecipante</string>
-  <string name="view_event_timezone_label">Fuso orario locale</string>
-  <string name="view_label">"Visualizza"</string>
-  <string name="wednesday_letter">"M"</string>
-  <string name="week_view">"Settimana"</string>
-  <string name="weekly">"Settimanale (ogni <xliff:g id="days_of_week">%s</xliff:g>)"</string>
-  <string name="what_label">Cosa</string>
-  <string name="when_label">Quando</string>
-  <string name="where_label">Dove</string>
-  <string name="yearly">"Annualmente (il <xliff:g id="dates">%s</xliff:g>)"</string>
-</resources>
diff --git a/res/values-ja/arrays.xml b/res/values-ja/arrays.xml
new file mode 100644 (file)
index 0000000..df533d1
--- /dev/null
@@ -0,0 +1,121 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<resources xmlns:android="http://schemas.android.com/apk/res/android"
+    xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+  <string-array name="reminder_minutes_labels">
+    <item>"5分"</item>
+    <item>"10分"</item>
+    <item>"15分"</item>
+    <item>"20分"</item>
+    <item>"25分"</item>
+    <item>"30分"</item>
+    <item>"45分"</item>
+    <item>"1時間"</item>
+    <item>"2時間"</item>
+    <item>"3時間"</item>
+    <item>"12時間"</item>
+    <item>"24時間"</item>
+    <item>"2日"</item>
+    <item>"1週間"</item>
+  </string-array>
+  <string-array name="reminder_minutes_values">
+    <item>"5"</item>
+    <item>"10"</item>
+    <item>"15"</item>
+    <item>"20"</item>
+    <item>"25"</item>
+    <item>"30"</item>
+    <item>"45"</item>
+    <item>"60"</item>
+    <item>"120"</item>
+    <item>"180"</item>
+    <item>"720"</item>
+    <item>"1,440"</item>
+    <item>"2,880"</item>
+    <item>"10,080"</item>
+  </string-array>
+  <string-array name="preferences_default_reminder_labels">
+    <item>"なし"</item>
+    <item>"5分"</item>
+    <item>"10分"</item>
+    <item>"15分"</item>
+    <item>"20分"</item>
+    <item>"25分"</item>
+    <item>"30分"</item>
+    <item>"45分"</item>
+    <item>"1時間"</item>
+    <item>"2時間"</item>
+    <item>"3時間"</item>
+    <item>"12時間"</item>
+    <item>"24時間"</item>
+    <item>"2日"</item>
+    <item>"1週間"</item>
+  </string-array>
+  <string-array name="preferences_default_reminder_values">
+    <item>"0"</item>
+    <item>"5"</item>
+    <item>"10"</item>
+    <item>"15"</item>
+    <item>"20"</item>
+    <item>"25"</item>
+    <item>"30"</item>
+    <item>"45"</item>
+    <item>"60"</item>
+    <item>"120"</item>
+    <item>"180"</item>
+    <item>"720"</item>
+    <item>"1,440"</item>
+    <item>"2,880"</item>
+    <item>"10,080"</item>
+  </string-array>
+  <string-array name="preferences_alert_type_labels">
+    <item>"アラート"</item>
+    <item>"ステータス バーによる通知"</item>
+    <item>"オフ"</item>
+  </string-array>
+  <string-array name="preferences_alert_type_values">
+    <item>"0"</item>
+    <item>"1"</item>
+    <item>"2"</item>
+  </string-array>
+    <!-- no translation found for availability:0 (454869065893453189) -->
+    <!-- no translation found for availability:1 (6228387173725732140) -->
+  <string-array name="visibility">
+    <item>"デフォルト"</item>
+    <item>"限定公開"</item>
+    <item>"一般公開"</item>
+  </string-array>
+  <string-array name="day_labels">
+    <item>"日曜日"</item>
+    <item>"月曜日"</item>
+    <item>"火曜日"</item>
+    <item>"水曜日"</item>
+    <item>"木曜日"</item>
+    <item>"金曜日"</item>
+    <item>"土曜日"</item>
+  </string-array>
+  <string-array name="ordinal_labels">
+    <item>"第1"</item>
+    <item>"第2"</item>
+    <item>"第3"</item>
+    <item>"第4"</item>
+    <item>"最終"</item>
+  </string-array>
+  <string-array name="response_labels1">
+    <item>"(応答なし)"</item>
+    <item>"はい"</item>
+    <item>"未定"</item>
+    <item>"いいえ"</item>
+  </string-array>
+  <string-array name="response_labels2">
+    <item>"はい"</item>
+    <item>"未定"</item>
+    <item>"いいえ"</item>
+  </string-array>
+  <string-array name="delete_repeating_labels">
+    <item>"この予定のみ"</item>
+    <item>"これ以降の予定"</item>
+    <item>"すべての予定"</item>
+  </string-array>
+    <!-- no translation found for delete_repeating_labels_no_selected:0 (1341910309321756150) -->
+    <!-- no translation found for delete_repeating_labels_no_selected:1 (6315440193748139854) -->
+</resources>
diff --git a/res/values-ja/strings.xml b/res/values-ja/strings.xml
new file mode 100644 (file)
index 0000000..6a72ddb
--- /dev/null
@@ -0,0 +1,116 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<resources xmlns:android="http://schemas.android.com/apk/res/android"
+    xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+    <string name="app_label">"カレンダー"</string>
+    <string name="calendar_plug"><font fgcolor="#ffffffff">"Google カレンダーへようこそ!"</font>" "\n"スケジュールに簡単にアクセスして、より直感的、効率的に予定を管理できます。"</string>
+    <string name="what_label">"タイトル"</string>
+    <string name="when_label">"日時"</string>
+    <string name="where_label">"場所"</string>
+    <!-- no translation found for repeats_label (7414023871434593196) -->
+    <skip />
+    <string name="no_title_label">"(無題)"</string>
+  <plurals name="Nminutes">
+    <item quantity="one">"1分"</item>
+    <item quantity="other">"<xliff:g id="COUNT">%d</xliff:g>分"</item>
+  </plurals>
+  <plurals name="Nmins">
+    <item quantity="one">"1分"</item>
+    <item quantity="other">"<xliff:g id="COUNT">%d</xliff:g>分"</item>
+  </plurals>
+  <plurals name="Nhours">
+    <item quantity="one">"1時間"</item>
+    <item quantity="other">"<xliff:g id="COUNT">%d</xliff:g>時間"</item>
+  </plurals>
+  <plurals name="Ndays">
+    <item quantity="one">"1日"</item>
+    <item quantity="other">"<xliff:g id="COUNT">%d</xliff:g>日"</item>
+  </plurals>
+    <string name="agenda_view">"予定リスト"</string>
+    <string name="day_view">"日"</string>
+    <string name="week_view">"週"</string>
+    <string name="month_view">"月"</string>
+    <string name="event_view">"予定を表示"</string>
+    <string name="event_create">"新しい予定"</string>
+    <string name="event_edit">"予定を編集"</string>
+    <string name="event_delete">"予定を削除"</string>
+    <string name="goto_today">"今日"</string>
+    <string name="menu_select_calendars">"マイ カレンダー"</string>
+    <string name="menu_preferences">"設定"</string>
+    <string name="plus_N_more">"(あと <xliff:g id="MORE_COUNT">%d</xliff:g> 件...)"</string>
+    <string name="calendars_title">"マイ カレンダー"</string>
+    <string name="add_calendars">"カレンダーを追加"</string>
+    <string name="remove_calendars">"カレンダーを削除"</string>
+    <string name="event_edit_title">"予定の詳細"</string>
+    <string name="hint_what">"予定の名前"</string>
+    <string name="hint_where">"予定の場所"</string>
+    <string name="hint_description">"予定の説明"</string>
+    <!-- no translation found for creating_event (8237877638457604455) -->
+    <skip />
+    <!-- no translation found for saving_event (8853425146353785688) -->
+    <skip />
+    <!-- no translation found for loading_calendars_title (3819254313413902272) -->
+    <skip />
+    <!-- no translation found for loading_calendars_message (8266077515011438420) -->
+    <skip />
+    <string name="alert_when_label">"日時:"</string>
+    <string name="alert_where_label">"場所:"</string>
+    <string name="alert_missed_events_single">"(<xliff:g id="REMINDER_COUNT">%s</xliff:g> 件の通知がありました)"</string>
+    <string name="alert_missed_events_multiple">"(<xliff:g id="REMINDER_COUNT">%s</xliff:g> 件の通知がありました)"</string>
+    <string name="event_info_title">"予定を表示"</string>
+    <string name="event_info_title_invite">"会議への招待状"</string>
+    <string name="add_new_reminder">"通知を追加"</string>
+    <string name="edit_event_to_label">"終了"</string>
+    <string name="edit_event_from_label">"開始"</string>
+    <string name="edit_event_all_day_label">"終日"</string>
+    <string name="edit_event_calendar_label">"カレンダー"</string>
+    <string name="edit_event_show_extra_options">"追加のオプションを表示する"</string>
+    <string name="edit_event_hide_extra_options">"追加のオプションを表示しない"</string>
+    <string name="description_label">"説明"</string>
+    <string name="presence_label">"ステータス"</string>
+    <string name="privacy_label">"プライバシー"</string>
+    <string name="reminders_label">"通知"</string>
+    <!-- no translation found for no_syncable_calendars (7019488867045436129) -->
+    <skip />
+    <!-- no translation found for no_calendars_found (755379468136462058) -->
+    <skip />
+    <string name="view_event_calendar_label">"カレンダー"</string>
+    <string name="view_event_timezone_label">"ローカル タイムゾーン"</string>
+    <string name="view_event_response_label">"参加しますか?"</string>
+    <string name="agenda_today">"今日"</string>
+    <string name="num_events">"予定数"</string>
+    <string name="edit_event_label">"予定を編集"</string>
+    <string name="delete_label">"削除"</string>
+    <string name="delete_event_label">"予定を削除"</string>
+    <string name="save_label">"保存"</string>
+    <string name="discard_label">"変更を破棄"</string>
+    <string name="import_label">"インポート"</string>
+    <string name="snooze_all_label">"すべてスヌーズ"</string>
+    <string name="dismiss_all_label">"すべて表示しない"</string>
+    <!-- no translation found for does_not_repeat (1877681921029738999) -->
+    <skip />
+    <string name="daily">"毎日"</string>
+    <string name="every_weekday">"平日 (月~金)"</string>
+    <string name="weekly">"毎週 (<xliff:g id="DAYS_OF_WEEK">%s</xliff:g>)"</string>
+    <string name="monthly_on_day_count">"毎月 (<xliff:g id="ORDINAL_NUMBER">%1$s</xliff:g> <xliff:g id="DAY_OF_WEEK">%2$s</xliff:g>)"</string>
+    <string name="monthly_on_day">"毎月 (<xliff:g id="DAY_OF_MONTH">%s</xliff:g>)"</string>
+    <string name="yearly">"毎年 (<xliff:g id="DATES">%s</xliff:g>)"</string>
+    <string name="custom">"カスタム... (携帯電話ではカスタマイズ不可)"</string>
+    <string name="modify_event">"この予定のみを変更します。"</string>
+    <string name="modify_all">"一連の定期的な予定すべてを削除します。"</string>
+    <string name="modify_all_following">"これ以降の予定すべてを削除します。"</string>
+    <string name="delete_this_event_title">"この予定を削除します。"</string>
+    <string name="delete_title">"削除"</string>
+    <string name="preferences_title">"設定"</string>
+    <string name="preferences_general_title">"カレンダーの表示の設定"</string>
+    <string name="preferences_alerts_title">"通知の設定"</string>
+    <string name="preferences_hide_declined_title">"辞退した予定を表示しない"</string>
+    <string name="preferences_alerts_type_title">"アラートと通知を設定"</string>
+    <!-- no translation found for preferences_alerts_type_dialog (2195667763429994271) -->
+    <skip />
+    <string name="preferences_alerts_vibrate_title">"バイブレーション"</string>
+    <string name="preferences_alerts_ringtone_title">"着信音を選択"</string>
+    <string name="preferences_default_reminder_title">"デフォルトの通知を設定"</string>
+    <!-- no translation found for preferences_default_reminder_dialog (2490348857239323412) -->
+    <skip />
+    <string name="preferences_default_reminder_default">"10"</string>
+</resources>
diff --git a/res/values-nl-rNL/strings.xml b/res/values-nl-rNL/strings.xml
deleted file mode 100644 (file)
index 5d11998..0000000
+++ /dev/null
@@ -1,113 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<resources xmlns:android="http://schemas.android.com/apk/res/android"
-    xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
-  <string name="add_calendars">"Agenda's toevoegen"</string>
-  <string name="agenda_view">"Agendaweergave"</string>
-  <string name="agenda_when_label">Wanneer\u2026</string>
-  <string name="agenda_where_label">Waar\u2026</string>
-  <string name="alert_missed_events_multiple">en <xliff:g id="reminder_count">%s</xliff:g> andere herinneringen</string>
-  <string name="alert_missed_events_single">en <xliff:g id="reminder_count">%s</xliff:g> andere herinnering</string>
-  <string name="alert_when_label">Wanneer:</string>
-  <string name="alert_where_label">Locatie:</string>
-  <string name="all_day_event">Duurt hele dag</string>
-  <string name="app_label">Agenda</string>
-  <string name="calendars_title">"Agenda's"</string>
-  <string name="cancel_label">"Annuleren"</string>
-  <string name="custom">"Aangepast\u2026 (kan niet aanpassen op toestel)"</string>
-  <string name="daily">Elke dag</string>
-  <string name="day_view">"Dagweergave"</string>
-  <string name="delete_label">"Gebeurtenis verwijderen"</string>
-  <string name="description_label">Beschrijving</string>
-  <string name="discard_label">Wijzigingen negeren</string>
-  <string name="dismiss_all_label">"Alles negeren"</string>
-  <string name="dismiss_label">"Negeren"</string>
-  <string name="does_not_repeat">Wordt niet herhaald</string>
-  <string name="done_label">"Gereed"</string>
-  <string name="edit_event_all_day_label">De hele dag</string>
-  <string name="edit_event_calendar_label">Agenda</string>
-  <string name="edit_event_from_label">Van</string>
-  <string name="edit_event_hide_extra_options">Extra opties verbergen</string>
-  <string name="edit_event_show_extra_options">Extra opties weergeven</string>
-  <string name="edit_event_to_label">tot</string>
-  <string name="event_create">"Nieuwe gebeurtenis"</string>
-  <string name="event_delete">"Gebeurtenis verwijderen"</string>
-  <string name="event_edit">"Gebeurtenis"</string>
-  <string name="event_edit_title">"Gebeurtenisdetails"</string>
-  <string name="event_info_title">Gebeurtenis weergeven</string>
-  <string name="event_info_title_invite">Uitnodiging voor afspraak</string>
-  <string name="event_view">"Gebeurtenis weergeven"</string>
-  <string name="every_label">"Elke"</string>
-  <string name="every_weekday">"Elke werkdag (Maa\u2013vri)"</string>
-  <string name="friday_letter">"V"</string>
-  <string name="from_label">Van</string>
-  <string name="goto_today">"Ga naar vandaag"</string>
-  <string name="hint_description">"Gebeurtenisbeschrijving"</string>
-  <string name="hint_what">"Gebeurtenisnaam"</string>
-  <string name="hint_where">"Gebeurtenislocatie"</string>
-  <string name="import_label">"Importeren"</string>
-  <string name="menu_preferences">"Instellingen"</string>
-  <string name="menu_select_calendars">"Agenda's beheren"</string>
-  <string name="modify_all">Alle gebeurtenissen veranderen</string>
-  <string name="modify_all_following">Alle toekomstige gebeurtenissen veranderen</string>
-  <string name="modify_event">Deze gebeurtenis veranderen</string>
-  <string name="monday_letter">"M"</string>
-  <string name="month_view">"Maandweergave"</string>
-  <string name="monthly_on_day">"Elke mnd (op dag <xliff:g id="day_of_month">%s</xliff:g>)"</string>
-  <string name="monthly_on_day_count">"Elke mnd (elke <xliff:g id="ordinal_number">%1$s</xliff:g> <xliff:g id="day_of_week">%2$s</xliff:g>)"</string>
-  <string name="more_options_label">"Meer opties"</string>
-  <string name="no_title_label">(Geen onderwerp)</string>
-  <string name="notes_label">Opmerkingen</string>
-  <string name="num_events">"Aant gebeurtenissen"</string>
-  <string name="on_label">"Aan"</string>
-  <string name="plus_N_more">"(plus <xliff:g id="more_count">%d</xliff:g> extra \u2026)"</string>
-  <string name="preferences_alerts_sound_title">Beltoon</string>
-  <string name="preferences_alerts_title">Herinneringsinstellingen</string>
-  <string name="preferences_alerts_type_default">1</string>
-  <string name="preferences_alerts_type_dialog">Herinnering instellen</string>
-  <string name="preferences_alerts_type_title">Alarmsignalen &amp; meldingen\u2026</string>
-  <string name="preferences_alerts_vibrate_title">Trillen</string>
-  <string name="preferences_default_reminder_default">10</string>
-  <string name="preferences_default_reminder_dialog">Standaardherinnering instellen</string>
-  <string name="preferences_default_reminder_title">Standaardherinnering\u2026</string>
-  <string name="preferences_general_title">Algemene instellingen</string>
-  <string name="preferences_hide_declined_title">Afgewezen gebeurtenissen verbergen</string>
-  <string name="preferences_title">"Instellingen"</string>
-  <string name="presence_label">Aanwezigheid</string>
-  <string name="privacy_label">Privacy</string>
-  <string name="reminder">Herinnering</string>
-  <string name="reminders_label">Herinneringen</string>
-  <string name="reminders_remove_label">Verwijderen</string>
-  <string name="remove_calendars">"Agenda's verwijderen"</string>
-  <string name="repeat_on_label">"Herhalen op"</string>
-  <string name="repeats_label">Herhaalt</string>
-  <string name="saturday_letter">"Z"</string>
-  <string name="save_label">Opslaan</string>
-  <string name="select_calendars_to_sync">"Agenda's voor synchronisatie selecteren"</string>
-  <string name="set_time">"De tijd instellen"</string>
-  <string name="snooze_all_label">"Alles uitstellen"</string>
-  <string name="snooze_label">"Uitstellen"</string>
-  <string name="sunday_letter">"Z"</string>
-  <string name="thursday_letter">"D"</string>
-  <string name="to_label">tot</string>
-  <string name="tuesday_letter">"D"</string>
-  <string name="until">"Totdat"</string>
-  <string name="view_event_accept_button">Ja</string>
-  <string name="view_event_accept_label">Aanwezig</string>
-  <string name="view_event_calendar_label">Agenda</string>
-  <string name="view_event_decline_button">Nee</string>
-  <string name="view_event_decline_label">Niet aanwezig</string>
-  <string name="view_event_edit">Bewerken</string>
-  <string name="view_event_no_response_label">(Geen reactie)</string>
-  <string name="view_event_reminders_label">Herinneringen</string>
-  <string name="view_event_response_label">Antwoord</string>
-  <string name="view_event_tentative_button">Misschien</string>
-  <string name="view_event_tentative_label">Misschien aanwezig</string>
-  <string name="view_label">"Weergeven"</string>
-  <string name="wednesday_letter">"W"</string>
-  <string name="week_view">"Weekweergave"</string>
-  <string name="weekly">"Wekelijks (elke <xliff:g id="days_of_week">%s</xliff:g>)"</string>
-  <string name="what_label">Wat</string>
-  <string name="when_label">Wanneer</string>
-  <string name="where_label">Locatie</string>
-  <string name="yearly">"Elk jaar (op <xliff:g id="dates">%s</xliff:g>)"</string>
-</resources>
diff --git a/res/values-zh-rTW/strings.xml b/res/values-zh-rTW/strings.xml
deleted file mode 100644 (file)
index 7c8393b..0000000
+++ /dev/null
@@ -1,124 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<resources xmlns:android="http://schemas.android.com/apk/res/android"
-    xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
-  <string name="add_calendars">"新增行事曆"</string>
-  <string name="add_new_reminder">新增提醒</string>
-  <string name="agenda_today">今天</string>
-  <string name="agenda_view">"議程"</string>
-  <string name="agenda_when_label">時間</string>
-  <string name="agenda_where_label">地點</string>
-  <string name="alert_missed_events_multiple">(<xliff:g id="reminder_count">%s</xliff:g> 個其它的提醒)</string>
-  <string name="alert_missed_events_single">(<xliff:g id="reminder_count">%s</xliff:g> 個其它的提醒)</string>
-  <string name="alert_when_label">時間:</string>
-  <string name="alert_where_label">地點:</string>
-  <string name="all_day_event">全天活動</string>
-  <string name="app_label">行事曆</string>
-  <string name="calendars_title">"我的行事曆"</string>
-  <string name="cancel_label">"取消"</string>
-  <string name="custom">"自訂\u2026 (無法在電話上自訂)"</string>
-  <string name="daily">每天</string>
-  <string name="day_view">"天"</string>
-  <string name="delete_event_label">"刪除活動"</string>
-  <string name="delete_label">"刪除"</string>
-  <string name="delete_this_event_title">將會刪除此活動。</string>
-  <string name="delete_title">刪除</string>
-  <string name="description_label">說明</string>
-  <string name="discard_label">放棄變更</string>
-  <string name="dismiss_all_label">"全部關閉"</string>
-  <string name="dismiss_label">"關閉"</string>
-  <string name="does_not_repeat">不重複</string>
-  <string name="done_label">"完成"</string>
-  <string name="edit_event_all_day_label">全天</string>
-  <string name="edit_event_calendar_label">行事曆</string>
-  <string name="edit_event_from_label">從</string>
-  <string name="edit_event_hide_extra_options">隱藏其它選項</string>
-  <string name="edit_event_label">"編輯活動"</string>
-  <string name="edit_event_show_extra_options">顯示其它選項</string>
-  <string name="edit_event_to_label">到</string>
-  <string name="event_create">"新增活動"</string>
-  <string name="event_delete">"刪除活動"</string>
-  <string name="event_edit">"編輯活動"</string>
-  <string name="event_edit_title">"活動詳細資料"</string>
-  <string name="event_info_title">檢視活動</string>
-  <string name="event_info_title_invite">會議邀請</string>
-  <string name="event_view">"檢視活動"</string>
-  <string name="every_label">"每"</string>
-  <string name="every_weekday">"每個工作日 (星期一\u2013星期五)"</string>
-  <string name="friday_letter">"五"</string>
-  <string name="from_label">從</string>
-  <string name="goto_today">"今天"</string>
-  <string name="hint_description">"活動說明"</string>
-  <string name="hint_what">"活動名稱"</string>
-  <string name="hint_where">"活動地點"</string>
-  <string name="import_label">"匯入"</string>
-  <string name="menu_preferences">"設定"</string>
-  <string name="menu_select_calendars">"我的行事曆"</string>
-  <string name="modify_all">變更所有一連串的活動。</string>
-  <string name="modify_all_following">變更此項及所有未來的活動。</string>
-  <string name="modify_event">僅變更此活動。</string>
-  <string name="monday_letter">"一"</string>
-  <string name="month_view">"月"</string>
-  <string name="monthly_on_day">"每月 (第 <xliff:g id="day_of_month">%s</xliff:g> 天)"</string>
-  <string name="monthly_on_day_count">"每月 (每 <xliff:g id="ordinal_number">%1$s</xliff:g><xliff:g id="day_of_week">%2$s</xliff:g>)"</string>
-  <string name="more_options_label">"更多選項"</string>
-  <string name="no_calendars">正在等待同步</string>
-  <string name="no_calendars_msg">將會立即顯示事件。</string>
-  <string name="no_title_label">(無主旨)</string>
-  <string name="notes_label">記事</string>
-  <string name="num_events">"活動數目"</string>
-  <string name="ok_label">"確定"</string>
-  <string name="on_label">"開啟"</string>
-  <string name="plus_N_more">"(加上 <xliff:g id="more_count">%d</xliff:g> 其它 \u2026)"</string>
-  <string name="preferences_alerts_ringtone_title">選取響鈴音調</string>
-  <string name="preferences_alerts_sound_title">聲音</string>
-  <string name="preferences_alerts_title">提醒設定</string>
-  <string name="preferences_alerts_type_default">1</string>
-  <string name="preferences_alerts_type_dialog">設定提醒</string>
-  <string name="preferences_alerts_type_title">設定警訊與通知</string>
-  <string name="preferences_alerts_vibrate_title">震動</string>
-  <string name="preferences_default_reminder_default">10</string>
-  <string name="preferences_default_reminder_dialog">設定預設提醒</string>
-  <string name="preferences_default_reminder_title">設定預設提醒</string>
-  <string name="preferences_general_title">行事曆檢視設定</string>
-  <string name="preferences_hide_declined_title">隱藏已經拒絕的活動</string>
-  <string name="preferences_title">"設定"</string>
-  <string name="presence_label">存在</string>
-  <string name="privacy_label">隱私權</string>
-  <string name="reminder">提醒</string>
-  <string name="reminders_label">提醒</string>
-  <string name="reminders_remove_label">移除</string>
-  <string name="remove_calendars">"移除行事曆"</string>
-  <string name="repeat_on_label">"重複週期"</string>
-  <string name="repeats_label">重複</string>
-  <string name="saturday_letter">"六"</string>
-  <string name="save_label">儲存</string>
-  <string name="select_calendars_to_sync">"選取要同步的行事曆"</string>
-  <string name="set_time">"設定時間"</string>
-  <string name="snooze_all_label">"全部延遲"</string>
-  <string name="snooze_label">"延遲"</string>
-  <string name="sunday_letter">"日"</string>
-  <string name="thursday_letter">"四"</string>
-  <string name="to_label">到</string>
-  <string name="tuesday_letter">"二"</string>
-  <string name="until">"直到"</string>
-  <string name="view_event_accept_button">是</string>
-  <string name="view_event_accept_label">出席</string>
-  <string name="view_event_calendar_label">行事曆</string>
-  <string name="view_event_decline_button">否</string>
-  <string name="view_event_decline_label">未出席</string>
-  <string name="view_event_edit">編輯</string>
-  <string name="view_event_no_response_label">(無回應)</string>
-  <string name="view_event_reminders_label">提醒</string>
-  <string name="view_event_response_label">出席?</string>
-  <string name="view_event_tentative_button">可能</string>
-  <string name="view_event_tentative_label">可能出席</string>
-  <string name="view_event_timezone_label">本地時區</string>
-  <string name="view_label">"檢視"</string>
-  <string name="wednesday_letter">"三"</string>
-  <string name="week_view">"週"</string>
-  <string name="weekly">"每週 (每 <xliff:g id="days_of_week">%s</xliff:g>)"</string>
-  <string name="what_label">目標</string>
-  <string name="when_label">時間</string>
-  <string name="where_label">地點</string>
-  <string name="yearly">"每年 (<xliff:g id="dates">%s</xliff:g>)"</string>
-</resources>
index 89c41e5..ee8cf99 100644 (file)
@@ -16,8 +16,7 @@
 
 <resources>
     <!-- Choices for the "Reminder minutes" spinner.
-         These must be kept in sync with the reminder_minutes_values array
-         and the reminder_minutes_labels_abbrev array below.
+         These must be kept in sync with the reminder_minutes_values array.
     -->
     <string-array name="reminder_minutes_labels">
         <item>5 minutes</item>
         <item>1 week</item>
     </string-array>
     
-    <string-array name="reminder_minutes_labels_abbrev">
-        <item>5 mins</item>
-        <item>10 mins</item>
-        <item>15 mins</item>
-        <item>20 mins</item>
-        <item>25 mins</item>
-        <item>30 mins</item>
-        <item>45 mins</item>
-        <item>1 hour</item>
-        <item>2 hours</item>
-        <item>3 hours</item>
-        <item>12 hours</item>
-        <item>24 hours</item>
-        <item>2 days</item>
-        <item>1 week</item>
-    </string-array>
-    
     <string-array name="reminder_minutes_values">
         <item>"5"</item>
         <item>"10"</item>
         <item>"2"</item>
     </string-array>
     
-    <!-- Choices for the "Repeats" spinner.
-         These must be kept in sync with the sRepeats[] array
-         of ints in EventActivity.java. -->
-    <string-array name="repeat_strings">
-        <item>"Does not repeat"</item>
-        <item>"Daily"</item>
-        <item>"Weekly"</item>
-        <item>"Monthly"</item>
-        <item>"Yearly"</item>
-    </string-array>
-    <string-array name="every_n_days">
-        <item>"day"</item>
-        <item>"2 days"</item>
-        <item>"3 days"</item>
-        <item>"4 days"</item>
-        <item>"5 days"</item>
-        <item>"6 days"</item>
-        <item>"7 days"</item>
-        <item>"8 days"</item>
-        <item>"9 days"</item>
-        <item>"10 days"</item>
-        <item>"11 days"</item>
-        <item>"12 days"</item>
-        <item>"13 days"</item>
-        <item>"14 days"</item>
-    </string-array>
-    <string-array name="every_n_weeks">
-        <item>"week"</item>
-        <item>"2 weeks"</item>
-        <item>"3 weeks"</item>
-        <item>"4 weeks"</item>
-        <item>"5 weeks"</item>
-        <item>"6 weeks"</item>
-        <item>"7 weeks"</item>
-        <item>"8 weeks"</item>
-        <item>"9 weeks"</item>
-        <item>"10 weeks"</item>
-        <item>"11 weeks"</item>
-        <item>"12 weeks"</item>
-        <item>"13 weeks"</item>
-        <item>"14 weeks"</item>
-    </string-array>
-    <string-array name="every_n_months">
-        <item>"month"</item>
-        <item>"2 months"</item>
-        <item>"3 months"</item>
-        <item>"4 months"</item>
-        <item>"5 months"</item>
-        <item>"6 months"</item>
-        <item>"7 months"</item>
-        <item>"8 months"</item>
-        <item>"9 months"</item>
-        <item>"10 months"</item>
-        <item>"11 months"</item>
-        <item>"12 months"</item>
-        <item>"13 months"</item>
-        <item>"14 months"</item>
-    </string-array>
-    <string-array name="every_n_years">
-        <item>"year"</item>
-        <item>"2 years"</item>
-        <item>"3 years"</item>
-        <item>"4 years"</item>
-        <item>"5 years"</item>
-        <item>"6 years"</item>
-        <item>"7 years"</item>
-        <item>"8 years"</item>
-        <item>"9 years"</item>
-        <item>"10 years"</item>
-        <item>"11 years"</item>
-        <item>"12 years"</item>
-        <item>"13 years"</item>
-        <item>"14 years"</item>
-    </string-array>
-    
     <string-array name="availability">
-        <item>Show as busy</item>
-        <item>Show as available</item>
+        <item>Busy</item>
+        <item>Available</item>
     </string-array>
     
     <string-array name="visibility">
         <item>This &amp; future events</item>
         <item>All events</item>
     </string-array>
+
+    <!-- The corresponding indices are defined in DeleteEventHelper.java -->
+    <!-- This is the same array as above (the "delete_repeating_labels" array,
+         except that the first element "Only this event" is removed.  This
+         array exists to work-around a bug in the CalendarProvider and sync
+         code where you can't delete one instance of a repeating event that
+         was created on the phone until that event has been synced to the server.
+     -->
+    <string-array name="delete_repeating_labels_no_selected">
+        <item>This &amp; future events</item>
+        <item>All events</item>
+    </string-array>
 </resources>
index b7e3c90..f2c9fb0 100644 (file)
 */
 -->
 <resources>
-    <drawable name="selected_day_background">#ffd5d5d5</drawable>
-    <drawable name="event_background">#ffc3d9ff</drawable>
-    <drawable name="pref_background">#ffc3d9ff</drawable>
-    <drawable name="label_foreground">#ff1b38c2</drawable>
-    <drawable name="text_foreground">#ff000000</drawable>
-    <drawable name="base_background">#ffffffff</drawable>
-    <drawable name="panel_label_foreground">#ffe0f0ff</drawable>
-    <drawable name="panel_text_foreground">#ffffffff</drawable>
-    <drawable name="daynames_background">#ff1c1c1c</drawable>
-    <drawable name="title_background">#ff565656</drawable>
-    
-    <color name="black">#ff000000</color>
-    <color name="black_25">#40000000</color>
-    <color name="black_50">#80000000</color>
-    <color name="white">#ffffffff</color>
-    <color name="white_25">#40ffffff</color>
-    <color name="white_50">#80ffffff</color>
-    <color name="grey">#fff0f0f0</color>
-    
+    <color name="event_background">#ffc3d9ff</color>
+    <color name="panel_text_foreground">#ffffffff</color>
+    <color name="daynames_background">#ff1c1c1c</color>
     <color name="calendar_all_day_event_color">#ffffffff</color>
-    <color name="calendar_event_color">#ffffffff</color>
     <color name="calendar_event_text_color">#ff000000</color>
 
     <color name="calendar_all_day_background">#ff5a5a5a</color>
-    <color name="other_month_cell">#ffd5d5d5</color>
-    <color name="label_base">#ff1b38c2</color>
-    <color name="week_label">@color/label_base</color>
-    <color name="week_weekday">@color/black</color>
-    <color name="week_weekend">@color/white</color>
-    <color name="other_month">@color/white</color>
-    <color name="calendar_hour_label">@color/white</color>
+    <color name="week_weekend">@android:color/white</color>
+    <color name="calendar_hour_label">@android:color/white</color>
     <color name="calendar_ampm_label">#ffbebebe</color>
     <color name="calendar_hour_background">#ff393939</color>
     <color name="calendar_hour_selected">#ff808080</color>
     <color name="calendar_date_banner_background">#ff424242</color>
     <color name="calendar_date_selected">#ff808080</color>
-    <color name="calendar_date_banner_text_color">@color/white</color>
+    <color name="calendar_date_banner_text_color">@android:color/white</color>
     <color name="calendar_grid_area_background">#ff202020</color>
     <color name="calendar_grid_area_selected">#ff505050</color>
     <color name="calendar_grid_line_horizontal_color">#ff5a5a5a</color>
     <color name="calendar_grid_line_vertical_color">#ff5a5a5a</color>
     <color name="calendar_grid_line_highlight_color">#ff707070</color>
-    <color name="status_background">#fff4d66e</color>
     <color name="selection">#ffffaa00</color>
     
     <color name="month_day_number">#ff404040</color>
     <color name="month_today_number">#ffffffff</color>
     <color name="month_other_month">#ff595959</color>
     <color name="month_other_month_day_number">#ffa0a0a0</color>
-    <color name="month_other_month_name">#ff84868c</color>
     <color name="month_other_month_banner">#80595959</color>
     <color name="month_week_banner">#20595959</color>
-    <color name="month_dna_strip_color">#ff63c731</color>
 
-    <color name="conflict_center">#ffff8876</color>
-    <color name="conflict_border">#ffbf6558</color>
     <color name="event_center">#ff6bd697</color>
-    <color name="event_border">#ff50a071</color>
 </resources>
 
index d4edf8a..058ca27 100644 (file)
 -->
 
 <resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+    <!-- This is the label underneath the icon for Calendar -->
     <string name="app_label">Calendar</string>
+    <!-- This is the welcome message when a user starts Calendar for the first time -->
+    <string name="calendar_plug"><font fgcolor="#ffffffff">Welcome to Google Calendar!</font>
+    \nA Google approach to managing your schedule built on the idea that scheduling events can be more intuitive, efficient and accessible.
+    </string>
 
     <!-- Shared Labels. These labels are shared among the activities. -->
+    <skip />
+    <!-- This is the label for the title or name of an event -->
     <string name="what_label">What</string>
+    <!-- This is the label for the date and time of an event -->
     <string name="when_label">When</string>
+    <!-- This is the label for the location of an event -->
     <string name="where_label">Where</string>
-    <string name="repeats_label">Repeats</string>
-    <string name="to_label">to</string>
-    <!-- Title of event when no explicit title is defined -->
+    <!-- Some events repeat daily, weekly, monthly, or yearly.  This is the label
+         for all the choices about how often an event repeats (including the choice
+         of not repeating). -->
+    <string name="repeats_label">Repetition</string>
+    <!-- Title of event when no explicit title is specified by the user -->
     <string name="no_title_label">(No subject)</string>
     
     <!-- Reminder format strings -->
     <plurals name="Nminutes">
+        <!-- This is the label for a 1-minute reminder. -->
         <item quantity="one">1 minute</item>
+        <!-- This is the label for 2 or more minutes. The actual number of
+             minutes is a parameter. -->
         <item quantity="other"><xliff:g id="count">%d</xliff:g> minutes</item>
     </plurals>
-    <!-- We use "mins" instead of "minutes" to keep the string short -->
+    <!-- We use the abbreviation "mins" instead of "minutes" to keep the string short.
+         This is the number of minutes displayed for a calendar reminder.  For example,
+         a reminder of 10 minutes would be displayed as '10 mins'.  The translation
+         should use the shortest acceptable abbreviation to save space. -->
     <plurals name="Nmins">
+        <!-- This is the label for a 1-minute reminder. -->
         <item quantity="one">1 min</item>
+        <!-- This is the label for 2 or more minutes. The actual number of
+             minutes is a parameter. -->
         <item quantity="other"><xliff:g id="count">%d</xliff:g> mins</item>
     </plurals>
+    <!-- This is the number of hours displayed for a calendar reminder.  For example,
+         a reminder of 1 hour would be displayed as '1 hour'.  The translation
+         should use the shortest acceptable abbreviation of 'hour' to save space. -->
     <plurals name="Nhours">
+        <!-- This is the label for a 1-hour reminder. -->
         <item quantity="one">1 hour</item>
+        <!-- This is the label for a reminder of 2 or more hours. The actual number of
+             hours is a parameter. -->
         <item quantity="other"><xliff:g id="count">%d</xliff:g> hours</item>
     </plurals>
+    <!-- This is the number of days displayed for a calendar reminder.  For example,
+         a reminder of 2 days would be displayed as '2 days'.  The translation
+         should use the shortest acceptable abbreviation of 'day' to save space. -->
     <plurals name="Ndays">
+        <!-- This is the label for a reminder of 1 day. -->
         <item quantity="one">1 day</item>
+        <!-- This is the label for a reminder of 2 or more days. The actual number of
+             days is a parameter. -->
         <item quantity="other"><xliff:g id="count">%d</xliff:g> days</item>
     </plurals>
     
     <!-- Menu items: -->
+    <skip />
+    <!-- This is a label on a menu item. Pressing this menu item displays the
+         Agenda view. -->
     <string name="agenda_view">"Agenda"</string>
+    <!-- This is a label on a menu item. Pressing this menu item displays the
+         Day view. -->
     <string name="day_view">"Day"</string>
+    <!-- This is a label on a menu item. Pressing this menu item displays the
+         Week view. -->
     <string name="week_view">"Week"</string>
+    <!-- This is a label on a menu item. Pressing this menu item displays the
+         Month view. -->
     <string name="month_view">"Month"</string>
+    <!-- This is a label on a menu item. Pressing this menu item displays the
+         details of an event. -->
     <string name="event_view">"View event"</string>
+    <!-- This is a label on a menu item. Pressing this menu item allows the
+         user to create a new event. -->
     <string name="event_create">"New event"</string>
+    <!-- This is a label on a menu item in a popup window. Pressing this menu
+         item allows the user to edit or change an existing event. -->
     <string name="event_edit">"Edit event"</string>
+    <!-- This is a label on a menu item in a popup window. Pressing this menu
+         item allows the user to delete an existing event. -->
     <string name="event_delete">"Delete event"</string>
+    <!-- This is a label on a menu item. Pressing this menu
+         item takes the user to the current day (today) in whatever view
+         (Day view, Week view, Agenda view, Month view) they are currently in. -->
     <string name="goto_today">"Today"</string>
+    <!-- This is a label on a menu item. Pressing this menu item allows the
+         user to see the list of calendars that he is viewing and to then add
+         or remove selected calendars. -->
     <string name="menu_select_calendars">"My calendars"</string>
+    <!-- This is a label on a menu item. Pressing this menu item allows the
+         user to view and edit his Settings (or Preferences) -->
     <string name="menu_preferences">"Settings"</string>
 
     <!-- Month view -->
+    <skip />
+    <!-- This string is used in a popup window when there are more events than
+         can be displayed so it displays the events that it can and then displays
+         this line so that the user knows how many more events there are that
+         could not be displayed.  For example, if there are 6 events but we can
+         only display 4 events then we will display the first 4 events and then
+         show 'plus 2 more' to indicate that there are two more events that we
+         could not display because of lack of room. -->
     <string name="plus_N_more">"(plus <xliff:g id="more_count">%d</xliff:g> more \u2026)"</string>
 
     <!-- Select Calendars activity -->
+    <skip />
     <!-- Title of "My calendars" screen -->
     <string name="calendars_title">"My calendars"</string>
-    <!-- Menu option -->
+    <!-- Menu option for selecting calendars to add -->
     <string name="add_calendars">"Add calendars"</string>
-    <!-- Menu option -->
+    <!-- Menu option for selecting calendars to remove -->
     <string name="remove_calendars">"Remove calendars"</string>
-    <string name="select_calendars_to_sync">"Select calendars to sync"</string>
 
     <!-- Event edit activity -->
-    <!-- Screen title -->
+    <skip />
+    <!-- The title of the screen where the user edits an event -->
     <string name="event_edit_title">"Event details"</string>
-    <string name="set_time">"Set the time"</string>
-    <string name="every_label">"Every"</string>
-    <string name="on_label">"On"</string>
-    <string name="sunday_letter">"S"</string>
-    <string name="monday_letter">"M"</string>
-    <string name="tuesday_letter">"T"</string>
-    <string name="wednesday_letter">"W"</string>
-    <string name="thursday_letter">"T"</string>
-    <string name="friday_letter">"F"</string>
-    <string name="saturday_letter">"S"</string>
-    <string name="until">"Until"</string>
-    <string name="repeat_on_label">"Repeat on"</string>
-    <!-- Default value of What field -->
+    <!-- Default value of What field (as a hint to the user) -->
     <string name="hint_what">"Event name"</string>
-    <!-- Default value of Where field -->
+    <!-- Default value of Where field (as a hint to the user) -->
     <string name="hint_where">"Event location"</string>
-    <!-- Default value of Description field -->
+    <!-- Default value of Description field (as a hint to the user) -->
     <string name="hint_description">"Event description"</string>
+    <string name="creating_event">"Creating event\u2026"</string>
+    <string name="saving_event">"Saving event\u2026"</string>
+    <string name="loading_calendars_title">"Loading calendars"</string>
+    <string name="loading_calendars_message">"Loading calendars\u2026"</string>
 
+    <!-- The alert toast is not actually being displayed for some reason. -->
+    <skip />
+    <!-- The label for the date/time of an event in a popup window -->
     <string name="alert_when_label">When:</string>
+    <!-- The label for the location of an event in a popup window -->
     <string name="alert_where_label">Where:</string>
     <!-- Notification window messages: -->
+    <skip />
+    <!-- This shows the number of additional reminders that were missed. This
+         is the singular case so it displays '1 more reminder' -->
     <string name="alert_missed_events_single">(<xliff:g id="reminder_count">%s</xliff:g> more reminder)</string>
+    <!-- This shows the number of additional reminders that were missed.  For example,
+         if there were two additional reminders then this would show
+         '2 more reminders' -->
     <string name="alert_missed_events_multiple">(<xliff:g id="reminder_count">%s</xliff:g> more reminders)</string>
     
     <!-- Event info/edit screen labels:-->
+    <skip />
+    <!-- This is the title of the screen used to view the details of an event -->
     <string name="event_info_title">View event</string>
+    <!-- This is the title of the screen used to view the details of an invitation
+         to a meeting or event -->
     <string name="event_info_title_invite">Meeting invitation</string>
-    <string name="reminder">Reminder</string>
-    <string name="all_day_event">All-day event</string>
-    <string name="notes_label">Notes</string>
-    <string name="from_label">From</string>
-    <!-- Menu item -->
+    <!-- Menu item to allow the user to add a reminder to an event -->
     <string name="add_new_reminder">Add reminder</string>
         
     <!-- EditEventActivity specific strings: -->
-    <!-- Heading on Event details screen -->
+    <skip />
+    <!-- Events have a start date/time and an end date/time. The display shows
+         the start and end times like 'From start date To end date'. This is the
+         label before the 'end date'. -->
     <string name="edit_event_to_label">To</string>
-    <!-- Heading on Event details screen -->
+    <!-- Events have a start date/time and an end date/time. The display shows
+         the start and end times like 'From start date To end date'. This is the
+         label before the 'start date'. -->
     <string name="edit_event_from_label">From</string>
-    <!-- Check box label -->
+    <!-- Check box label that specifies if this is an all-day event -->
     <string name="edit_event_all_day_label">All day</string>
-    <!-- Heading on Event details screen -->
+    <!-- Label for choosing one of the calendars -->
     <string name="edit_event_calendar_label">Calendar</string>
-    <!-- Menu item -->
+    <!-- Menu item to show extra options that are used less often -->
     <string name="edit_event_show_extra_options">Show extra options</string>
-    <!-- Menu item -->
+    <!-- Menu item to hide extra options that are used less often -->
     <string name="edit_event_hide_extra_options">Hide extra options</string>
-    <!-- Heading on Event details screen -->
+    <!-- Label for the event description -->
     <string name="description_label">Description</string>
-    <!-- Heading on Event details screen -->
+    <!-- Label for the 'Presence' of an event, which can be either 'busy' (the default)
+         or 'available' -->
     <string name="presence_label">Presence</string>
-    <!-- Heading on Event details screen -->
+    <!-- Label for the 'Privacy' of an event, which can be either 'private'
+         or 'public' -->
     <string name="privacy_label">Privacy</string>
-    <!-- Heading on Event details screen -->
+    <!-- Label for the list of reminders for an event -->
     <string name="reminders_label">Reminders</string>
-    <string name="reminders_remove_label">Remove</string>
+    <string name="no_syncable_calendars">No calendars</string>
+    <string name="no_calendars_found">You have no calendars.</string>
     
     <!-- View Event -->
-    <string name="view_event_edit">Edit</string>
+    <skip />
+    <!-- Label for which calendar an event is part of -->
     <string name="view_event_calendar_label">Calendar</string>
+    <!-- Label for the local timezone -->
     <string name="view_event_timezone_label">Local time zone</string>
+    <!-- Label for whether the user is attending this event. This is shown when
+         a user is invited to a meeting or event.  The possible answers are
+         'yes', 'no', and 'maybe' (and, initially, 'no response'). -->
     <string name="view_event_response_label">Attending?</string>
-    <!-- Heading on View event screen -->
-    <string name="view_event_reminders_label">Reminders</string>
-    <string name="view_event_accept_label">Attending</string>
-    <string name="view_event_tentative_label">Maybe attending</string>
-    <string name="view_event_decline_label">Not attending</string>
-    <string name="view_event_no_response_label">(No response)</string>
-    <string name="view_event_accept_button">Yes</string>
-    <string name="view_event_tentative_button">Maybe</string>
-    <string name="view_event_decline_button">No</string>
     
     <!-- Agenda View strings -->
-    <string name="agenda_when_label">When</string>
-    <string name="agenda_where_label">Where</string>
+    <skip />
+    <!-- This is shown as part of the heading at the top of a list of today's events. -->
     <string name="agenda_today">Today</string>
     
     <!-- ICS Import activity -->
+    <skip />
+    <!-- This is a abbreviation for 'Number of events' and is a label next to
+         an input for the user to enter the number of events to import. -->
     <string name="num_events">"Num events"</string>
 
     <!-- Button labels: -->
-    <string name="done_label">"Done"</string>
+    <skip />
+    <!-- This is the title of a popup window that is displayed when the user
+         edits a repeating event. -->
     <string name="edit_event_label">"Edit event"</string>
-    <string name="ok_label">"OK"</string>
+    <!-- The button label for deleting an event -->
     <string name="delete_label">"Delete"</string>
+    <!-- A menu item for deleting an event -->
     <string name="delete_event_label">"Delete event"</string>
+    <!-- The button label for saving an event -->
     <string name="save_label">Save</string>
+    <!-- The button label for discarding changes to an event -->
     <string name="discard_label">Discard changes</string>
+    <!-- The button label for importing events from another source to the phone -->
     <string name="import_label">"Import"</string>
-    <string name="cancel_label">"Cancel"</string>
-    <string name="more_options_label">"More options"</string>
-    <string name="view_label">"View"</string>
-    <string name="snooze_label">"Snooze"</string>
-    <string name="dismiss_label">"Dismiss"</string>
+
     <!-- Button labels on expanded notification reminders: -->
+    <skip />
+    <!-- The button label for making the reminder alarms go away temporarily.
+         The reminder alarms will fire off again in 5 minutes. -->
     <string name="snooze_all_label">"Snooze all"</string>
+    <!-- The button label for dismissing all the current reminder alarms. This
+         causes them to disappear from the notification screen. -->
     <string name="dismiss_all_label">"Dismiss all"</string>
 
-    <string name="calendar_item_calendar_text"></string>
     <!-- Repetition dialog options: -->
-    <string name="does_not_repeat">Does not repeat</string>
+    <skip />
+    <!-- A label in a multiple-choice list for the specifying that an event does
+         not repeat -->
+    <string name="does_not_repeat">One-time event</string>
+    <!-- A label in a multiple-choice list for the specifying that an event
+         repeats daily -->
     <string name="daily">Daily</string>
+    <!-- A label in a multiple-choice list for the specifying that an event
+         repeats every weekday (Monday through Friday) -->
     <string name="every_weekday">"Every weekday (Mon\u2013Fri)"</string>
+    <!-- A label in a multiple-choice list for the specifying that an event
+         repeats weekly on some day of the week.  For example,
+         'Weekly (every Tuesday)'. -->
     <string name="weekly">"Weekly (every <xliff:g id="days_of_week">%s</xliff:g>)"</string>
 
-    <!-- Example: "Monthly (every first Sunday)" -->
-    <!--   1: "first" -->
-    <!--   2: "Sunday" -->
+    <!-- Example: 'Monthly (every first Sunday)' -->
+    <!--   1st parameter is an ordinal number, like 'first' -->
+    <!--   2nd parameter is a day of the week, like 'Sunday' -->
     <string name="monthly_on_day_count">"Monthly (every <xliff:g id="ordinal_number">%1$s</xliff:g> <xliff:g id="day_of_week">%2$s</xliff:g>)"</string> 
     
+    <!-- Example: "Monthly (on day 15)" -->
     <string name="monthly_on_day">"Monthly (on day <xliff:g id="day_of_month">%s</xliff:g>)"</string>
+    <!-- Example: "Yearly (on April 15)" -->
     <string name="yearly">"Yearly (on <xliff:g id="dates">%s</xliff:g>)"</string>
+    <!-- This is a label for telling the user that this event repeats in 
+         custom (non-standard) way from the usual repeat rates (such as daily,
+         weekly, etc.) and that the user cannot change this on the phone
+         (but only on the web). -->
     <string name="custom">"Custom\u2026 (cannot customize on phone)"</string>
     
+    <!-- This is a choice in a list that the user sees when he tries to modify
+         a repeating event.  This choice says to change just this one instance
+         of this repeating event. -->
     <string name="modify_event">Change only this event.</string>
+    <!-- This is a choice in a list that the user sees when he tries to modify
+         a repeating event.  This choice says to change all occurrences of
+         this repeating event. -->
     <string name="modify_all">Change all events in the series.</string>
+    <!-- This is a choice in a list that the user sees when he tries to modify
+         a repeating event.  This choice says to change this instance and all
+         future occurrences of this repeating event. -->
     <string name="modify_all_following">Change this and all future events.</string>
     
     <!-- Dialogs -->
     <!-- Confirmation dialog message -->
+    <skip />
+    <!-- This is a confirmation message in a popup dialog that appears when the
+         user has asked to delete an event. The user still has a chance to cancel
+         this operation. -->
     <string name="delete_this_event_title">This event will be deleted.</string>
-    <!-- Confirmation dialog title -->
+    <!-- This is the title of a popup dialog that asks for confirmation before
+         deleting an event. -->
     <string name="delete_title">Delete</string>
 
+    <!-- This is the title of the screen for setting user preferences. -->
     <string name="preferences_title">"Settings"</string>
-    <!-- Title for settings section -->
+    <!-- This is the title of a section in the Settings screen for settings
+         related to viewing calendar events -->
     <string name="preferences_general_title">Calendar view setting</string>
-    <!-- Title for settings section -->
+    <!-- This is the title of a section in the Settings screen for settings
+         related to reminders for calendar events -->
     <string name="preferences_alerts_title">Reminder settings</string>
-    <!-- Settings check box label -->
+    <!-- Settings check box label to hide events that the user has declined to attend -->
     <string name="preferences_hide_declined_title">Hide declined events</string>
-    <!-- Settings option -->
+    <!-- Settings option to bring up a dialog that lets the user choose how
+         reminder notifications should occur. -->
     <string name="preferences_alerts_type_title">Set alerts &amp; notifications</string>
-    <!--  -->
-    <string name="preferences_alerts_type_dialog">Set reminder</string>
+    <!-- The title of a popup dialog that lets the user choose how
+         reminder notifications should occur. -->
+    <string name="preferences_alerts_type_dialog">Alerts &amp; notifications</string>
+    <!-- DO NOT TRANSLATE -->
     <string name="preferences_alerts_type_default">1</string>
-    <!-- Settings check box label -->
+    <!-- Settings check box label that specifies whether the phone should vibrate -->
     <string name="preferences_alerts_vibrate_title">Vibrate</string>
-    <!-- Settings option -->
-    <string name="preferences_alerts_sound_title">Sound</string>
     <!-- Title of ringtone selector dialog -->
     <string name="preferences_alerts_ringtone_title">Select ringtone</string>
-    <!-- Settings option -->
+    <!-- List item label for setting the default number of reminder minutes -->
     <string name="preferences_default_reminder_title">Set default reminder</string>
-    <!-- Title of default reminder dialog -->
-    <string name="preferences_default_reminder_dialog">Set default reminder</string>
-    <!-- Value of default reminder time -->
+    <!-- Title of dialog for setting the default number of reminder minutes -->
+    <string name="preferences_default_reminder_dialog">Default reminder time</string>
+    <!-- Default value for the number of reminder minutes -->
     <string name="preferences_default_reminder_default">10</string>
-    <!-- Screen title if user goes into Calendar before events have synced -->
-    <string name="no_calendars">Waiting for sync</string>
-    <!-- Appears on screen if user goes into Calendar before events have synced -->
-    <string name="no_calendars_msg">Your events will appear shortly.</string>
 </resources>
-
index 5a41f41..64dfb61 100644 (file)
 */
 -->
 <resources>
-    <style name="Activity" parent="android:Theme">
-        <item name="android:windowBackground">@null</item>
-    </style>
-
-    <style name="Activity.Day">
-        <item name="android:windowBackground">@null</item>
-    </style>
-
-
-    <style name="Activity.Week">
-        <item name="android:windowBackground">@null</item>
-    </style>
 
     <style name="Alert" parent="android:Theme.Dialog">
         <item name="android:windowBackground">@null</item>
     <style name="TextAppearance.MonthView_DayLabel">
         <item name="android:textSize">14sp</item>
         <item name="android:textStyle">bold</item>
-        <item name="android:textColor">#ffffffff</item>
-    </style>
-    
-    <style name="TextAppearance.AgendaView_TitleLabel">
-        <item name="android:textSize">14sp</item>
-        <item name="android:textStyle">bold</item>
-        <item name="android:textColor">@color/black</item>
+        <item name="android:textColor">@android:color/white</item>
     </style>
     
     <style name="TextAppearance.AgendaView_ValueLabel">
         <item name="android:textSize">14sp</item>
-        <item name="android:textColor">@color/black</item>
+        <item name="android:textColor">@android:color/black</item>
     </style>
     
     <style name="TextAppearance.EditEvent_Label">
         <item name="android:textStyle">bold</item>
     </style>
     
-    <style name="TextAppearance.EditEvent_Value">
-        <item name="android:textSize">14sp</item>
-    </style>
-    
     <style name="TextAppearance.Alert_Title">
         <item name="android:textSize">18sp</item>
-        <item name="android:textColor">@color/white</item>
+        <item name="android:textColor">@android:color/white</item>
     </style>
     
     <style name="TextAppearance.Alert_Label">
         <item name="android:textSize">14sp</item>
         <item name="android:textStyle">bold</item>
-        <item name="android:textColor">@color/white</item>
+        <item name="android:textColor">@android:color/white</item>
     </style>
     
     <style name="TextAppearance.Alert_Value">
         <item name="android:textSize">14sp</item>
-        <item name="android:textColor">@color/white</item>
-    </style>
-
-    <style name="TextAppearance.title">
-        <item name="android:textSize">16sp</item>
-        <item name="android:textStyle">bold</item>
-        <item name="android:textColor">#ffffffff</item>
+        <item name="android:textColor">@android:color/white</item>
     </style>
 
 </resources>
index 40744aa..0867327 100644 (file)
@@ -30,13 +30,13 @@ import android.database.Cursor;
 import android.net.Uri;
 import android.os.Bundle;
 import android.os.Handler;
-import android.pim.Time;
 import android.preference.PreferenceManager;
 import android.provider.Calendar;
 import android.provider.Calendar.Attendees;
 import android.provider.Calendar.Calendars;
 import android.provider.Calendar.Events;
 import android.provider.Calendar.Instances;
+import android.text.format.Time;
 import android.view.KeyEvent;
 import android.view.Menu;
 import android.view.MenuItem;
index 3ec576b..b7fefbd 100644 (file)
@@ -22,9 +22,9 @@ import android.content.res.Resources;
 import android.database.Cursor;
 import android.graphics.PorterDuff;
 import android.net.Uri;
-import android.pim.DateFormat;
-import android.pim.DateUtils;
 import android.provider.Calendar.Reminders;
+import android.text.format.DateFormat;
+import android.text.format.DateUtils;
 import android.view.LayoutInflater;
 import android.view.View;
 import android.widget.ImageView;
@@ -83,7 +83,7 @@ public class AgendaAdapter extends ResourceCursorAdapter {
         if (DateFormat.is24HourFormat(context)) {
             flags |= DateUtils.FORMAT_24HOUR;
         }
-        whenString = DateUtils.formatDateRange(begin, end, flags);
+        whenString = DateUtils.formatDateRange(context, begin, end, flags);
         when.setText(whenString);
         
         // Repeating info
index a695693..d774efb 100644 (file)
@@ -18,8 +18,8 @@ package com.android.calendar;
 
 import android.content.Context;
 import android.database.Cursor;
-import android.pim.DateUtils;
-import android.pim.Time;
+import android.text.format.DateUtils;
+import android.text.format.Time;
 import android.view.LayoutInflater;
 import android.view.View;
 import android.view.ViewGroup;
@@ -123,7 +123,7 @@ public class AgendaByDayAdapter extends BaseAdapter {
             Time date = mTime;
             long millis = date.setJulianDay(row.mData);
             int flags = DateUtils.FORMAT_NUMERIC_DATE;
-            holder.dateView.setText(DateUtils.formatDateRange(millis, millis, flags));
+            holder.dateView.setText(DateUtils.formatDateRange(mContext, millis, millis, flags));
 
             if (row.mData == mTodayJulianDay) {
                 holder.dayOfWeekView.setText(R.string.agenda_today);
index 52b1a7d..913bd85 100644 (file)
@@ -150,12 +150,9 @@ public class AlertActivity extends Activity {
         requestWindowFeature(Window.FEATURE_NO_TITLE);
         setContentView(R.layout.alert_activity);
         
-        WindowManager.LayoutParams lp = new WindowManager.LayoutParams(
-                ViewGroup.LayoutParams.FILL_PARENT,             // width
-                ViewGroup.LayoutParams.FILL_PARENT,             // height
-                WindowManager.LayoutParams.TYPE_TOAST,          // type
-                WindowManager.LayoutParams.FLAG_BLUR_BEHIND,    // flags
-                PixelFormat.TRANSLUCENT);                       // format
+        WindowManager.LayoutParams lp = getWindow().getAttributes();
+        lp.width = ViewGroup.LayoutParams.FILL_PARENT;
+        lp.height = ViewGroup.LayoutParams.FILL_PARENT;
         
         // Get the dim amount from the theme
         TypedArray a = obtainStyledAttributes(com.android.internal.R.styleable.Theme);
@@ -163,6 +160,7 @@ public class AlertActivity extends Activity {
         a.recycle();
 
         getWindow().setAttributes(lp);
+        getWindow().addFlags(WindowManager.LayoutParams.FLAG_BLUR_BEHIND);
         
         mResolver = getContentResolver();
         mQueryHandler = new QueryHandler(mResolver);
index 102e9ff..0f0a49e 100644 (file)
@@ -20,8 +20,8 @@ import android.content.Context;
 import android.content.res.Resources;
 import android.database.Cursor;
 import android.graphics.PorterDuff;
-import android.pim.DateFormat;
-import android.pim.DateUtils;
+import android.text.format.DateFormat;
+import android.text.format.DateUtils;
 import android.view.View;
 import android.widget.ImageView;
 import android.widget.ResourceCursorAdapter;
@@ -91,7 +91,7 @@ public class AlertAdapter extends ResourceCursorAdapter {
         if (DateFormat.is24HourFormat(context)) {
             flags |= DateUtils.FORMAT_24HOUR;
         }
-        when = DateUtils.formatDateRange(startMillis, endMillis, flags);
+        when = DateUtils.formatDateRange(context, startMillis, endMillis, flags);
         textView = (TextView) view.findViewById(R.id.when);
         textView.setText(when);
         
index 13f808b..62222ff 100644 (file)
@@ -33,7 +33,6 @@ import android.os.IBinder;
 import android.os.Looper;
 import android.os.Message;
 import android.os.Process;
-import android.pim.DateUtils;
 import android.preference.PreferenceManager;
 import android.provider.Calendar;
 import android.provider.Calendar.Attendees;
@@ -41,6 +40,7 @@ import android.provider.Calendar.CalendarAlerts;
 import android.provider.Calendar.Instances;
 import android.provider.Calendar.Reminders;
 import android.text.TextUtils;
+import android.text.format.DateUtils;
 import android.util.Config;
 import android.util.Log;
 import android.view.LayoutInflater;
@@ -51,7 +51,6 @@ import android.view.View;
  */
 public class AlertService extends Service {
     private static final String TAG = "AlertService";
-    private static final boolean localLOGV = false || Config.LOGV;
     
     private volatile Looper mServiceLooper;
     private volatile ServiceHandler mServiceHandler;
@@ -108,7 +107,9 @@ public class AlertService extends Service {
 
         // The Uri specifies an entry in the CalendarAlerts table
         Uri alertUri = Uri.parse(bundle.getString("uri"));
-        if (localLOGV) Log.v(TAG, "uri: " + alertUri);
+        if (Log.isLoggable(TAG, Log.DEBUG)) {
+            Log.d(TAG, "uri: " + alertUri);
+        }
 
         ContentResolver cr = getContentResolver();
         Cursor alertCursor = cr.query(alertUri, ALERT_PROJECTION,
@@ -123,7 +124,9 @@ public class AlertService extends Service {
         try {
             if (alertCursor == null || !alertCursor.moveToFirst()) {
                 // This can happen if the event was deleted.
-                if (localLOGV) Log.v(TAG, "alert not found");
+                if (Log.isLoggable(TAG, Log.DEBUG)) {
+                    Log.d(TAG, "alert not found");
+                }
                 return;
             }
             alertId = alertCursor.getLong(ALERT_INDEX_ID);
@@ -152,7 +155,9 @@ public class AlertService extends Service {
         
         // Do not show an alert if the event was declined
         if (declined) {
-            if (localLOGV) Log.v(TAG, "event declined, alert cancelled");
+            if (Log.isLoggable(TAG, Log.DEBUG)) {
+                Log.d(TAG, "event declined, alert cancelled");
+            }
             return;
         }
         
@@ -173,7 +178,9 @@ public class AlertService extends Service {
             if (instanceCursor == null || !instanceCursor.moveToFirst()) {
                 // Delete this alarm from the CalendarAlerts table
                 cr.delete(alertUri, null /* selection */, null /* selection args */);
-                if (localLOGV) Log.v(TAG, "instance not found, alert cancelled");
+                if (Log.isLoggable(TAG, Log.DEBUG)) {
+                    Log.d(TAG, "instance not found, alert cancelled");
+                }
                 return;
             }
             instanceBegin = instanceCursor.getLong(INSTANCES_INDEX_BEGIN);
@@ -196,7 +203,9 @@ public class AlertService extends Service {
                 if (reminderCursor == null || reminderCursor.getCount() == 0) {
                     // Delete this alarm from the CalendarAlerts table
                     cr.delete(alertUri, null /* selection */, null /* selection args */);
-                    if (localLOGV) Log.v(TAG, "reminder not found, alert cancelled");
+                    if (Log.isLoggable(TAG, Log.DEBUG)) {
+                        Log.d(TAG, "reminder not found, alert cancelled");
+                    }
                     return;
                 }
             } finally {
@@ -211,7 +220,9 @@ public class AlertService extends Service {
         if (alarmTime > instanceEnd) {
             // Delete this alarm from the CalendarAlerts table
             cr.delete(alertUri, null /* selection */, null /* selection args */);
-            if (localLOGV) Log.v(TAG, "event ended, alert cancelled");
+            if (Log.isLoggable(TAG, Log.DEBUG)) {
+                Log.d(TAG, "event ended, alert cancelled");
+            }
             return;
         }
 
@@ -227,7 +238,9 @@ public class AlertService extends Service {
             if (computedAlarmTime > alarmTime) {
                 // Delete this alarm from the CalendarAlerts table
                 cr.delete(alertUri, null /* selection */, null /* selection args */);
-                if (localLOGV) Log.v(TAG, "event postponed, alert cancelled");
+                if (Log.isLoggable(TAG, Log.DEBUG)) {
+                    Log.d(TAG, "event postponed, alert cancelled");
+                }
                 return;
             }
             
@@ -250,7 +263,9 @@ public class AlertService extends Service {
                     if (alertCursor.getCount() > 0) {
                         // Delete this alarm from the CalendarAlerts table
                         cr.delete(alertUri, null /* selection */, null /* selection args */);
-                        if (localLOGV) Log.v(TAG, "duplicate alarm, alert cancelled");
+                        if (Log.isLoggable(TAG, Log.DEBUG)) {
+                            Log.d(TAG, "duplicate alarm, alert cancelled");
+                        }
                         return;
                     }
                 } finally {
@@ -264,7 +279,9 @@ public class AlertService extends Service {
         alertCursor = CalendarAlerts.query(cr, ALERT_PROJECTION, selection, null);
         
         if (alertCursor == null || alertCursor.getCount() == 0) {
-            if (localLOGV) Log.v(TAG, "no fired alarms found");
+            if (Log.isLoggable(TAG, Log.DEBUG)) {
+                Log.d(TAG, "no fired alarms found");
+            }
             return;
         }
 
@@ -283,7 +300,9 @@ public class AlertService extends Service {
                     // multiple reminders.  Do not count this as a separate
                     // reminder.  But we do want to sound the alarm and vibrate
                     // the phone, if necessary.
-                    if (localLOGV) Log.v(TAG, "multiple alarms for this event");
+                    if (Log.isLoggable(TAG, Log.DEBUG)) {
+                        Log.d(TAG, "multiple alarms for this event");
+                    }
                     numReminders -= 1;
                 }
             }
@@ -291,7 +310,9 @@ public class AlertService extends Service {
             alertCursor.close();
         }
         
-        if (localLOGV) Log.v(TAG, "creating new alarm notification, numReminders: " + numReminders);
+        if (Log.isLoggable(TAG, Log.DEBUG)) {
+            Log.d(TAG, "creating new alarm notification, numReminders: " + numReminders);
+        }
         Notification notification = AlertReceiver.makeNewAlertNotification(this, eventName,
                 location, numReminders);
         
@@ -304,7 +325,9 @@ public class AlertService extends Service {
                 CalendarPreferenceActivity.ALERT_TYPE_STATUS_BAR);
         
         if (reminderType.equals(CalendarPreferenceActivity.ALERT_TYPE_OFF)) {
-            if (localLOGV) Log.v(TAG, "alert preference is OFF");
+            if (Log.isLoggable(TAG, Log.DEBUG)) {
+                Log.d(TAG, "alert preference is OFF");
+            }
             return;
         }
         
index a99ba61..c02c0a3 100644 (file)
@@ -28,8 +28,8 @@ import android.content.IntentFilter;
 import android.database.ContentObserver;
 import android.os.Bundle;
 import android.os.Handler;
-import android.pim.Time;
 import android.provider.Calendar;
+import android.text.format.Time;
 import android.view.GestureDetector;
 import android.view.Menu;
 import android.view.MenuItem;
index 9126d6e..1606cdf 100644 (file)
@@ -39,12 +39,12 @@ import android.graphics.Path.Direction;
 import android.graphics.drawable.Drawable;
 import android.net.Uri;
 import android.os.Handler;
-import android.pim.DateFormat;
-import android.pim.DateUtils;
-import android.pim.Time;
 import android.provider.Calendar.Attendees;
 import android.provider.Calendar.Calendars;
 import android.provider.Calendar.Events;
+import android.text.format.DateFormat;
+import android.text.format.DateUtils;
+import android.text.format.Time;
 import android.util.Log;
 import android.view.ContextMenu;
 import android.view.Gravity;
@@ -526,7 +526,7 @@ public class CalendarView extends View
                     | DateUtils.FORMAT_SHOW_DATE | DateUtils.FORMAT_ABBREV_MONTH;
         }
 
-        mDateRange = DateUtils.formatDateRange(start, end, flags);
+        mDateRange = DateUtils.formatDateRange(mParentActivity, start, end, flags);
         // Do not set the title here because this is called when executing
         // initNextView() to prepare the Day view when sliding the finger
         // horizontally but we don't always want to change the title.  And
@@ -1856,8 +1856,8 @@ public class CalendarView extends View
                 if (DateFormat.is24HourFormat(mContext)) {
                     flags |= DateUtils.FORMAT_24HOUR;
                 }
-                String timeRange = DateUtils.formatDateRange(ev.startMillis, ev.endMillis,
-                                flags);
+                String timeRange = DateUtils.formatDateRange(mParentActivity,
+                        ev.startMillis, ev.endMillis, flags);
                 Log.i("Cal", "left: " + left + " right: " + right + " top: " + top
                         + " bottom: " + bottom + " ev: " + timeRange + " " + ev.title);
             }
@@ -2236,7 +2236,8 @@ public class CalendarView extends View
         if (DateFormat.is24HourFormat(mContext)) {
             flags |= DateUtils.FORMAT_24HOUR;
         }
-        String timeRange = DateUtils.formatDateRange(event.startMillis, event.endMillis, flags);
+        String timeRange = DateUtils.formatDateRange(mParentActivity,
+                event.startMillis, event.endMillis, flags);
         TextView timeView = (TextView) mPopupView.findViewById(R.id.time);
         timeView.setText(timeRange);
 
@@ -2750,7 +2751,8 @@ public class CalendarView extends View
 //            for (Event ev : mSelectedEvents) {
 //                int flags = DateUtils.FORMAT_SHOW_TIME | DateUtils.FORMAT_ABBREV_ALL
 //                        | DateUtils.FORMAT_CAP_NOON_MIDNIGHT;
-//                String timeRange = formatDateRange(mResources, ev.startMillis, ev.endMillis, flags);
+//                String timeRange = formatDateRange(mParentActivity,
+//                        ev.startMillis, ev.endMillis, flags);
 //
 //                Log.i("Cal", "  " + timeRange + " " + ev.title);
 //            }
index 34cc7d5..d0e757b 100644 (file)
@@ -19,7 +19,7 @@ package com.android.calendar;
 import android.app.DatePickerDialog;
 import android.app.DatePickerDialog.OnDateSetListener;
 import android.content.Context;
-import android.pim.Time;
+import android.text.format.Time;
 import android.util.AttributeSet;
 import android.view.KeyEvent;
 import android.view.View;
index 7f958b7..8141d20 100644 (file)
@@ -25,9 +25,9 @@ import android.content.DialogInterface;
 import android.database.Cursor;
 import android.net.Uri;
 import android.pim.EventRecurrence;
-import android.pim.Time;
 import android.provider.Calendar;
 import android.provider.Calendar.Events;
+import android.text.format.Time;
 
 /**
  * A helper class for deleting events.  If a normal event is selected for
@@ -52,6 +52,7 @@ import android.provider.Calendar.Events;
  */
 public class DeleteEventHelper {
     
+    private static final String TAG = "DeleteEventHelper";
     private final Activity mParent;
     private final ContentResolver mContentResolver;
     
@@ -84,9 +85,10 @@ public class DeleteEventHelper {
         Events._SYNC_ID,
         Events.EVENT_TIMEZONE,
     };
-    
+
     private int mEventIndexId;
     private int mEventIndexRrule;
+    private String mSyncId;
     
     public DeleteEventHelper(Activity parent, boolean exitWhenDone) {
         mParent = parent;
@@ -195,6 +197,8 @@ public class DeleteEventHelper {
         mCursor = cursor;
         mEventIndexId = mCursor.getColumnIndexOrThrow(Events._ID);
         mEventIndexRrule = mCursor.getColumnIndexOrThrow(Events.RRULE);
+        int eventIndexSyncId = mCursor.getColumnIndexOrThrow(Events._SYNC_ID);
+        mSyncId = mCursor.getString(eventIndexSyncId);
         
         // If this is a repeating event, then pop up a dialog asking the
         // user if they want to delete all of the repeating events or
@@ -206,25 +210,28 @@ public class DeleteEventHelper {
             .setTitle(R.string.delete_title)
             .setMessage(R.string.delete_this_event_title)
             .setIcon(android.R.drawable.ic_dialog_alert)
-            .setPositiveButton(R.string.ok_label, mDeleteNormalDialogListener)
-            .setNegativeButton(R.string.cancel_label, null)
+            .setPositiveButton(android.R.string.ok, mDeleteNormalDialogListener)
+            .setNegativeButton(android.R.string.cancel, null)
             .show();
         } else {
             // This is a repeating event.  Pop up a dialog asking which events
             // to delete.
+            int labelsArrayId = R.array.delete_repeating_labels;
+            if (mSyncId == null) {
+                labelsArrayId = R.array.delete_repeating_labels_no_selected;
+            }
             new AlertDialog.Builder(mParent)
             .setTitle(R.string.delete_title)
             .setIcon(android.R.drawable.ic_dialog_alert)
-            .setSingleChoiceItems(R.array.delete_repeating_labels, which, mDeleteListListener)
-            .setPositiveButton(R.string.ok_label, mDeleteRepeatingDialogListener)
-            .setNegativeButton(R.string.cancel_label, null)
+            .setSingleChoiceItems(labelsArrayId, which, mDeleteListListener)
+            .setPositiveButton(android.R.string.ok, mDeleteRepeatingDialogListener)
+            .setNegativeButton(android.R.string.cancel, null)
             .show();
         }
     }
     
     private void deleteRepeatingEvent(int which) {
         int indexDtstart = mCursor.getColumnIndexOrThrow(Events.DTSTART);
-        int indexSyncId = mCursor.getColumnIndexOrThrow(Events._SYNC_ID);
         int indexAllDay = mCursor.getColumnIndexOrThrow(Events.ALL_DAY);
         int indexTitle = mCursor.getColumnIndexOrThrow(Events.TITLE);
         int indexTimezone = mCursor.getColumnIndexOrThrow(Events.EVENT_TIMEZONE);
@@ -235,9 +242,27 @@ public class DeleteEventHelper {
         long dtstart = mCursor.getLong(indexDtstart);
         long id = mCursor.getInt(mEventIndexId);
 
+        // If the repeating event has not been given a sync id from the server
+        // yet, then we can't delete a single instance of this event.  (This is
+        // a deficiency in the CalendarProvider and sync code.) We checked for
+        // that when creating the list of items in the dialog and we removed
+        // the first element ("DELETE_SELECTED") from the dialog in that case.
+        // The "which" value is a 0-based index into the list of items, where
+        // the "DELETE_SELECTED" item is at index 0.
+        if (mSyncId == null) {
+            which += 1;
+        }
+        
         switch (which) {
             case DELETE_SELECTED:
             {
+                // If we are deleting the first event in the series, then
+                // instead of creating a recurrence exception, just change
+                // the start time of the recurrence.
+                if (dtstart == mStartMillis) {
+                    // TODO
+                }
+                
                 // Create a recurrence exception by creating a new event
                 // with the status "cancelled".
                 ContentValues values = new ContentValues();
@@ -247,14 +272,14 @@ public class DeleteEventHelper {
                 String title = mCursor.getString(indexTitle);
                 values.put(Events.TITLE, title);
                 
-                String syncId = mCursor.getString(indexSyncId);
                 String timezone = mCursor.getString(indexTimezone);
                 int calendarId = mCursor.getInt(indexCalendarId);
                 values.put(Events.EVENT_TIMEZONE, timezone);
+                values.put(Events.ALL_DAY, allDay ? 1 : 0);
                 values.put(Events.CALENDAR_ID, calendarId);
                 values.put(Events.DTSTART, mStartMillis);
                 values.put(Events.DTEND, mEndMillis);
-                values.put(Events.ORIGINAL_EVENT, syncId);
+                values.put(Events.ORIGINAL_EVENT, mSyncId);
                 values.put(Events.ORIGINAL_INSTANCE_TIME, mStartMillis);
                 values.put(Events.STATUS, Events.STATUS_CANCELED);
                 
index 8c11974..c92473d 100644 (file)
@@ -18,40 +18,44 @@ package com.android.calendar;
 
 import static android.provider.Calendar.EVENT_BEGIN_TIME;
 import static android.provider.Calendar.EVENT_END_TIME;
+
 import android.app.Activity;
 import android.app.AlertDialog;
 import android.app.DatePickerDialog;
+import android.app.ProgressDialog;
 import android.app.TimePickerDialog;
 import android.app.DatePickerDialog.OnDateSetListener;
 import android.app.TimePickerDialog.OnTimeSetListener;
+import android.content.AsyncQueryHandler;
 import android.content.ContentResolver;
 import android.content.ContentUris;
 import android.content.ContentValues;
 import android.content.Context;
 import android.content.DialogInterface;
-import android.content.DialogInterface.OnClickListener;
 import android.content.Intent;
 import android.content.SharedPreferences;
 import android.content.DialogInterface.OnCancelListener;
+import android.content.DialogInterface.OnClickListener;
 import android.content.res.Resources;
 import android.database.Cursor;
 import android.net.Uri;
 import android.os.Bundle;
-import android.pim.DateFormat;
-import android.pim.DateUtils;
 import android.pim.EventRecurrence;
-import android.pim.Time;
 import android.preference.PreferenceManager;
 import android.provider.Calendar.Calendars;
 import android.provider.Calendar.Events;
 import android.provider.Calendar.Reminders;
 import android.text.TextUtils;
+import android.text.format.DateFormat;
+import android.text.format.DateUtils;
+import android.text.format.Time;
 import android.util.Log;
 import android.view.KeyEvent;
 import android.view.LayoutInflater;
 import android.view.Menu;
 import android.view.MenuItem;
 import android.view.View;
+import android.view.Window;
 import android.widget.ArrayAdapter;
 import android.widget.Button;
 import android.widget.CheckBox;
@@ -63,12 +67,15 @@ import android.widget.ResourceCursorAdapter;
 import android.widget.Spinner;
 import android.widget.TextView;
 import android.widget.TimePicker;
+import android.widget.Toast;
 
 import java.util.ArrayList;
 import java.util.Arrays;
 import java.util.Calendar;
+import java.util.TimeZone;
 
-public class EditEvent extends Activity implements View.OnClickListener {
+public class EditEvent extends Activity implements View.OnClickListener,
+        DialogInterface.OnCancelListener, DialogInterface.OnClickListener {
     /**
      * This is the symbolic name for the key used to pass in the boolean
      * for creating all-day events that is part of the extra data of the intent.
@@ -126,7 +133,7 @@ public class EditEvent extends Activity implements View.OnClickListener {
     private static final int CALENDARS_INDEX_DISPLAY_NAME = 1;
     private static final int CALENDARS_INDEX_TIMEZONE = 2;
     private static final String CALENDARS_WHERE = Calendars.ACCESS_LEVEL + ">=" +
-            Calendars.CONTRIBUTOR_ACCESS;
+            Calendars.CONTRIBUTOR_ACCESS + " AND " + Calendars.SYNC_EVENTS + "=1";
 
     private static final String[] REMINDERS_PROJECTION = new String[] {
             Reminders._ID,      // 0
@@ -150,6 +157,8 @@ public class EditEvent extends Activity implements View.OnClickListener {
     private static final int MODIFY_SELECTED = 1;
     private static final int MODIFY_ALL = 2;
     private static final int MODIFY_ALL_FOLLOWING = 3;
+    
+    private static final int DAY_IN_SECONDS = 24 * 60 * 60;
 
     private int mFirstDayOfWeek; // cached in onCreate
     private Uri mUri;
@@ -179,6 +188,10 @@ public class EditEvent extends Activity implements View.OnClickListener {
 
     private EventRecurrence mEventRecurrence = new EventRecurrence();
     private String mRrule;
+    private boolean mCalendarsQueryComplete;
+    private boolean mSaveAfterQueryComplete;
+    private ProgressDialog mLoadingCalendarsDialog;
+    private AlertDialog mNoCalendarsDialog;
     private ContentValues mInitialValues;
 
     /**
@@ -201,7 +214,8 @@ public class EditEvent extends Activity implements View.OnClickListener {
     private int mDefaultReminderMinutes;
 
     private DeleteEventHelper mDeleteEventHelper;
-
+    private QueryHandler mQueryHandler;
+    
     /* This class is used to update the time buttons. */
     private class TimeListener implements OnTimeSetListener {
         private View mView;
@@ -355,8 +369,9 @@ public class EditEvent extends Activity implements View.OnClickListener {
     // on the "remove reminder" button.
     public void onClick(View v) {
         if (v == mSaveButton) {
-            save();
-            finish();
+            if (save()) {
+                finish();
+            }
             return;
         }
         
@@ -392,9 +407,84 @@ public class EditEvent extends Activity implements View.OnClickListener {
         updateRemindersVisibility();
     }
 
+    // This is called if the user cancels a popup dialog.  There are two
+    // dialogs: the "Loading calendars" dialog, and the "No calendars"
+    // dialog.  The "Loading calendars" dialog is shown if there is a delay
+    // in loading the calendars (needed when creating an event) and the user
+    // tries to save the event before the calendars have finished loading.
+    // The "No calendars" dialog is shown if there are no syncable calendars.
+    public void onCancel(DialogInterface dialog) {
+        if (dialog == mLoadingCalendarsDialog) {
+            mSaveAfterQueryComplete = false;
+        } else if (dialog == mNoCalendarsDialog) {
+            finish();
+        }
+    }
+
+    // This is called if the user clicks on a dialog button.
+    public void onClick(DialogInterface dialog, int which) {
+        if (dialog == mNoCalendarsDialog) {
+            finish();
+        }
+    }
+    
+    private class QueryHandler extends AsyncQueryHandler {
+        public QueryHandler(ContentResolver cr) {
+            super(cr);
+        }
+
+        @Override
+        protected void onQueryComplete(int token, Object cookie, Cursor cursor) {
+            // If the Activity is finishing, then close the cursor.
+            // Otherwise, use the new cursor in the adapter.
+            if (isFinishing()) {
+                stopManagingCursor(cursor);
+                cursor.close();
+            } else {
+                mCalendarsCursor = cursor;
+                startManagingCursor(cursor);
+                
+                // Stop the spinner
+                getWindow().setFeatureInt(Window.FEATURE_INDETERMINATE_PROGRESS,
+                        Window.PROGRESS_VISIBILITY_OFF);
+
+                // If there are no syncable calendars, then we cannot allow
+                // creating a new event.
+                if (cursor.getCount() == 0) {
+                    // Cancel the "loading calendars" dialog if it exists
+                    if (mSaveAfterQueryComplete) {
+                        mLoadingCalendarsDialog.cancel();
+                    }
+                    
+                    // Create an error message for the user that, when clicked,
+                    // will exit this activity without saving the event.
+                    AlertDialog.Builder builder = new AlertDialog.Builder(EditEvent.this);
+                    builder.setTitle(R.string.no_syncable_calendars)
+                        .setIcon(android.R.drawable.ic_dialog_alert)
+                        .setMessage(R.string.no_calendars_found)
+                        .setPositiveButton(android.R.string.ok, EditEvent.this)
+                        .setOnCancelListener(EditEvent.this);
+                    mNoCalendarsDialog = builder.show();
+                    return;
+                }
+
+                // populate the calendars spinner
+                CalendarsAdapter adapter = new CalendarsAdapter(EditEvent.this, mCalendarsCursor);
+                mCalendarsSpinner.setAdapter(adapter);
+                mCalendarsQueryComplete = true;
+                if (mSaveAfterQueryComplete) {
+                    mLoadingCalendarsDialog.cancel();
+                    save();
+                    finish();
+                }
+            }
+        }
+    }
+
     @Override
     protected void onCreate(Bundle icicle) {
         super.onCreate(icicle);
+        requestWindowFeature(Window.FEATURE_INDETERMINATE_PROGRESS);
         setContentView(R.layout.edit_event);
 
         mFirstDayOfWeek = Calendar.getInstance().getFirstDayOfWeek();
@@ -407,6 +497,11 @@ public class EditEvent extends Activity implements View.OnClickListener {
 
         if (mUri != null) {
             mEventCursor = managedQuery(mUri, EVENT_PROJECTION, null, null);
+            if (mEventCursor == null || mEventCursor.getCount() == 0) {
+                // The cursor is empty. This can happen if the event was deleted.
+                finish();
+                return;
+            }
         }
 
         long begin = intent.getLongExtra(EVENT_BEGIN_TIME, 0);
@@ -419,18 +514,29 @@ public class EditEvent extends Activity implements View.OnClickListener {
             allDay = mEventCursor.getInt(EVENT_INDEX_ALL_DAY) != 0;
             String rrule = mEventCursor.getString(EVENT_INDEX_RRULE);
             String timezone = mEventCursor.getString(EVENT_INDEX_TIMEZONE);
+            long calendarId = mEventCursor.getInt(EVENT_INDEX_CALENDAR_ID);
             
             // Remember the initial values
             mInitialValues = new ContentValues();
             mInitialValues.put(EVENT_BEGIN_TIME, begin);
             mInitialValues.put(EVENT_END_TIME, end);
-            mInitialValues.put(Events.ALL_DAY, allDay);
+            mInitialValues.put(Events.ALL_DAY, allDay ? 1 : 0);
             mInitialValues.put(Events.RRULE, rrule);
             mInitialValues.put(Events.EVENT_TIMEZONE, timezone);
+            mInitialValues.put(Events.CALENDAR_ID, calendarId);
         } else {
             // We are creating a new event, so set the default from the
             // intent (if specified).
             allDay = intent.getBooleanExtra(EVENT_ALL_DAY, false);
+            
+            // Start the spinner
+            getWindow().setFeatureInt(Window.FEATURE_INDETERMINATE_PROGRESS,
+                    Window.PROGRESS_VISIBILITY_ON);
+
+            // Start a query in the background to read the list of calendars
+            mQueryHandler = new QueryHandler(getContentResolver());
+            mQueryHandler.startQuery(0, null, Calendars.CONTENT_URI, CALENDARS_PROJECTION,
+                    CALENDARS_WHERE, null /* selection args */, null /* sort order */);
         }
 
         // If the event is all-day, read the times in UTC timezone
@@ -462,9 +568,6 @@ public class EditEvent extends Activity implements View.OnClickListener {
             }
         }
 
-        mCalendarsCursor = managedQuery(Calendars.CONTENT_URI, CALENDARS_PROJECTION,
-                CALENDARS_WHERE, null);
-
         // cache all the widgets
         mTitleTextView = (TextView) findViewById(R.id.title);
         mLocationTextView = (TextView) findViewById(R.id.location);
@@ -578,27 +681,67 @@ public class EditEvent extends Activity implements View.OnClickListener {
         updateRemindersVisibility();
 
         mDeleteEventHelper = new DeleteEventHelper(this, true /* exit when done */);
+
+        if (mEventCursor == null) {
+            // Allow the intent to specify the fields in the event.
+            // This will allow other apps to create events easily.
+            initFromIntent(intent);
+        }
+    }
+    
+    private void initFromIntent(Intent intent) {
+        String title = intent.getStringExtra(Events.TITLE);
+        if (title != null) {
+            mTitleTextView.setText(title);
+        }
+        
+        String location = intent.getStringExtra(Events.EVENT_LOCATION);
+        if (location != null) {
+            mLocationTextView.setText(location);
+        }
+        
+        String description = intent.getStringExtra(Events.DESCRIPTION);
+        if (description != null) {
+            mDescriptionTextView.setText(description);
+        }
+        
+        int availability = intent.getIntExtra(Events.TRANSPARENCY, -1);
+        if (availability != -1) {
+            mAvailabilitySpinner.setSelection(availability);
+        }
+        
+        int visibility = intent.getIntExtra(Events.VISIBILITY, -1);
+        if (visibility != -1) {
+            mVisibilitySpinner.setSelection(visibility);
+        }
+        
+        String rrule = intent.getStringExtra(Events.RRULE);
+        if (rrule != null) {
+            mRrule = rrule;
+            mEventRecurrence.parse(rrule);
+        }
     }
 
     @Override
     protected void onResume() {
         super.onResume();
 
-        // populate the calendars spinner
-        mCalendarsSpinner = (Spinner) findViewById(R.id.calendars);
-        CalendarsAdapter adapter = new CalendarsAdapter(this, mCalendarsCursor);
-        mCalendarsSpinner.setAdapter(adapter);
-
+        if (mUri != null) {
+            if (mEventCursor == null || mEventCursor.getCount() == 0) {
+                // The cursor is empty. This can happen if the event was deleted.
+                finish();
+                return;
+            }
+        }
+        
         if (mEventCursor != null) {
             Cursor cursor = mEventCursor;
             cursor.moveToFirst();
 
             mRrule = cursor.getString(EVENT_INDEX_RRULE);
-
             String title = cursor.getString(EVENT_INDEX_TITLE);
             String description = cursor.getString(EVENT_INDEX_DESCRIPTION);
             String location = cursor.getString(EVENT_INDEX_EVENT_LOCATION);
-            long calendarId = cursor.getLong(EVENT_INDEX_CALENDAR_ID);
             int availability = cursor.getInt(EVENT_INDEX_TRANSPARENCY);
             int visibility = cursor.getInt(EVENT_INDEX_VISIBILITY);
             if (visibility > 0) {
@@ -669,17 +812,8 @@ public class EditEvent extends Activity implements View.OnClickListener {
             mAvailabilitySpinner.setSelection(availability);
             mVisibilitySpinner.setSelection(visibility);
 
-            // If there is a calendarId set, move the spinner to the proper
-            // position and hide the spinner, since this is an existing event.
-            if (calendarId != -1) {
-                int count = adapter.getCount();
-                for (int pos = 0 ; pos < count ; pos++) {
-                    long rowID = adapter.getItemId(pos);
-                    if (rowID == calendarId) {
-                        mCalendarsSpinner.setSelection(pos);
-                    }
-                }
-            }
+            // This is an existing event so hide the calendar spinner
+            // since we can't change the calendar.
             View calendarSeparator = findViewById(R.id.calendar_separator);
             View calendarLabel = findViewById(R.id.calendar_label);
             calendarSeparator.setVisibility(View.GONE);
@@ -788,7 +922,11 @@ public class EditEvent extends Activity implements View.OnClickListener {
                 // title, location and description are all empty, in order to
                 // prevent accidental "no subject" event creations.
                 if (mUri != null || !isEmpty()) {
-                    save();
+                    if (!save()) {
+                        // We cannot exit this activity because the calendars
+                        // are still loading.
+                        return true;
+                    }
                 }
                 break;
         }
@@ -860,7 +998,7 @@ public class EditEvent extends Activity implements View.OnClickListener {
         if (DateFormat.is24HourFormat(this)) {
             flags |= DateUtils.FORMAT_24HOUR;
         }
-        repeatArray.add(String.format(format, DateUtils.formatDateRange(when, when, flags)));
+        repeatArray.add(String.format(format, DateUtils.formatDateTime(this, when, flags)));
         recurrenceIndexes.add(REPEATS_YEARLY);
 
         if (isCustomRecurrence) {
@@ -1020,7 +1158,7 @@ public class EditEvent extends Activity implements View.OnClickListener {
         int flags = DateUtils.FORMAT_SHOW_DATE | DateUtils.FORMAT_SHOW_YEAR |
                 DateUtils.FORMAT_SHOW_WEEKDAY | DateUtils.FORMAT_ABBREV_MONTH |
                 DateUtils.FORMAT_ABBREV_WEEKDAY;
-        view.setText(DateUtils.formatDateRange(millis, millis, flags));
+        view.setText(DateUtils.formatDateTime(this, millis, flags));
     }
 
     private void setTime(TextView view, long millis) {
@@ -1028,16 +1166,38 @@ public class EditEvent extends Activity implements View.OnClickListener {
         if (DateFormat.is24HourFormat(this)) {
             flags |= DateUtils.FORMAT_24HOUR;
         }
-        view.setText(DateUtils.formatDateRange(millis, millis, flags));
+        view.setText(DateUtils.formatDateTime(this, millis, flags));
     }
 
-    private void save() {
-        // Avoid saving if the calendars cursor is empty. This shouldn't ever
-        // happen since the setup wizard should ensure the user has a calendar.
-        if (mCalendarsCursor == null || mCalendarsCursor.getCount() == 0) {
-            Log.w("Cal", "The calendars table does not contain any calendars. New event was not "
-                    + "created.");
-            return;
+    // Saves the event.  Returns true if it is okay to exit this activity.
+    private boolean save() {
+        // If we are creating a new event, then make sure we wait until the
+        // query to fetch the list of calendars has finished.
+        if (mEventCursor == null) {
+            if (!mCalendarsQueryComplete) {
+                // Wait for the calendars query to finish.
+                if (mLoadingCalendarsDialog == null) {
+                    // Create the progress dialog
+                    mLoadingCalendarsDialog = ProgressDialog.show(this,
+                            getText(R.string.loading_calendars_title),
+                            getText(R.string.loading_calendars_message),
+                            true, true, this);
+                    mSaveAfterQueryComplete = true;
+                }
+                return false;
+            }
+
+            // Avoid creating a new event if the calendars cursor is empty. This
+            // shouldn't ever happen since the setup wizard should ensure the user
+            // has a calendar.
+            if (mCalendarsCursor == null || mCalendarsCursor.getCount() == 0) {
+                Log.w("Cal", "The calendars table does not contain any calendars."
+                        + " New event was not created.");
+                return true;
+            }
+            Toast.makeText(this, R.string.creating_event, Toast.LENGTH_SHORT).show();
+        } else {
+            Toast.makeText(this, R.string.saving_event, Toast.LENGTH_SHORT).show();
         }
 
         ContentResolver cr = getContentResolver();
@@ -1071,20 +1231,43 @@ public class EditEvent extends Activity implements View.OnClickListener {
             long begin = mInitialValues.getAsLong(EVENT_BEGIN_TIME);
             values.put(Events.ORIGINAL_EVENT, mEventCursor.getString(EVENT_INDEX_SYNC_ID));
             values.put(Events.ORIGINAL_INSTANCE_TIME, begin);
+            boolean allDay = mInitialValues.getAsInteger(Events.ALL_DAY) != 0;
+            values.put(Events.ORIGINAL_ALL_DAY, allDay ? 1 : 0);
 
             uri = cr.insert(Events.CONTENT_URI, values);
 
         } else if (mModification == MODIFY_ALL_FOLLOWING) {
-            // Modify contents of all future instances of repeating event
+            // Modify this instance and all future instances of repeating event
+            addRecurrenceRule(values);
 
-            // Update the current repeating event to end at the new start time
-            updatePastEvents(cr, uri);
+            if (mRrule == null) {
+                // We've changed a recurring event to a non-recurring event.
+                // If the event we are editing is the first in the series,
+                // then delete the whole series.  Otherwise, update the series
+                // to end at the new start time.
+                if (isFirstEventInSeries()) {
+                    cr.delete(uri, null, null);
+                } else {
+                    // Update the current repeating event to end at the new
+                    // start time.
+                    updatePastEvents(cr, uri);
+                }
+                uri = cr.insert(Events.CONTENT_URI, values);
+            } else {
+                if (isFirstEventInSeries()) {
+                    checkTimeDependentFields(values);
+                    values.remove(Events.DTEND);
+                    cr.update(uri, values, null, null);
+                } else {
+                    // Update the current repeating event to end at the new
+                    // start time.
+                    updatePastEvents(cr, uri);
 
-            // Create a new event that has a begin time of now
-            mEventRecurrence.parse(mRrule);
-            addRecurrenceRule(values);
-            values.remove(Events.DTEND);
-            uri = cr.insert(Events.CONTENT_URI, values);
+                    // Create a new event with the user-modified fields
+                    values.remove(Events.DTEND);
+                    uri = cr.insert(Events.CONTENT_URI, values);
+                }
+            }
 
         } else if (mModification == MODIFY_ALL) {
             
@@ -1092,16 +1275,10 @@ public class EditEvent extends Activity implements View.OnClickListener {
             addRecurrenceRule(values);
             
             if (mRrule == null) {
-                
-                // We've changed a recurring event to non recurring
-                // End the previous events and create a new event
-                // If we're the first even though we just delete and
-                // create a new one.
-                if (isFirstEventInSeries()) {
-                    cr.delete(uri, null, null);
-                } else {
-                    updatePastEvents(cr, uri);
-                }
+                // We've changed a recurring event to a non-recurring event.
+                // Delete the whole series and replace it with a new
+                // non-recurring event.
+                cr.delete(uri, null, null);
                 uri = cr.insert(Events.CONTENT_URI, values);
             } else {
                 checkTimeDependentFields(values);
@@ -1116,6 +1293,7 @@ public class EditEvent extends Activity implements View.OnClickListener {
                     mReminderValues);
             saveReminders(cr, eventId, reminderMinutes, mOriginalMinutes);
         }
+        return true;
     }
 
     private boolean isFirstEventInSeries() {
@@ -1127,18 +1305,42 @@ public class EditEvent extends Activity implements View.OnClickListener {
     private void updatePastEvents(ContentResolver cr, Uri uri) {
         long oldStartMillis = mEventCursor.getLong(EVENT_INDEX_DTSTART);
         String oldDuration = mEventCursor.getString(EVENT_INDEX_DURATION);
+        boolean allDay = mEventCursor.getInt(EVENT_INDEX_ALL_DAY) != 0;
+        String oldRrule = mEventCursor.getString(EVENT_INDEX_RRULE);
+        mEventRecurrence.parse(oldRrule);
 
-        Time oldUntilTime = new Time();
+        Time untilTime = new Time();
         long begin = mInitialValues.getAsLong(EVENT_BEGIN_TIME);
-        if (mInitialValues.getAsBoolean(Events.ALL_DAY)) {
-            oldUntilTime.timezone = Time.TIMEZONE_UTC;
+        ContentValues oldValues = new ContentValues();
+
+        // The "until" time must be in UTC time in order for Google calendar
+        // to display it properly.  For all-day events, the "until" time string
+        // must include just the date field, and not the time field.  The
+        // repeating events repeat up to and including the "until" time.
+        untilTime.timezone = Time.TIMEZONE_UTC;
+        
+        // Subtract one second from the old begin time to get the new
+        // "until" time.
+        untilTime.set(begin - 1000);  // subtract one second (1000 millis) 
+        if (allDay) {
+            untilTime.hour = 0;
+            untilTime.minute = 0;
+            untilTime.second = 0;
+            untilTime.allDay = true;
+            untilTime.normalize(false);
+            
+            // For all-day events, the duration must be in days, not seconds.
+            // Otherwise, Google Calendar will (mistakenly) change this event
+            // into a non-all-day event.
+            int len = oldDuration.length();
+            if (oldDuration.charAt(0) == 'P' && oldDuration.charAt(len - 1) == 'S') {
+                int seconds = Integer.parseInt(oldDuration.substring(1, len - 1));
+                int days = (seconds + DAY_IN_SECONDS - 1) / DAY_IN_SECONDS;
+                oldDuration = "P" + days + "D";
+            }
         }
-        oldUntilTime.set(begin);
-        oldUntilTime.second--;
-        oldUntilTime.normalize(false);
-        mEventRecurrence.until = oldUntilTime.format2445();
+        mEventRecurrence.until = untilTime.format2445();
 
-        ContentValues oldValues = new ContentValues();
         oldValues.put(Events.DTSTART, oldStartMillis);
         oldValues.put(Events.DURATION, oldDuration);
         oldValues.put(Events.RRULE, mEventRecurrence.toString());
@@ -1340,14 +1542,13 @@ public class EditEvent extends Activity implements View.OnClickListener {
         boolean isAllDay = mAllDayCheckBox.isChecked();
         String location = mLocationTextView.getText().toString();
         String description = mDescriptionTextView.getText().toString();
-        long calendarId = mCalendarsSpinner.getSelectedItemId();
-        Cursor calendarCursor = (Cursor) mCalendarsSpinner.getSelectedItem();
 
         ContentValues values = new ContentValues();
 
         String timezone = null;
         long startMillis;
         long endMillis;
+        long calendarId;
         if (isAllDay) {
             // Reset start and end time, increment the monthDay by 1, and set
             // the timezone to UTC, as required for all-day events.
@@ -1364,18 +1565,39 @@ public class EditEvent extends Activity implements View.OnClickListener {
             mEndTime.monthDay++;
             mEndTime.timezone = timezone;
             endMillis = mEndTime.normalize(true);
+            
+            if (mEventCursor == null) {
+                // This is a new event
+                calendarId = mCalendarsSpinner.getSelectedItemId();
+            } else {
+                calendarId = mInitialValues.getAsLong(Events.CALENDAR_ID);
+            }
         } else {
             startMillis = mStartTime.toMillis(true);
             endMillis = mEndTime.toMillis(true);
             if (mEventCursor != null) {
+                // This is an existing event
                 timezone = mEventCursor.getString(EVENT_INDEX_TIMEZONE);
-            } else if (calendarCursor != null) {
-                timezone = calendarCursor.getString(CALENDARS_INDEX_TIMEZONE);
+                
+                // The timezone might be null if we are changing an existing
+                // all-day event to a non-all-day event.  We need to assign
+                // a timezone to the non-all-day event.
+                if (TextUtils.isEmpty(timezone)) {
+                    timezone = TimeZone.getDefault().getID();
+                }
+                calendarId = mInitialValues.getAsLong(Events.CALENDAR_ID);
+            } else {
+                // This is a new event
+                calendarId = mCalendarsSpinner.getSelectedItemId();
+                
+                // The timezone for a new event is the currently displayed
+                // timezone, NOT the timezone of the containing calendar.
+                timezone = TimeZone.getDefault().getID();
             }
         }
 
-        values.put(Events.EVENT_TIMEZONE, timezone);
         values.put(Events.CALENDAR_ID, calendarId);
+        values.put(Events.EVENT_TIMEZONE, timezone);
         values.put(Events.TITLE, title);
         values.put(Events.ALL_DAY, isAllDay ? 1 : 0);
         values.put(Events.DTSTART, startMillis);
index d1551bb..9f272d5 100644 (file)
@@ -21,12 +21,12 @@ import android.content.SharedPreferences;
 import android.content.res.Resources;
 import android.database.Cursor;
 import android.os.Debug;
-import android.pim.DateUtils;
-import android.pim.Time;
 import android.preference.PreferenceManager;
 import android.provider.Calendar.Attendees;
 import android.provider.Calendar.Instances;
 import android.text.TextUtils;
+import android.text.format.DateUtils;
+import android.text.format.Time;
 import android.util.Log;
 
 import java.util.ArrayList;
@@ -381,40 +381,6 @@ public class Event implements Comparable, Cloneable {
         // Compute the column positions separately for the all-day events
         doComputePositions(eventsList, false);
         doComputePositions(eventsList, true);
-        if (false) {
-            // Create a numbered log because adb logcat duplicates old entries
-            // at random times and this makes it hard to compare two different
-            // runs.  We can post-process the numbered log using sort and uniq.
-            int logIndex = 0;
-            for (Event e : eventsList) {
-                if (!e.allDay) continue;
-                int flags = DateUtils.FORMAT_SHOW_TIME | DateUtils.FORMAT_ABBREV_ALL
-                | DateUtils.FORMAT_CAP_NOON_MIDNIGHT;
-        String timeRange = DateUtils.formatDateRange(e.startMillis,
-                        e.endMillis, flags);
-                Log.i("Cal", logIndex + " allDay: " + e.allDay
-                                + " days: " + e.startDay + "," + e.endDay
-                                + " times: " + e.startTime + "," + e.endTime
-                                + " " + timeRange
-                                + " nth/max: " + e.getColumn() + "/" + e.getMaxColumns()
-                                + " "  + e.title);
-                logIndex += 1;
-            }
-            for (Event e : eventsList) {
-                if (e.allDay) continue;
-                int flags = DateUtils.FORMAT_SHOW_TIME | DateUtils.FORMAT_ABBREV_ALL
-                        | DateUtils.FORMAT_CAP_NOON_MIDNIGHT;
-                String timeRange = DateUtils.formatDateRange(e.startMillis,
-                                e.endMillis, flags);
-                Log.i("Cal", logIndex + " allDay: " + e.allDay
-                                + " days: " + e.startDay + "," + e.endDay
-                                + " times: " + e.startTime + "," + e.endTime
-                                + " " + timeRange
-                                + " nth/max: " + e.getColumn() + "/" + e.getMaxColumns()
-                                + " "  + e.title);
-                logIndex += 1;
-            }
-        }
     }
 
     private static void doComputePositions(ArrayList<Event> eventsList,
index 8615c2a..2a17c89 100644 (file)
@@ -29,16 +29,16 @@ import android.database.Cursor;
 import android.graphics.PorterDuff;
 import android.net.Uri;
 import android.os.Bundle;
-import android.pim.DateFormat;
-import android.pim.DateUtils;
 import android.pim.EventRecurrence;
-import android.pim.Time;
 import android.preference.PreferenceManager;
 import android.provider.Calendar;
 import android.provider.Calendar.Attendees;
 import android.provider.Calendar.Calendars;
 import android.provider.Calendar.Events;
 import android.provider.Calendar.Reminders;
+import android.text.format.DateFormat;
+import android.text.format.DateUtils;
+import android.text.format.Time;
 import android.view.KeyEvent;
 import android.view.Menu;
 import android.view.MenuItem;
@@ -166,7 +166,11 @@ public class EventInfoActivity extends Activity implements View.OnClickListener
         mStartMillis = intent.getLongExtra(EVENT_BEGIN_TIME, 0);
         mEndMillis = intent.getLongExtra(EVENT_END_TIME, 0);
         mEventCursor = managedQuery(mUri, EVENT_PROJECTION, null, null);
-        initEventCursor();
+        if (initEventCursor()) {
+            // The cursor is empty. This can happen if the event was deleted.
+            finish();
+            return;
+        }
 
         setContentView(R.layout.event_info_activity);
 
@@ -246,18 +250,28 @@ public class EventInfoActivity extends Activity implements View.OnClickListener
     @Override
     protected void onResume() {
         super.onResume();
-        initEventCursor();
+        if (initEventCursor()) {
+            // The cursor is empty. This can happen if the event was deleted.
+            finish();
+            return;
+        }
         initAttendeesCursor();
         initCalendarsCursor();
     }
 
-
-    private void initEventCursor() {
-        if ((mEventCursor != null) && (mEventCursor.getCount() > 0)) {
-            mEventCursor.moveToFirst();
-            mVisibility = mEventCursor.getInt(EVENT_INDEX_ACCESS_LEVEL);
-            mEventId = mEventCursor.getInt(EVENT_INDEX_ID);
+    /**
+     * Initializes the event cursor, which is expected to point to the first
+     * (and only) result from a query.
+     * @return true if the cursor is empty.
+     */
+    private boolean initEventCursor() {
+        if ((mEventCursor == null) || (mEventCursor.getCount() == 0)) {
+            return true;
         }
+        mEventCursor.moveToFirst();
+        mVisibility = mEventCursor.getInt(EVENT_INDEX_ACCESS_LEVEL);
+        mEventId = mEventCursor.getInt(EVENT_INDEX_ID);
+        return false;
     }
 
     private void initAttendeesCursor() {
@@ -451,7 +465,7 @@ public class EventInfoActivity extends Activity implements View.OnClickListener
                 flags |= DateUtils.FORMAT_24HOUR;
             }
         }
-        when = DateUtils.formatDateRange(mStartMillis, mEndMillis, flags);
+        when = DateUtils.formatDateRange(this, mStartMillis, mEndMillis, flags);
         setTextCommon(R.id.when, when);
 
         // Show the event timezone if it is different from the local timezone
index d688059..4622fa9 100644 (file)
 
 package com.android.calendar;
 
+import com.google.android.googlelogin.GoogleLoginServiceConstants;
+import com.google.android.googlelogin.GoogleLoginServiceHelper;
+
 import android.app.Activity;
-import android.app.AlertDialog;
-import android.content.ContentResolver;
-import android.content.DialogInterface;
 import android.content.Intent;
 import android.content.SharedPreferences;
-import android.content.DialogInterface.OnCancelListener;
-import android.content.DialogInterface.OnClickListener;
-import android.database.Cursor;
 import android.net.Uri;
 import android.os.Bundle;
 import android.preference.PreferenceManager;
-import android.provider.Calendar.Calendars;
-
-public class LaunchActivity extends Activity implements OnCancelListener,
-        OnClickListener, Runnable {
+import android.provider.Gmail;
 
-    private static final String[] PROJECTION = new String[] {
-        Calendars._ID,
-    };
+public class LaunchActivity extends Activity {
     
-    public void run() {
-        /* Start a query to refresh the list of calendars if for some reason
-         * the list was not fetched from the server.  We don't care about
-         * the contents of the returned cursor; we do the query strictly for
-         * the side-effect of refreshing the list of calendars from the server.
-         */
-        final ContentResolver cr = getContentResolver();
-        Cursor cursor = cr.query(Calendars.LIVE_CONTENT_URI, PROJECTION,
-            null, null, null);
-        
-        if (cursor != null) {
-            cursor.close();
-        }
-    }
+    // An arbitrary constant to pass to the GoogleLoginHelperService
+    private static final int GET_ACCOUNT_REQUEST = 1;
     
     @Override
     protected void onCreate(Bundle icicle) {
         super.onCreate(icicle);
         
-        // Check to see if there are no calendars
-        final ContentResolver cr = getContentResolver();
-        Cursor cursor = cr.query(Calendars.CONTENT_URI, PROJECTION,
-                null /* selection */,
-                null /* selectionArgs */,
-                Calendars.DEFAULT_SORT_ORDER);
-        
-        boolean missingCalendars = false;
-        if ((cursor == null) || (cursor.getCount() == 0)) {
-            missingCalendars = true;
+        // Only try looking for an account if this is the first launch.
+        if (icicle == null) {
+            // This will request a Gmail account and if none are present, it will
+            // invoke SetupWizard to login or create one. The result is returned
+            // through onActivityResult().
+            Bundle bundle = new Bundle();
+            bundle.putCharSequence("optional_message", getText(R.string.calendar_plug));
+            GoogleLoginServiceHelper.getCredentials(
+                    this,
+                    GET_ACCOUNT_REQUEST,
+                    bundle,
+                    GoogleLoginServiceConstants.PREFER_HOSTED,
+                    Gmail.GMAIL_AUTH_SERVICE,
+                    true);
         }
-        
-        if (cursor != null) {
-            cursor.close();
-        }
-        
-        if (missingCalendars) {
-            new AlertDialog.Builder(this)
-                    .setTitle(R.string.no_calendars)
-                    .setMessage(R.string.no_calendars_msg)
-                    .setCancelable(true)
-                    .setOnCancelListener(this)
-                    .setPositiveButton(R.string.ok_label, this)
-                    .show();
-            new Thread(this).start();
-            return;
-        }
-            
+    }
+    
+    private void onAccountsLoaded(String account) {
         SharedPreferences prefs = PreferenceManager.getDefaultSharedPreferences(this);
         String startActivity = prefs.getString(CalendarPreferenceActivity.KEY_START_VIEW,
                 CalendarPreferenceActivity.DEFAULT_START_VIEW);
@@ -101,12 +71,23 @@ public class LaunchActivity extends Activity implements OnCancelListener,
         startActivity(intent);
         finish();
     }
-
-    public void onCancel(DialogInterface dialog) {
-        finish();
-    }
-
-    public void onClick(DialogInterface dialog, int which) {
-        finish();
+    
+    @Override
+    protected void onActivityResult(int requestCode, int resultCode, Intent intent) {
+        super.onActivityResult(requestCode, resultCode, intent);
+        if (requestCode == GET_ACCOUNT_REQUEST) {
+            if (resultCode == RESULT_OK) {
+                if (intent != null) {
+                    Bundle extras = intent.getExtras();
+                    if (extras != null) {
+                        final String account;
+                        account = extras.getString(GoogleLoginServiceConstants.AUTH_ACCOUNT_KEY);
+                        onAccountsLoaded(account);
+                    }
+                }
+            } else {
+                finish();
+            }
+        }
     }
 }
index 5ee0be4..f23cbf9 100644 (file)
@@ -20,7 +20,7 @@ import static android.provider.Calendar.EVENT_BEGIN_TIME;
 import static android.provider.Calendar.EVENT_END_TIME;
 import android.app.Activity;
 import android.content.Intent;
-import android.pim.DateUtils;
+import android.text.format.DateUtils;
 import android.view.Menu;
 import android.view.MenuItem;
 
index 11fdf5b..89b07ec 100644 (file)
@@ -29,10 +29,10 @@ import android.content.SharedPreferences;
 import android.database.ContentObserver;
 import android.os.Bundle;
 import android.os.Handler;
-import android.pim.DateUtils;
-import android.pim.Time;
 import android.preference.PreferenceManager;
 import android.provider.Calendar.Events;
+import android.text.format.DateUtils;
+import android.text.format.Time;
 import android.view.KeyEvent;
 import android.view.Menu;
 import android.view.MenuItem;
index 5949d95..01f5d4f 100644 (file)
@@ -32,10 +32,10 @@ import android.graphics.Rect;
 import android.graphics.drawable.Drawable;
 import android.os.Handler;
 import android.os.SystemClock;
-import android.pim.DateFormat;
-import android.pim.DateUtils;
-import android.pim.Time;
 import android.provider.Calendar.BusyBits;
+import android.text.format.DateFormat;
+import android.text.format.DateUtils;
+import android.text.format.Time;
 import android.util.DayOfMonthCursor;
 import android.util.Log;
 import android.util.SparseArray;
@@ -1084,9 +1084,11 @@ public class MonthView extends View implements View.OnCreateContextMenuListener
 
             String timeRange;
             if (showEndTime) {
-                timeRange = DateUtils.formatDateRange(event.startMillis, event.endMillis, flags);
+                timeRange = DateUtils.formatDateRange(mParentActivity,
+                        event.startMillis, event.endMillis, flags);
             } else {
-                timeRange = DateUtils.formatDateRange(event.startMillis, event.startMillis, flags);
+                timeRange = DateUtils.formatDateRange(mParentActivity,
+                        event.startMillis, event.startMillis, flags);
             }
 
             TextView timeView = null;
index 66ef2bb..e05a603 100644 (file)
@@ -16,7 +16,7 @@
 
 package com.android.calendar;
 
-import android.pim.Time;
+import android.text.format.Time;
 
 public interface Navigator {
     /**
index 25751e1..becb847 100644 (file)
@@ -199,8 +199,8 @@ public class SelectCalendarsActivity extends Activity implements ListView.OnItem
             }
             
             builder.setMultiChoiceItems(calendarNames, null, this)
-                .setPositiveButton(R.string.ok_label, this)
-                .setNegativeButton(R.string.cancel_label, this)
+                .setPositiveButton(android.R.string.ok, this)
+                .setNegativeButton(android.R.string.cancel, this)
                 .show();
             return true;
         }
index a261ca8..2ea2f37 100644 (file)
@@ -19,7 +19,7 @@ package com.android.calendar;
 import static android.provider.Calendar.EVENT_BEGIN_TIME;
 import android.content.Context;
 import android.content.Intent;
-import android.pim.Time;
+import android.text.format.Time;
 import android.view.animation.AlphaAnimation;
 import android.widget.ViewFlipper;
 
index a1cb2b7..7b34ac4 100644 (file)
 package com.android.calendar;
 
 import android.content.res.Resources;
-import android.pim.DateUtils;
-import android.pim.Time;
+import android.text.format.DateUtils;
+import android.text.format.Time;
 import android.test.AndroidTestCase;
+import android.test.suitebuilder.annotation.MediumTest;
 import android.util.Log;
 
 
 /**
- * Unit tests for {@link android.pim.DateUtils#formatDateRange}.
+ * Unit tests for {@link android.text.format.DateUtils#formatDateRange}.
  */
 public class FormatDateRangeTest extends AndroidTestCase {
 
@@ -158,6 +159,7 @@ public class FormatDateRangeTest extends AndroidTestCase {
         mResources = mContext.getResources();
     }
 
+    @MediumTest
     public void testAll() throws Exception {
         int len = tests.length;
         for (int index = 0; index < len; index++) {
@@ -165,7 +167,7 @@ public class FormatDateRangeTest extends AndroidTestCase {
             long startMillis = dateRange.date1.toMillis(false /* use isDst */);
             long endMillis = dateRange.date2.toMillis(false /* use isDst */);
             int flags = dateRange.flags;
-            String output = DateUtils.formatDateRange(startMillis, endMillis, flags);
+            String output = DateUtils.formatDateRange(mContext, startMillis, endMillis, flags);
             if (!dateRange.expectedOutput.equals(output)) {
                 Log.i("FormatDateRangeTest", "index " + index
                         + " expected: " + dateRange.expectedOutput
index c7af873..6b3774b 100644 (file)
 package com.android.calendar;
 
 import android.content.res.Resources;
-import android.pim.DateUtils;
-import android.pim.Time;
+import android.text.format.DateUtils;
+import android.text.format.Time;
 import android.test.AndroidTestCase;
+import android.test.suitebuilder.annotation.SmallTest;
 import android.util.Log;
 
 
 /**
- * Unit tests for {@link android.pim.Time#getWeekNumber}.
+ * Unit tests for {@link android.text.format.Time#getWeekNumber}.
  */
 public class WeekNumberTest extends AndroidTestCase {
 
@@ -199,6 +200,7 @@ public class WeekNumberTest extends AndroidTestCase {
         super.setUp();
     }
 
+    @SmallTest
     public void testAll() throws Exception {
         int len = tests.length;
         for (int index = 0; index < len; index++) {
@@ -207,7 +209,7 @@ public class WeekNumberTest extends AndroidTestCase {
             if (weekNumber != test.expectedWeekNumber) {
                 long millis = test.date.toMillis(false /* use isDst */);
                 int flags = DateUtils.FORMAT_SHOW_DATE | DateUtils.FORMAT_NUMERIC_DATE;
-                String output = DateUtils.formatDateRange(millis, millis, flags);
+                String output = DateUtils.formatDateTime(mContext, millis, flags);
                 Log.i("WeekNumberTest", "index " + index
                         + " date: " + output
                         + " expected: " + test.expectedWeekNumber
@@ -219,7 +221,7 @@ public class WeekNumberTest extends AndroidTestCase {
             if (weekNumber != test.expectedWeekNumber) {
                 long millis = test.date.toMillis(false /* use isDst */);
                 int flags = DateUtils.FORMAT_SHOW_DATE | DateUtils.FORMAT_NUMERIC_DATE;
-                String output = DateUtils.formatDateRange(millis, millis, flags);
+                String output = DateUtils.formatDateTime(mContext, millis, flags);
                 Log.i("WeekNumberTest", "(all-day) index " + index
                         + " date: " + output
                         + " expected: " + test.expectedWeekNumber