diff options
44 files changed, 317 insertions, 97 deletions
diff --git a/res/drawable-xlarge/agenda_item_bg_primary.xml b/res/drawable-sw600dp/agenda_item_bg_primary.xml index 0044d185..0044d185 100644 --- a/res/drawable-xlarge/agenda_item_bg_primary.xml +++ b/res/drawable-sw600dp/agenda_item_bg_primary.xml diff --git a/res/drawable-xlarge/agenda_item_bg_secondary.xml b/res/drawable-sw600dp/agenda_item_bg_secondary.xml index 1e891215..1e891215 100644 --- a/res/drawable-xlarge/agenda_item_bg_secondary.xml +++ b/res/drawable-sw600dp/agenda_item_bg_secondary.xml diff --git a/res/drawable-xlarge/ic_allday_collapse_holo_light.xml b/res/drawable-sw600dp/ic_allday_collapse_holo_light.xml index a7b5c97a..a7b5c97a 100644 --- a/res/drawable-xlarge/ic_allday_collapse_holo_light.xml +++ b/res/drawable-sw600dp/ic_allday_collapse_holo_light.xml diff --git a/res/drawable-xlarge/ic_allday_expand_holo_light.xml b/res/drawable-sw600dp/ic_allday_expand_holo_light.xml index 4f50c4e5..4f50c4e5 100644 --- a/res/drawable-xlarge/ic_allday_expand_holo_light.xml +++ b/res/drawable-sw600dp/ic_allday_expand_holo_light.xml diff --git a/res/layout-xlarge-land/all_in_one.xml b/res/layout-sw600dp-w1024dp-h552dp/all_in_one.xml index 035f188f..035f188f 100644 --- a/res/layout-xlarge-land/all_in_one.xml +++ b/res/layout-sw600dp-w1024dp-h552dp/all_in_one.xml diff --git a/res/layout-xlarge/agenda_day.xml b/res/layout-sw600dp/agenda_day.xml index 8a179909..8a179909 100644 --- a/res/layout-xlarge/agenda_day.xml +++ b/res/layout-sw600dp/agenda_day.xml diff --git a/res/layout-xlarge/agenda_fragment.xml b/res/layout-sw600dp/agenda_fragment.xml index 85496cab..85496cab 100644 --- a/res/layout-xlarge/agenda_fragment.xml +++ b/res/layout-sw600dp/agenda_fragment.xml diff --git a/res/layout-xlarge/agenda_item.xml b/res/layout-sw600dp/agenda_item.xml index 0f75082c..0f75082c 100644 --- a/res/layout-xlarge/agenda_item.xml +++ b/res/layout-sw600dp/agenda_item.xml diff --git a/res/layout-xlarge/all_in_one.xml b/res/layout-sw600dp/all_in_one.xml index d1d3b187..d1d3b187 100644 --- a/res/layout-xlarge/all_in_one.xml +++ b/res/layout-sw600dp/all_in_one.xml diff --git a/res/layout-xlarge/contact_item.xml b/res/layout-sw600dp/contact_item.xml index ef953961..ef953961 100644 --- a/res/layout-xlarge/contact_item.xml +++ b/res/layout-sw600dp/contact_item.xml diff --git a/res/layout-xlarge/edit_event.xml b/res/layout-sw600dp/edit_event.xml index eff50ac2..73224a68 100644 --- a/res/layout-xlarge/edit_event.xml +++ b/res/layout-sw600dp/edit_event.xml @@ -24,7 +24,7 @@ style="@style/EditEvent_Layout"> <TextView android:id="@+id/loading_message" - android:layout_width="800dip" + android:layout_width="@dimen/edit_event_view_width" android:layout_height="match_parent" android:layout_gravity="center" android:gravity="center" @@ -34,7 +34,7 @@ <ScrollView android:id="@+id/scroll_view" - android:layout_width="800dip" + android:layout_width="@dimen/edit_event_view_width" android:layout_height="match_parent" android:animateLayoutChanges="true" android:fillViewport="true" @@ -56,8 +56,8 @@ android:layout_width="match_parent" android:layout_height="wrap_content" android:paddingTop="28dip" - android:paddingLeft="80dip" - android:paddingRight="80dip" + android:paddingLeft="@dimen/edit_event_view_padding_left" + android:paddingRight="@dimen/edit_event_view_padding_right" android:layout_gravity="center_horizontal|top"> <include diff --git a/res/layout-xlarge/edit_event_1.xml b/res/layout-sw600dp/edit_event_1.xml index 6c00f91d..6c00f91d 100644 --- a/res/layout-xlarge/edit_event_1.xml +++ b/res/layout-sw600dp/edit_event_1.xml diff --git a/res/layout-xlarge/edit_event_single_column.xml b/res/layout-sw600dp/edit_event_single_column.xml index 19582b24..19582b24 100644 --- a/res/layout-xlarge/edit_event_single_column.xml +++ b/res/layout-sw600dp/edit_event_single_column.xml diff --git a/res/layout-xlarge/event_info_label.xml b/res/layout-sw600dp/event_info_label.xml index f05c6bf8..f05c6bf8 100644 --- a/res/layout-xlarge/event_info_label.xml +++ b/res/layout-sw600dp/event_info_label.xml diff --git a/res/layout-xlarge/full_month_by_week.xml b/res/layout-sw600dp/full_month_by_week.xml index 26319f08..26319f08 100644 --- a/res/layout-xlarge/full_month_by_week.xml +++ b/res/layout-sw600dp/full_month_by_week.xml diff --git a/res/layout-xlarge/full_month_header.xml b/res/layout-sw600dp/full_month_header.xml index 45ab0f56..45ab0f56 100644 --- a/res/layout-xlarge/full_month_header.xml +++ b/res/layout-sw600dp/full_month_header.xml diff --git a/res/layout/agenda_item.xml b/res/layout/agenda_item.xml index e9f111fd..73b10610 100644 --- a/res/layout/agenda_item.xml +++ b/res/layout/agenda_item.xml @@ -45,6 +45,7 @@ android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_gravity="center_vertical" + android:layout_weight="1" android:layout_marginRight="16dip" android:orientation="vertical"> <TextView @@ -83,14 +84,13 @@ android:textColor="@color/agenda_item_where_text_color" style="?android:attr/textAppearanceSmallInverse" /> </LinearLayout> + <ImageView + android:id="@+id/selected_marker" + android:layout_width="wrap_content" + android:layout_height="match_parent" + android:layout_alignParentRight="true" + android:layout_centerVertical="true" + android:visibility="gone" + android:background="@drawable/list_multi_left_activated_holo" /> </LinearLayout> - <ImageView - android:id="@+id/selected_marker" - android:layout_width="wrap_content" - android:layout_height="match_parent" - android:layout_alignParentRight="true" - android:layout_centerVertical="true" - android:visibility="gone" - android:background="@drawable/list_multi_left_activated_holo" /> - </LinearLayout> diff --git a/res/layout-xlarge/event_info.xml b/res/layout/dialog_event_info.xml index 475be454..475be454 100644 --- a/res/layout-xlarge/event_info.xml +++ b/res/layout/dialog_event_info.xml diff --git a/res/menu-land/all_in_one_title_bar.xml b/res/menu-land/all_in_one_title_bar.xml index a36b36e1..00987855 100644 --- a/res/menu-land/all_in_one_title_bar.xml +++ b/res/menu-land/all_in_one_title_bar.xml @@ -16,13 +16,6 @@ <menu xmlns:android="http://schemas.android.com/apk/res/android"> - <item android:id="@+id/action_search" - android:alphabeticShortcut="f" - android:title="@string/search" - android:icon="@drawable/ic_menu_search_holo_light" - android:showAsAction="ifRoom|collapseActionView" - android:actionViewClass="android.widget.SearchView" - android:imeOptions="actionSearch" /> <item android:id="@+id/action_today" android:alphabeticShortcut="t" @@ -38,9 +31,18 @@ <item android:id="@+id/action_refresh" android:alphabeticShortcut="r" + android:showAsAction="never" android:title="@string/calendar_refresh" android:icon="@drawable/ic_menu_refresh_holo_light" /> <item + android:id="@+id/action_search" + android:alphabeticShortcut="f" + android:title="@string/search" + android:icon="@drawable/ic_menu_search_holo_light" + android:showAsAction="never|collapseActionView" + android:actionViewClass="android.widget.SearchView" + android:imeOptions="actionSearch" /> + <item android:id="@+id/action_select_visible_calendars" android:title="@string/menu_select_visible_calendars" android:icon="@drawable/ic_menu_select_visible_calendars_holo_light" @@ -48,10 +50,12 @@ <item android:id="@+id/action_settings" android:alphabeticShortcut="s" + android:showAsAction="never" android:title="@string/menu_preferences" android:icon="@drawable/ic_menu_settings_holo_light" /> <item android:id="@+id/action_hide_controls" android:alphabeticShortcut="h" + android:showAsAction="never" android:title="@string/hide_controls" /> </menu> diff --git a/res/menu-xlarge-land/all_in_one_title_bar.xml b/res/menu-sw600dp-land/all_in_one_title_bar.xml index 0a8b2efb..aecc6d89 100644 --- a/res/menu-xlarge-land/all_in_one_title_bar.xml +++ b/res/menu-sw600dp-land/all_in_one_title_bar.xml @@ -16,13 +16,6 @@ <menu xmlns:android="http://schemas.android.com/apk/res/android"> - <item android:id="@+id/action_search" - android:alphabeticShortcut="f" - android:title="@string/search" - android:icon="@drawable/ic_menu_search_holo_light" - android:showAsAction="ifRoom|collapseActionView" - android:actionViewClass="android.widget.SearchView" - android:imeOptions="actionSearch" /> <item android:id="@+id/action_today" android:alphabeticShortcut="t" @@ -33,20 +26,28 @@ android:id="@+id/action_create_event" android:alphabeticShortcut="n" android:title="@string/event_create" - android:icon="@drawable/ic_menu_add_event_holo_light" - android:showAsAction="always" /> + android:showAsAction="ifRoom" + android:icon="@drawable/ic_menu_add_event_holo_light" /> <item android:id="@+id/action_refresh" android:alphabeticShortcut="r" android:title="@string/calendar_refresh" android:icon="@drawable/ic_menu_refresh_holo_light" /> <item - android:id="@+id/action_settings" - android:alphabeticShortcut="s" - android:title="@string/menu_preferences" - android:icon="@drawable/ic_menu_settings_holo_light" /> + android:id="@+id/action_search" + android:alphabeticShortcut="f" + android:title="@string/search" + android:icon="@drawable/ic_menu_search_holo_light" + android:showAsAction="collapseActionView" + android:actionViewClass="android.widget.SearchView" + android:imeOptions="actionSearch" /> <item android:id="@+id/action_hide_controls" android:alphabeticShortcut="h" android:title="@string/hide_controls" /> + <item + android:id="@+id/action_settings" + android:alphabeticShortcut="s" + android:title="@string/menu_preferences" + android:icon="@drawable/ic_menu_settings_holo_light" /> </menu> diff --git a/res/menu-xlarge/all_in_one_title_bar.xml b/res/menu-sw600dp/all_in_one_title_bar.xml index cf640ddd..1719a40e 100644 --- a/res/menu-xlarge/all_in_one_title_bar.xml +++ b/res/menu-sw600dp/all_in_one_title_bar.xml @@ -16,13 +16,6 @@ <menu xmlns:android="http://schemas.android.com/apk/res/android"> - <item android:id="@+id/action_search" - android:alphabeticShortcut="f" - android:title="@string/search" - android:icon="@drawable/ic_menu_search_holo_light" - android:showAsAction="ifRoom|collapseActionView" - android:actionViewClass="android.widget.SearchView" - android:imeOptions="actionSearch" /> <item android:id="@+id/action_today" android:alphabeticShortcut="t" @@ -32,15 +25,23 @@ <item android:id="@+id/action_create_event" android:alphabeticShortcut="n" + android:showAsAction="ifRoom" android:title="@string/event_create" - android:icon="@drawable/ic_menu_add_event_holo_light" - android:showAsAction="always" /> + android:icon="@drawable/ic_menu_add_event_holo_light" /> <item android:id="@+id/action_refresh" android:alphabeticShortcut="r" android:title="@string/calendar_refresh" android:icon="@drawable/ic_menu_refresh_holo_light" /> <item + android:id="@+id/action_search" + android:alphabeticShortcut="f" + android:title="@string/search" + android:icon="@drawable/ic_menu_search_holo_light" + android:showAsAction="collapseActionView" + android:actionViewClass="android.widget.SearchView" + android:imeOptions="actionSearch" /> + <item android:id="@+id/action_settings" android:alphabeticShortcut="s" android:title="@string/menu_preferences" diff --git a/res/menu/all_in_one_title_bar.xml b/res/menu/all_in_one_title_bar.xml index f713a470..b86f1366 100644 --- a/res/menu/all_in_one_title_bar.xml +++ b/res/menu/all_in_one_title_bar.xml @@ -16,13 +16,6 @@ <menu xmlns:android="http://schemas.android.com/apk/res/android"> - <item android:id="@+id/action_search" - android:alphabeticShortcut="f" - android:title="@string/search" - android:icon="@drawable/ic_menu_search_holo_light" - android:showAsAction="never|collapseActionView" - android:actionViewClass="android.widget.SearchView" - android:imeOptions="actionSearch" /> <item android:id="@+id/action_today" android:alphabeticShortcut="t" @@ -42,6 +35,14 @@ android:icon="@drawable/ic_menu_refresh_holo_light" android:showAsAction="never" /> <item + android:id="@+id/action_search" + android:alphabeticShortcut="f" + android:title="@string/search" + android:icon="@drawable/ic_menu_search_holo_light" + android:showAsAction="never|collapseActionView" + android:actionViewClass="android.widget.SearchView" + android:imeOptions="actionSearch" /> + <item android:id="@+id/action_select_visible_calendars" android:title="@string/menu_select_visible_calendars" android:icon="@drawable/ic_menu_select_visible_calendars_holo_light" diff --git a/res/values-xlarge/config.xml b/res/values-w1024dp-h552dp/config.xml index 227464fa..05d3eb60 100644 --- a/res/values-xlarge/config.xml +++ b/res/values-w1024dp-h552dp/config.xml @@ -24,8 +24,14 @@ <!-- when on, shows the event next to the agenda list, when off, shows the event on top of the agenda list after it was clicked. --> <bool name="show_event_details_with_agenda">true</bool> - <!-- when on, event info is shown in full screen, when off, shown as a popup. --> - <bool name="show_event_info_full_screen">false</bool> + <!-- when on, event info launched from agenda view is shown in full screen, --> + <!-- when off, shown as a popup. --> + <bool name="agenda_show_event_info_full_screen">false</bool> + <!-- when on, event info launched from day/week view is shown in full screen, --> + <!-- when off, shown as a popup. --> + <bool name="day_show_event_info_full_screen">false</bool> <!-- A global var used to tablet vs phone settings --> <bool name="tablet_config">true</bool> + <!-- A global var used to set the main layout theme (one pane vs multiple panes) --> + <bool name="multiple_pane_config">true</bool> </resources> diff --git a/res/values-xlarge/dimens.xml b/res/values-w1024dp-h552dp/dimens.xml index c3418f1b..c3418f1b 100644 --- a/res/values-xlarge/dimens.xml +++ b/res/values-w1024dp-h552dp/dimens.xml diff --git a/res/values-xlarge/integers.xml b/res/values-w1024dp-h552dp/integers.xml index 11753a43..e48922ca 100644 --- a/res/values-xlarge/integers.xml +++ b/res/values-w1024dp-h552dp/integers.xml @@ -20,4 +20,7 @@ <integer name="color_chip_all_day_height">64</integer> <!-- The size of the color chip in the agenda view --> <integer name="color_chip_height">32</integer> + <!-- Size of event info dialog box --> + <integer name="event_info_dialog_width">450</integer> + <integer name="event_info_dialog_height">500</integer> </resources> diff --git a/res/values-w1280dp-h752dp/integers.xml b/res/values-w1280dp-h752dp/integers.xml new file mode 100644 index 00000000..367fa3b3 --- /dev/null +++ b/res/values-w1280dp-h752dp/integers.xml @@ -0,0 +1,18 @@ +<?xml version="1.0" encoding="utf-8"?> +<!-- + Copyright (C) 2011 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. +--> +<resources + xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2"> + <!-- Size of event info dialog box --> + <integer name="event_info_dialog_width">500</integer> + <integer name="event_info_dialog_height">600</integer> +</resources> diff --git a/res/values-w600dp-h976dp/config.xml b/res/values-w600dp-h976dp/config.xml new file mode 100644 index 00000000..e5efe5dd --- /dev/null +++ b/res/values-w600dp-h976dp/config.xml @@ -0,0 +1,37 @@ +<?xml version="1.0" encoding="utf-8"?> +<!-- + Copyright (C) 2011 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. +--> +<resources + xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2"> + <!-- turn on/off the mini-calendar and calendar picker --> + <!-- supported only for x-large devices --> + <bool name="show_calendar_controls">true</bool> + <!-- turn on/off month with agenda view --> + <!-- not supported for X-large devices --> + <bool name="show_agenda_with_month">false</bool> + <!-- when on, shows details of event in month view, when off, shows busy bits --> + <!-- the "show details" mode is recommended for devices with large screens --> + <bool name="show_details_in_month">true</bool> + <!-- when on, shows the event next to the agenda list, + when off, shows the event on top of the agenda list after it was clicked. --> + <bool name="show_event_details_with_agenda">false</bool> + <!-- when on, event info launched from agenda view is shown in full screen, --> + <!-- when off, shown as a popup. --> + <bool name="agenda_show_event_info_full_screen">true</bool> + <!-- when on, event info launched from day/week view is shown in full screen, --> + <!-- when off, shown as a popup. --> + <bool name="day_show_event_info_full_screen">false</bool> + <!-- A global var used to tablet vs phone settings --> + <bool name="tablet_config">true</bool> + <!-- A global var used to set the main layout theme (one pane vs multiple panes) --> + <bool name="multiple_pane_config">true</bool> +</resources> diff --git a/res/values-w600dp-h976dp/dimens.xml b/res/values-w600dp-h976dp/dimens.xml new file mode 100644 index 00000000..e66c69f6 --- /dev/null +++ b/res/values-w600dp-h976dp/dimens.xml @@ -0,0 +1,43 @@ +<?xml version="1.0" encoding="utf-8"?> +<!-- Copyright (C) 2011 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. +--> +<resources> + + <dimen name="day_label_text_size">16sp</dimen> + <dimen name="all_day_bottom_margin">10dip</dimen> + <dimen name="one_day_header_height">0dip</dimen> + <dimen name="day_header_bottom_margin">6dip</dimen> + <dimen name="date_header_text_size">18sp</dimen> + <dimen name="hours_text_size">16sp</dimen> + <dimen name="allday_text_size">14sp</dimen> + <dimen name="ampm_text_size">12sp</dimen> + <dimen name="event_text_size">14sp</dimen> + <dimen name="event_text_vertical_margin">4dp</dimen> + <dimen name="event_text_horizontal_margin">6dp</dimen> + <dimen name="event_min_height">30dip</dimen> + <!-- minimum size of hours column in day/week view --> + <dimen name="min_hours_width">32dip</dimen> + <!-- margins size of hours column in day/week view --> + <dimen name="hours_left_margin">28dip</dimen> + <dimen name="hours_right_margin">4dip</dimen> + <!-- size of day header in day and week views --> + <dimen name="day_header_height">24sp</dimen> + <dimen name="widget_day_num_size">42sp</dimen> + <dimen name="widget_day_num_top_padding">-8dip</dimen> + <dimen name="new_event_hint_text_size">14sp</dimen> + <dimen name="edit_event_view_width">600dip</dimen> + <dimen name="edit_event_view_padding_left">16dip</dimen> + <dimen name="edit_event_view_padding_right">16dip</dimen> +</resources> diff --git a/res/values-w600dp-h976dp/integers.xml b/res/values-w600dp-h976dp/integers.xml new file mode 100644 index 00000000..e48922ca --- /dev/null +++ b/res/values-w600dp-h976dp/integers.xml @@ -0,0 +1,26 @@ +<?xml version="1.0" encoding="utf-8"?> +<!-- + Copyright (C) 2011 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. +--> +<resources + xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2"> + <!-- size of day date font in month view --> + <integer name="text_size_month_number">24</integer> + <!-- margin between the day number and the edge of the day in month view --> + <integer name="month_day_number_margin">8</integer> + <!-- The size of the color chip in the agenda view for all day events --> + <integer name="color_chip_all_day_height">64</integer> + <!-- The size of the color chip in the agenda view --> + <integer name="color_chip_height">32</integer> + <!-- Size of event info dialog box --> + <integer name="event_info_dialog_width">450</integer> + <integer name="event_info_dialog_height">500</integer> +</resources> diff --git a/res/values-w800dp-h1232dp/config.xml b/res/values-w800dp-h1232dp/config.xml new file mode 100644 index 00000000..61bbc866 --- /dev/null +++ b/res/values-w800dp-h1232dp/config.xml @@ -0,0 +1,24 @@ +<?xml version="1.0" encoding="utf-8"?> +<!-- + Copyright (C) 2011 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. +--> +<resources + xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2"> + <!-- when on, shows the event next to the agenda list, + when off, shows the event on top of the agenda list after it was clicked. --> + <bool name="show_event_details_with_agenda">true</bool> + <!-- when on, event info launched from agenda view is shown in full screen, --> + <!-- when off, shown as a popup. --> + <bool name="agenda_show_event_info_full_screen">false</bool> + <!-- when on, event info launched from day/week view is shown in full screen, --> + <!-- when off, shown as a popup. --> + <bool name="day_show_event_info_full_screen">false</bool> +</resources> diff --git a/res/values-w800dp-h1232dp/integers.xml b/res/values-w800dp-h1232dp/integers.xml new file mode 100644 index 00000000..367fa3b3 --- /dev/null +++ b/res/values-w800dp-h1232dp/integers.xml @@ -0,0 +1,18 @@ +<?xml version="1.0" encoding="utf-8"?> +<!-- + Copyright (C) 2011 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. +--> +<resources + xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2"> + <!-- Size of event info dialog box --> + <integer name="event_info_dialog_width">500</integer> + <integer name="event_info_dialog_height">600</integer> +</resources> diff --git a/res/values/config.xml b/res/values/config.xml index da908d4d..c1fa2ef9 100644 --- a/res/values/config.xml +++ b/res/values/config.xml @@ -24,8 +24,14 @@ <!-- when on, shows the event next to the agenda list, when off, shows the event on top of the agenda list after it was clicked. --> <bool name="show_event_details_with_agenda">false</bool> - <!-- when on, event info is shown in full screen, when off, shown as a popup. --> - <bool name="show_event_info_full_screen">true</bool> + <!-- when on, event info launched from agenda view is shown in full screen, --> + <!-- when off, shown as a popup. --> + <bool name="agenda_show_event_info_full_screen">true</bool> + <!-- when on, event info launched from day/week view is shown in full screen, --> + <!-- when off, shown as a popup. --> + <bool name="day_show_event_info_full_screen">true</bool> <!-- A global var used to tablet vs phone settings --> <bool name="tablet_config">false</bool> + <!-- A global var used to set the main layout theme (one pane vs multiple panes) --> + <bool name="multiple_pane_config">false</bool> </resources> diff --git a/res/values/dimens.xml b/res/values/dimens.xml index 52259771..f82c5400 100644 --- a/res/values/dimens.xml +++ b/res/values/dimens.xml @@ -37,4 +37,7 @@ <dimen name="widget_day_num_top_padding">-4dip</dimen> <dimen name="action_bar_date_text_size">22sp</dimen> <dimen name="new_event_hint_text_size">12sp</dimen> + <dimen name="edit_event_view_width">800dip</dimen> + <dimen name="edit_event_view_padding_left">80dip</dimen> + <dimen name="edit_event_view_padding_right">80dip</dimen> </resources> diff --git a/src/com/android/calendar/AllInOneActivity.java b/src/com/android/calendar/AllInOneActivity.java index 17b22b58..b88cd25d 100644 --- a/src/com/android/calendar/AllInOneActivity.java +++ b/src/com/android/calendar/AllInOneActivity.java @@ -125,7 +125,8 @@ public class AllInOneActivity extends Activity implements EventHandler, private View mSecondaryPane; private String mTimeZone; private boolean mShowCalendarControls; - private boolean mShowEventInfoFullScreen; + private boolean mShowEventInfoFullScreenAgenda; + private boolean mShowEventInfoFullScreenDay; private int mWeekNum; private long mViewEventId = -1; @@ -331,14 +332,16 @@ public class AllInOneActivity extends Activity implements EventHandler, mShowString = res.getString(R.string.show_controls); mControlsParams.addRule(RelativeLayout.ALIGN_PARENT_RIGHT); - mIsMultipane = Utils.isMultiPaneConfiguration(this); + mIsMultipane = Utils.getConfigBool(this, R.bool.multiple_pane_config); mIsTabletConfig = Utils.getConfigBool(this, R.bool.tablet_config); mShowAgendaWithMonth = Utils.getConfigBool(this, R.bool.show_agenda_with_month); mShowCalendarControls = Utils.getConfigBool(this, R.bool.show_calendar_controls); mShowEventDetailsWithAgenda = Utils.getConfigBool(this, R.bool.show_event_details_with_agenda); - mShowEventInfoFullScreen = - Utils.getConfigBool(this, R.bool.show_event_info_full_screen); + mShowEventInfoFullScreenAgenda = + Utils.getConfigBool(this, R.bool.agenda_show_event_info_full_screen); + mShowEventInfoFullScreenDay = + Utils.getConfigBool(this, R.bool.day_show_event_info_full_screen); Utils.setAllowWeekForDetailView(mIsMultipane); @@ -1082,7 +1085,9 @@ public class AllInOneActivity extends Activity implements EventHandler, mController.sendEvent(this, EventType.GO_TO, event.selectedTime, event.selectedTime, -1, ViewType.CURRENT); } - if (mShowEventInfoFullScreen) { + if ((mCurrentView == ViewType.AGENDA && mShowEventInfoFullScreenAgenda) || + ((mCurrentView == ViewType.DAY || (mCurrentView == ViewType.WEEK)) + && mShowEventInfoFullScreenDay)){ // start event info as activity Intent intent = new Intent(Intent.ACTION_VIEW); Uri eventUri = ContentUris.withAppendedId(Events.CONTENT_URI, event.id); @@ -1098,7 +1103,8 @@ public class AllInOneActivity extends Activity implements EventHandler, // start event info as a dialog EventInfoFragment fragment = new EventInfoFragment(this, event.id, event.startTime.toMillis(false), - event.endTime.toMillis(false), (int) event.extraLong, true); + event.endTime.toMillis(false), (int) event.extraLong, true, + EventInfoFragment.DIALOG_WINDOW_STYLE); fragment.setDialogParams(event.x, event.y, mActionBar.getHeight()); FragmentManager fm = getFragmentManager(); FragmentTransaction ft = fm.beginTransaction(); diff --git a/src/com/android/calendar/EventInfoActivity.java b/src/com/android/calendar/EventInfoActivity.java index 798f9502..aac0a8ec 100644 --- a/src/com/android/calendar/EventInfoActivity.java +++ b/src/com/android/calendar/EventInfoActivity.java @@ -88,7 +88,9 @@ public class EventInfoActivity extends Activity { FragmentManager fragmentManager = getFragmentManager(); FragmentTransaction ft = fragmentManager.beginTransaction(); mInfoFragment = new EventInfoFragment(this, mEventId, mStartMillis, mEndMillis, - attendeeResponse, isDialog); + attendeeResponse, isDialog, isDialog ? + EventInfoFragment.DIALOG_WINDOW_STYLE : + EventInfoFragment.FULL_WINDOW_STYLE); ft.replace(R.id.main_frame, mInfoFragment); ft.commit(); } diff --git a/src/com/android/calendar/EventInfoFragment.java b/src/com/android/calendar/EventInfoFragment.java index 4130f458..17168cbb 100644 --- a/src/com/android/calendar/EventInfoFragment.java +++ b/src/com/android/calendar/EventInfoFragment.java @@ -123,6 +123,7 @@ public class EventInfoFragment extends DialogFragment implements OnCheckedChange protected static final String BUNDLE_KEY_END_MILLIS = "key_end_millis"; protected static final String BUNDLE_KEY_IS_DIALOG = "key_fragment_is_dialog"; protected static final String BUNDLE_KEY_DELETE_DIALOG_VISIBLE = "key_delete_dialog_visible"; + protected static final String BUNDLE_KEY_WINDOW_STYLE = "key_window_style"; protected static final String BUNDLE_KEY_ATTENDEE_RESPONSE = "key_attendee_response"; private static final String PERIOD_SPACE = ". "; @@ -134,6 +135,12 @@ public class EventInfoFragment extends DialogFragment implements OnCheckedChange static final int UPDATE_SINGLE = 0; static final int UPDATE_ALL = 1; + // Style of view + public static final int FULL_WINDOW_STYLE = 0; + public static final int DIALOG_WINDOW_STYLE = 1; + + private int mWindowStyle = DIALOG_WINDOW_STYLE; + // Query tokens for QueryHandler private static final int TOKEN_QUERY_EVENT = 1 << 0; private static final int TOKEN_QUERY_CALENDARS = 1 << 1; @@ -316,8 +323,8 @@ public class EventInfoFragment extends DialogFragment implements OnCheckedChange private OnItemSelectedListener mReminderChangeListener; - private static int DIALOG_WIDTH = 500; - private static int DIALOG_HEIGHT = 600; + private static int mDialogWidth = 500; + private static int mDialogHeight = 600; private static int DIALOG_TOP_MARGIN = 8; private boolean mIsDialog = false; private boolean mIsPaused = true; @@ -440,13 +447,21 @@ public class EventInfoFragment extends DialogFragment implements OnCheckedChange } public EventInfoFragment(Context context, Uri uri, long startMillis, long endMillis, - int attendeeResponse, boolean isDialog) { - if (mScale == 0) { - mScale = context.getResources().getDisplayMetrics().density; - if (mScale != 1) { - DIALOG_WIDTH *= mScale; - DIALOG_HEIGHT *= mScale; - DIALOG_TOP_MARGIN *= mScale; + int attendeeResponse, boolean isDialog, int windowStyle) { + + if (isDialog) { + Resources r = context.getResources(); + + mDialogWidth = r.getInteger(R.integer.event_info_dialog_width); + mDialogHeight = r.getInteger(R.integer.event_info_dialog_height); + + if (mScale == 0) { + mScale = context.getResources().getDisplayMetrics().density; + if (mScale != 1) { + mDialogWidth *= mScale; + mDialogHeight *= mScale; + DIALOG_TOP_MARGIN *= mScale; + } } } mIsDialog = isDialog; @@ -456,6 +471,7 @@ public class EventInfoFragment extends DialogFragment implements OnCheckedChange mStartMillis = startMillis; mEndMillis = endMillis; mAttendeeResponseFromIntent = attendeeResponse; + mWindowStyle = windowStyle; } // This is currently required by the fragment manager. @@ -465,9 +481,9 @@ public class EventInfoFragment extends DialogFragment implements OnCheckedChange public EventInfoFragment(Context context, long eventId, long startMillis, long endMillis, - int attendeeResponse, boolean isDialog) { + int attendeeResponse, boolean isDialog, int windowStyle) { this(context, ContentUris.withAppendedId(Events.CONTENT_URI, eventId), startMillis, - endMillis, attendeeResponse, isDialog); + endMillis, attendeeResponse, isDialog, windowStyle); mEventId = eventId; } @@ -494,6 +510,8 @@ public class EventInfoFragment extends DialogFragment implements OnCheckedChange if (savedInstanceState != null) { mIsDialog = savedInstanceState.getBoolean(BUNDLE_KEY_IS_DIALOG, false); + mWindowStyle = savedInstanceState.getInt(BUNDLE_KEY_WINDOW_STYLE, + DIALOG_WINDOW_STYLE); } if (mIsDialog) { @@ -512,16 +530,16 @@ public class EventInfoFragment extends DialogFragment implements OnCheckedChange WindowManager.LayoutParams a = window.getAttributes(); a.dimAmount = .4f; - a.width = DIALOG_WIDTH; - a.height = DIALOG_HEIGHT; + a.width = mDialogWidth; + a.height = mDialogHeight; // On tablets , do smart positioning of dialog // On phones , use the whole screen if (mX != -1 || mY != -1) { - a.x = mX - DIALOG_WIDTH / 2; - a.y = mY - DIALOG_HEIGHT / 2; + a.x = mX - mDialogWidth / 2; + a.y = mY - mDialogHeight / 2; if (a.y < mMinTop) { a.y = mMinTop + DIALOG_TOP_MARGIN; } @@ -581,7 +599,11 @@ public class EventInfoFragment extends DialogFragment implements OnCheckedChange @Override public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) { - mView = inflater.inflate(R.layout.event_info, container, false); + if (mWindowStyle == DIALOG_WINDOW_STYLE) { + mView = inflater.inflate(R.layout.dialog_event_info, container, false); + } else { + mView = inflater.inflate(R.layout.event_info, container, false); + } mScrollView = (ScrollView) mView.findViewById(R.id.event_info_scroll_view); mTitle = (TextView) mView.findViewById(R.id.title); mWhenDate = (TextView) mView.findViewById(R.id.when_date); @@ -632,10 +654,13 @@ public class EventInfoFragment extends DialogFragment implements OnCheckedChange // Hide Edit/Delete buttons if in full screen mode on a phone if (savedInstanceState != null) { mIsDialog = savedInstanceState.getBoolean(BUNDLE_KEY_IS_DIALOG, false); + mWindowStyle = savedInstanceState.getInt(BUNDLE_KEY_WINDOW_STYLE, + DIALOG_WINDOW_STYLE); mDeleteDialogVisible = savedInstanceState.getBoolean(BUNDLE_KEY_DELETE_DIALOG_VISIBLE,false); + } - if (!mIsDialog && !mIsTabletConfig) { + if (!mIsDialog && !mIsTabletConfig || mWindowStyle == EventInfoFragment.FULL_WINDOW_STYLE) { mView.findViewById(R.id.event_info_buttons_container).setVisibility(View.GONE); } @@ -812,6 +837,7 @@ public class EventInfoFragment extends DialogFragment implements OnCheckedChange outState.putLong(BUNDLE_KEY_START_MILLIS, mStartMillis); outState.putLong(BUNDLE_KEY_END_MILLIS, mEndMillis); outState.putBoolean(BUNDLE_KEY_IS_DIALOG, mIsDialog); + outState.putInt(BUNDLE_KEY_WINDOW_STYLE, mWindowStyle); outState.putBoolean(BUNDLE_KEY_DELETE_DIALOG_VISIBLE, mDeleteDialogVisible); outState.putInt(BUNDLE_KEY_ATTENDEE_RESPONSE, mAttendeeResponseFromIntent); } @@ -820,8 +846,8 @@ public class EventInfoFragment extends DialogFragment implements OnCheckedChange @Override public void onCreateOptionsMenu(Menu menu, MenuInflater inflater) { super.onCreateOptionsMenu(menu, inflater); - // Show edit/delete buttons only in non-dialog configuration on a phone - if (!mIsDialog && !mIsTabletConfig) { + // Show edit/delete buttons only in non-dialog configuration + if (!mIsDialog && !mIsTabletConfig || mWindowStyle == EventInfoFragment.FULL_WINDOW_STYLE) { inflater.inflate(R.menu.event_info_title_bar, menu); mMenu = menu; updateMenu(); @@ -831,9 +857,8 @@ public class EventInfoFragment extends DialogFragment implements OnCheckedChange @Override public boolean onOptionsItemSelected(MenuItem item) { - // If we're a dialog or part of a tablet display we don't want to handle - // menu buttons - if (mIsDialog || mIsTabletConfig) { + // If we're a dialog we don't want to handle menu buttons + if (mIsDialog) { return false; } // Handles option menu selections: @@ -1442,7 +1467,8 @@ public class EventInfoFragment extends DialogFragment implements OnCheckedChange button.setVisibility(View.GONE); } } - if (!mIsTabletConfig && mMenu != null) { + if ((!mIsDialog && !mIsTabletConfig || + mWindowStyle == EventInfoFragment.FULL_WINDOW_STYLE) && mMenu != null) { mActivity.invalidateOptionsMenu(); } } else { diff --git a/src/com/android/calendar/SearchActivity.java b/src/com/android/calendar/SearchActivity.java index 121c2890..9ccd32ab 100644 --- a/src/com/android/calendar/SearchActivity.java +++ b/src/com/android/calendar/SearchActivity.java @@ -95,7 +95,7 @@ public class SearchActivity extends Activity implements CalendarController.Event // This needs to be created before setContentView mController = CalendarController.getInstance(this); - mIsMultipane = Utils.isMultiPaneConfiguration (this); + mIsMultipane = Utils.getConfigBool(this, R.bool.multiple_pane_config); mShowEventDetailsWithAgenda = Utils.getConfigBool(this, R.bool.show_event_details_with_agenda); @@ -174,7 +174,7 @@ public class SearchActivity extends Activity implements CalendarController.Event mEventInfoFragment = new EventInfoFragment(this, event.id, event.startTime.toMillis(false), event.endTime.toMillis(false), - (int) event.extraLong, false); + (int) event.extraLong, false, EventInfoFragment.FULL_WINDOW_STYLE); ft.replace(R.id.agenda_event_info, mEventInfoFragment); ft.commit(); mController.registerEventHandler(R.id.agenda_event_info, mEventInfoFragment); diff --git a/src/com/android/calendar/Utils.java b/src/com/android/calendar/Utils.java index be6c1888..5f8c42ee 100644 --- a/src/com/android/calendar/Utils.java +++ b/src/com/android/calendar/Utils.java @@ -566,11 +566,6 @@ public class Utils { return mAllowWeekForDetailView; } - public static boolean isMultiPaneConfiguration (Context c) { - return (c.getResources().getConfiguration().screenLayout & - Configuration.SCREENLAYOUT_SIZE_XLARGE) != 0; - } - public static boolean getConfigBool(Context c, int key) { return c.getResources().getBoolean(key); } diff --git a/src/com/android/calendar/agenda/AgendaFragment.java b/src/com/android/calendar/agenda/AgendaFragment.java index 5dbb8083..f8db0ff0 100644 --- a/src/com/android/calendar/agenda/AgendaFragment.java +++ b/src/com/android/calendar/agenda/AgendaFragment.java @@ -342,7 +342,7 @@ public class AgendaFragment extends Fragment implements CalendarController.Event mEventFragment = new EventInfoFragment(mActivity, event.id, event.startTime.toMillis(true), event.endTime.toMillis(true), - response, false); + response, false, EventInfoFragment.DIALOG_WINDOW_STYLE); ft.replace(R.id.agenda_event_info, mEventFragment); mController.registerEventHandler(R.id.agenda_event_info, mEventFragment); diff --git a/src/com/android/calendar/agenda/AgendaListView.java b/src/com/android/calendar/agenda/AgendaListView.java index a8558cd5..1f6ff4d8 100644 --- a/src/com/android/calendar/agenda/AgendaListView.java +++ b/src/com/android/calendar/agenda/AgendaListView.java @@ -258,7 +258,7 @@ public class AgendaListView extends ListView implements OnItemClickListener { } } - @Override +/* @Override public int getFirstVisiblePosition() { // TODO File bug! // getFirstVisiblePosition doesn't always return the first visible @@ -275,7 +275,7 @@ public class AgendaListView extends ListView implements OnItemClickListener { } return -1; } - +*/ public View getFirstVisibleView() { Rect r = new Rect(); int childCount = getChildCount(); diff --git a/src/com/android/calendar/agenda/AgendaWindowAdapter.java b/src/com/android/calendar/agenda/AgendaWindowAdapter.java index 69011a8b..3481067b 100644 --- a/src/com/android/calendar/agenda/AgendaWindowAdapter.java +++ b/src/com/android/calendar/agenda/AgendaWindowAdapter.java @@ -452,7 +452,7 @@ public class AgendaWindowAdapter extends BaseAdapter selected = mSelectedInstanceId == vh.instanceId; vh.selectedMarker.setVisibility((selected && mShowEventOnStart) ? View.VISIBLE : View.GONE); - if (selected) { + if (selected && mShowEventOnStart) { mSelectedVH = vh; v.setBackgroundColor(mSelectedItemBackgroundColor); vh.title.setTextColor(mSelectedItemTextColor); diff --git a/src/com/android/calendar/event/EditEventActivity.java b/src/com/android/calendar/event/EditEventActivity.java index 56c488e2..1fdbbc5d 100644 --- a/src/com/android/calendar/event/EditEventActivity.java +++ b/src/com/android/calendar/event/EditEventActivity.java @@ -57,7 +57,7 @@ public class EditEventActivity extends AbstractCalendarActivity { mEditFragment = (EditEventFragment) getFragmentManager().findFragmentById(R.id.main_frame); - mIsMultipane = Utils.isMultiPaneConfiguration (this); + mIsMultipane = Utils.getConfigBool(this, R.bool.multiple_pane_config); if (mIsMultipane) { getActionBar().setDisplayOptions( diff --git a/src/com/android/calendar/event/EditEventFragment.java b/src/com/android/calendar/event/EditEventFragment.java index 06efedb9..c8b71227 100644 --- a/src/com/android/calendar/event/EditEventFragment.java +++ b/src/com/android/calendar/event/EditEventFragment.java @@ -423,7 +423,7 @@ public class EditEventFragment extends Fragment implements EventHandler { mInputMethodManager = (InputMethodManager) activity.getSystemService(Context.INPUT_METHOD_SERVICE); - mUseCustomActionBar = !Utils.isMultiPaneConfiguration(mContext); + mUseCustomActionBar = !Utils.getConfigBool(mContext, R.bool.multiple_pane_config); } @Override diff --git a/src/com/android/calendar/selectcalendars/SelectVisibleCalendarsFragment.java b/src/com/android/calendar/selectcalendars/SelectVisibleCalendarsFragment.java index 5f6c6b5e..699f7b7a 100644 --- a/src/com/android/calendar/selectcalendars/SelectVisibleCalendarsFragment.java +++ b/src/com/android/calendar/selectcalendars/SelectVisibleCalendarsFragment.java @@ -111,7 +111,7 @@ public class SelectVisibleCalendarsFragment extends Fragment // Hide the Calendars to Sync button on tablets for now. // Long terms stick it in the list of calendars - if (Utils.isMultiPaneConfiguration(getActivity())) { + if (Utils.getConfigBool(getActivity(), R.bool.multiple_pane_config)) { // Don't show dividers on tablets mList.setDivider(null); View v = mView.findViewById(R.id.manage_sync_set); |