summaryrefslogtreecommitdiffstats
path: root/res
diff options
context:
space:
mode:
authorDanny Baumann <dannybaumann@web.de>2014-11-12 17:01:47 -0800
committerMatt Garnes <matt@cyngn.com>2014-11-13 17:48:12 -0800
commit5acc180074556da9885c8282901f4331afd27348 (patch)
treec59f92dc9ede0f78f451310a46a069639c4f46a3 /res
parent571a9b41a93bad68fabfb3b659730d1d3b6d1e5a (diff)
downloadandroid_packages_apps_Dialer-5acc180074556da9885c8282901f4331afd27348.tar.gz
android_packages_apps_Dialer-5acc180074556da9885c8282901f4331afd27348.tar.bz2
android_packages_apps_Dialer-5acc180074556da9885c8282901f4331afd27348.zip
Add back call stats feature.
Conflicts: src/com/android/dialer/CallDetailActivity.java src/com/android/dialer/calllog/CallLogAdapter.java src/com/android/dialer/calllog/ContactInfoHelper.java Change-Id: Id10bc12cacaee3523b7614bce8493d8b423b3f40
Diffstat (limited to 'res')
-rw-r--r--res/drawable-hdpi/ic_call_inout_holo_dark.pngbin0 -> 550 bytes
-rw-r--r--res/drawable-mdpi/ic_call_inout_holo_dark.pngbin0 -> 385 bytes
-rw-r--r--res/drawable-xhdpi/ic_call_inout_holo_dark.pngbin0 -> 751 bytes
-rw-r--r--res/layout/call_stats_detail.xml225
-rw-r--r--res/layout/call_stats_detail_info.xml215
-rw-r--r--res/layout/call_stats_fragment.xml85
-rw-r--r--res/layout/call_stats_list_item.xml115
-rw-r--r--res/layout/call_stats_nav_item.xml39
-rw-r--r--res/layout/double_date_picker_dialog.xml67
-rw-r--r--res/menu/call_stats_details_options.xml27
-rw-r--r--res/menu/call_stats_options.xml45
-rw-r--r--res/values/attrs.xml17
-rw-r--r--res/values/cm_arrays.xml42
-rw-r--r--res/values/cm_plurals.xml35
-rw-r--r--res/values/cm_strings.xml37
-rw-r--r--res/values/colors.xml8
-rw-r--r--res/values/dimens.xml5
17 files changed, 962 insertions, 0 deletions
diff --git a/res/drawable-hdpi/ic_call_inout_holo_dark.png b/res/drawable-hdpi/ic_call_inout_holo_dark.png
new file mode 100644
index 000000000..1dbf4b485
--- /dev/null
+++ b/res/drawable-hdpi/ic_call_inout_holo_dark.png
Binary files differ
diff --git a/res/drawable-mdpi/ic_call_inout_holo_dark.png b/res/drawable-mdpi/ic_call_inout_holo_dark.png
new file mode 100644
index 000000000..88b92a195
--- /dev/null
+++ b/res/drawable-mdpi/ic_call_inout_holo_dark.png
Binary files differ
diff --git a/res/drawable-xhdpi/ic_call_inout_holo_dark.png b/res/drawable-xhdpi/ic_call_inout_holo_dark.png
new file mode 100644
index 000000000..f133f164c
--- /dev/null
+++ b/res/drawable-xhdpi/ic_call_inout_holo_dark.png
Binary files differ
diff --git a/res/layout/call_stats_detail.xml b/res/layout/call_stats_detail.xml
new file mode 100644
index 000000000..656218ff2
--- /dev/null
+++ b/res/layout/call_stats_detail.xml
@@ -0,0 +1,225 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!--
+ Copyright (C) 2009 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.
+-->
+
+<com.android.dialer.widget.AnchoredScrollView
+ xmlns:android="http://schemas.android.com/apk/res/android"
+ xmlns:ex="http://schemas.android.com/apk/res/com.android.dialer"
+ android:layout_width="match_parent"
+ android:layout_height="match_parent"
+ ex:anchorView="@+id/photo_text_bar_dummy"
+ ex:anchoredView="@+id/controls" >
+
+ <RelativeLayout
+ android:id="@+id/call_stats_detail"
+ android:layout_width="match_parent"
+ android:layout_height="match_parent"
+ android:visibility="gone" >
+
+ <!-- This layout defines the position of the scroll anchor.
+ Sizes are supposed to match their counterpart in controls -->
+ <RelativeLayout
+ android:layout_width="match_parent"
+ android:layout_height="wrap_content"
+ android:orientation="vertical"
+ android:layout_alignParentTop="true" >
+
+ <!-- Contact photo placeholder -->
+ <com.android.contacts.common.widget.ProportionalLayout
+ android:layout_width="match_parent"
+ android:layout_height="wrap_content"
+ android:layout_alignParentStart="true"
+ android:id="@+id/photo_dummy"
+ ex:direction="widthToHeight"
+ ex:ratio="0.5" >
+
+ <!-- Proportional layout requires a view in it. -->
+ <View
+ android:layout_width="wrap_content"
+ android:layout_height="wrap_content" />
+
+ </com.android.contacts.common.widget.ProportionalLayout>
+
+ <!-- Contact name placeholder -->
+ <View
+ android:id="@+id/photo_text_bar_dummy"
+ android:layout_width="match_parent"
+ android:layout_height="42dip"
+ android:layout_alignBottom="@id/photo_dummy"
+ android:layout_alignParentStart="true" />
+
+ </RelativeLayout>
+
+ <!-- The actual details -->
+ <LinearLayout
+ android:layout_width="match_parent"
+ android:layout_height="wrap_content"
+ android:layout_below="@id/controls" >
+
+ <include layout="@layout/call_stats_detail_info" />
+ </LinearLayout>
+
+ <!-- The contents of the title block -->
+
+ <RelativeLayout
+ android:id="@+id/controls"
+ android:layout_width="match_parent"
+ android:layout_height="wrap_content"
+ android:layout_alignParentStart="true"
+ android:layout_alignParentTop="true" >
+
+ <com.android.contacts.common.widget.ProportionalLayout
+ android:id="@+id/contact_background_sizer"
+ android:layout_width="match_parent"
+ android:layout_height="wrap_content"
+ android:layout_alignParentStart="true"
+ ex:direction="widthToHeight"
+ ex:ratio="0.5" >
+
+ <ImageView
+ android:id="@+id/contact_background"
+ android:layout_width="match_parent"
+ android:layout_height="0dip"
+ android:adjustViewBounds="true"
+ android:scaleType="centerCrop" />
+
+ </com.android.contacts.common.widget.ProportionalLayout>
+
+ <LinearLayout
+ android:id="@+id/separator"
+ android:layout_width="match_parent"
+ android:layout_height="1dip"
+ android:layout_below="@+id/contact_background_sizer"
+ android:background="@color/background_dialer_light" />
+
+ <View
+ android:id="@+id/photo_text_bar"
+ android:layout_width="match_parent"
+ android:layout_height="42dip"
+ android:layout_alignBottom="@id/contact_background_sizer"
+ android:layout_alignParentStart="true"
+ android:background="#7F000000" />
+
+ <ImageView
+ android:id="@+id/main_action"
+ android:layout_width="wrap_content"
+ android:layout_height="0dip"
+ android:layout_alignBottom="@id/photo_text_bar"
+ android:layout_alignEnd="@id/photo_text_bar"
+ android:layout_alignTop="@id/photo_text_bar"
+ android:layout_marginEnd="@dimen/call_log_outer_margin"
+ android:scaleType="center" />
+
+ <TextView
+ android:id="@+id/header_text"
+ android:layout_width="wrap_content"
+ android:layout_height="0dip"
+ android:layout_alignBottom="@id/photo_text_bar"
+ android:layout_alignStart="@id/photo_text_bar"
+ android:layout_alignTop="@id/photo_text_bar"
+ android:layout_marginStart="@dimen/call_detail_contact_name_margin"
+ android:layout_marginEnd="@dimen/call_log_inner_margin"
+ android:layout_toStartOf="@id/main_action"
+ android:gravity="center_vertical"
+ android:singleLine="true"
+ android:textAppearance="?android:attr/textAppearanceMedium"
+ android:textColor="?attr/call_log_header_color" />
+
+ <ImageButton
+ android:id="@+id/main_action_push_layer"
+ android:layout_width="match_parent"
+ android:layout_height="match_parent"
+ android:layout_alignBottom="@id/contact_background_sizer"
+ android:layout_alignStart="@id/contact_background_sizer"
+ android:layout_alignEnd="@id/contact_background_sizer"
+ android:layout_alignTop="@id/contact_background_sizer"
+ android:background="?android:attr/selectableItemBackground" />
+
+ <FrameLayout
+ android:id="@+id/call_and_sms"
+ android:layout_width="match_parent"
+ android:layout_height="@dimen/call_log_list_item_height"
+ android:layout_below="@id/main_action_push_layer"
+ android:layout_marginBottom="@dimen/call_detail_button_spacing"
+ android:layout_marginTop="@dimen/call_detail_button_spacing"
+ android:background="@color/background_dialer_list_items"
+ android:gravity="center_vertical" >
+
+ <LinearLayout
+ android:id="@+id/call_and_sms_main_action"
+ android:layout_width="match_parent"
+ android:layout_height="match_parent"
+ android:background="?android:attr/selectableItemBackground"
+ android:focusable="true"
+ android:orientation="horizontal" >
+
+ <LinearLayout
+ android:layout_width="0dip"
+ android:layout_height="match_parent"
+ android:layout_weight="1"
+ android:gravity="center_vertical"
+ android:orientation="vertical"
+ android:paddingStart="@dimen/call_log_indent_margin" >
+
+ <TextView
+ android:id="@+id/call_and_sms_text"
+ android:layout_width="wrap_content"
+ android:layout_height="wrap_content"
+ android:ellipsize="end"
+ android:paddingEnd="@dimen/call_log_icon_margin"
+ android:singleLine="true"
+ android:textAppearance="?android:attr/textAppearanceMedium"
+ android:textColor="?attr/call_log_primary_text_color" />
+
+ <TextView
+ android:id="@+id/call_and_sms_label"
+ android:layout_width="wrap_content"
+ android:layout_height="wrap_content"
+ android:ellipsize="end"
+ android:paddingEnd="@dimen/call_log_icon_margin"
+ android:singleLine="true"
+ android:textAllCaps="true"
+ android:textAppearance="?android:attr/textAppearanceSmall"
+ android:textColor="?attr/call_log_primary_text_color" />
+ </LinearLayout>
+
+ <View
+ android:id="@+id/call_and_sms_divider"
+ android:layout_width="1px"
+ android:layout_height="32dip"
+ android:layout_gravity="center_vertical"
+ android:background="@color/background_dialer_light" />
+
+ <ImageView
+ android:id="@+id/call_and_sms_icon"
+ android:layout_width="@color/call_log_voicemail_highlight_color"
+ android:layout_height="match_parent"
+ android:background="?android:attr/selectableItemBackground"
+ android:focusable="true"
+ android:gravity="center"
+ android:paddingStart="@dimen/call_log_inner_margin"
+ android:paddingEnd="@dimen/call_log_outer_margin"
+ android:scaleType="centerInside" />
+
+ </LinearLayout>
+
+ </FrameLayout>
+
+ </RelativeLayout>
+
+ </RelativeLayout>
+
+</com.android.dialer.widget.AnchoredScrollView>
diff --git a/res/layout/call_stats_detail_info.xml b/res/layout/call_stats_detail_info.xml
new file mode 100644
index 000000000..70716700a
--- /dev/null
+++ b/res/layout/call_stats_detail_info.xml
@@ -0,0 +1,215 @@
+<?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.
+-->
+
+<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
+ xmlns:ex="http://schemas.android.com/apk/res/com.android.dialer"
+ android:id="@+id/call_stats_info"
+ android:layout_width="wrap_content"
+ android:layout_height="wrap_content"
+ android:layout_marginStart="@dimen/call_detail_contact_name_margin"
+ android:layout_marginTop="@dimen/call_log_outer_margin" >
+
+ <TextView
+ android:id="@+id/date_filter"
+ android:layout_width="match_parent"
+ android:layout_height="wrap_content"
+ android:textAppearance="?android:attr/textAppearanceSmall"
+ android:layout_marginBottom="@dimen/call_log_icon_margin"
+ android:textColor="@color/secondary_text_color" />
+
+ <LinearLayout
+ android:id="@+id/total_container"
+ android:layout_width="match_parent"
+ android:layout_height="wrap_content"
+ android:layout_marginBottom="@dimen/call_log_icon_margin"
+ android:layout_below="@id/date_filter" >
+
+ <ImageView
+ android:layout_width="wrap_content"
+ android:layout_height="wrap_content"
+ android:layout_gravity="center_vertical"
+ android:src="@drawable/ic_call_inout_holo_dark" />
+
+ <TextView
+ android:id="@+id/total_summary"
+ android:layout_width="wrap_content"
+ android:layout_height="wrap_content"
+ android:layout_weight="1"
+ android:layout_below="@id/date_filter"
+ android:layout_marginStart="@dimen/call_log_icon_margin"
+ android:textAppearance="?android:attr/textAppearanceSmall"
+ android:textColor="@color/secondary_text_color" />
+
+ </LinearLayout>
+
+ <TextView
+ android:id="@+id/total_duration"
+ android:layout_width="match_parent"
+ android:layout_height="wrap_content"
+ android:layout_below="@id/total_container"
+ android:layout_marginBottom="@dimen/call_log_inner_margin"
+ android:textAppearance="?android:attr/textAppearanceSmall"
+ android:textColor="@color/secondary_text_color" />
+
+ <com.android.dialer.widget.PieChartView
+ android:id="@+id/pie_chart"
+ android:layout_width="@dimen/call_stats_details_chart_size"
+ android:layout_height="@dimen/call_stats_details_chart_size"
+ android:layout_alignParentEnd="true"
+ android:layout_centerVertical="true"
+ android:layout_below="@id/total_duration"
+ ex:outlineColor="@color/call_stats_bar_background" />
+
+ <LinearLayout
+ android:layout_width="0dp"
+ android:layout_height="wrap_content"
+ android:layout_alignParentStart="true"
+ android:layout_toStartOf="@id/pie_chart"
+ android:layout_below="@id/total_duration"
+ android:divider="?android:attr/dividerHorizontal"
+ android:orientation="vertical"
+ android:showDividers="middle" >
+
+ <LinearLayout
+ android:id="@+id/in_container"
+ android:layout_width="match_parent"
+ android:layout_height="wrap_content"
+ android:layout_marginBottom="@dimen/call_log_icon_margin"
+ android:layout_marginTop="@dimen/call_log_icon_margin"
+ android:orientation="vertical" >
+
+ <LinearLayout
+ android:layout_width="match_parent"
+ android:layout_height="wrap_content" >
+
+ <ImageView
+ android:layout_width="wrap_content"
+ android:layout_height="wrap_content"
+ android:layout_gravity="center_vertical"
+ android:src="@drawable/ic_call_incoming_holo_dark" />
+
+ <TextView
+ android:id="@+id/in_summary"
+ android:layout_width="wrap_content"
+ android:layout_height="wrap_content"
+ android:layout_weight="1"
+ android:layout_marginStart="@dimen/call_log_icon_margin"
+ android:textAppearance="?android:attr/textAppearanceSmall"
+ android:textColor="@color/secondary_text_color" />
+
+ </LinearLayout>
+
+ <TextView
+ android:id="@+id/in_count"
+ android:layout_width="match_parent"
+ android:layout_height="wrap_content"
+ android:textAppearance="?android:attr/textAppearanceSmall"
+ android:textColor="@color/secondary_text_color" />
+
+ <TextView
+ android:id="@+id/in_duration"
+ android:layout_width="match_parent"
+ android:layout_height="wrap_content"
+ android:textAppearance="?android:attr/textAppearanceSmall"
+ android:textColor="@color/secondary_text_color" />
+
+ </LinearLayout>
+
+ <LinearLayout
+ android:id="@+id/out_container"
+ android:layout_width="match_parent"
+ android:layout_height="wrap_content"
+ android:layout_marginBottom="@dimen/call_log_icon_margin"
+ android:layout_marginTop="@dimen/call_log_icon_margin"
+ android:orientation="vertical" >
+
+ <LinearLayout
+ android:layout_width="match_parent"
+ android:layout_height="wrap_content" >
+
+ <ImageView
+ android:layout_width="wrap_content"
+ android:layout_height="wrap_content"
+ android:layout_gravity="center_vertical"
+ android:src="@drawable/ic_call_outgoing_holo_dark" />
+
+ <TextView
+ android:id="@+id/out_summary"
+ android:layout_width="wrap_content"
+ android:layout_height="wrap_content"
+ android:layout_weight="1"
+ android:layout_marginStart="@dimen/call_log_icon_margin"
+ android:textAppearance="?android:attr/textAppearanceSmall"
+ android:textColor="@color/secondary_text_color" />
+
+ </LinearLayout>
+
+ <TextView
+ android:id="@+id/out_count"
+ android:layout_width="match_parent"
+ android:layout_height="wrap_content"
+ android:textAppearance="?android:attr/textAppearanceSmall"
+ android:textColor="@color/secondary_text_color" />
+
+ <TextView
+ android:id="@+id/out_duration"
+ android:layout_width="match_parent"
+ android:layout_height="wrap_content"
+ android:textAppearance="?android:attr/textAppearanceSmall"
+ android:textColor="@color/secondary_text_color" />
+
+ </LinearLayout>
+
+ <LinearLayout
+ android:id="@+id/missed_container"
+ android:layout_width="match_parent"
+ android:layout_height="wrap_content"
+ android:layout_marginTop="@dimen/call_log_icon_margin"
+ android:orientation="vertical" >
+
+ <LinearLayout
+ android:layout_width="match_parent"
+ android:layout_height="wrap_content" >
+
+ <ImageView
+ android:layout_width="wrap_content"
+ android:layout_height="wrap_content"
+ android:layout_gravity="center_vertical"
+ android:src="@drawable/ic_call_missed_holo_dark" />
+
+ <TextView
+ android:id="@+id/missed_summary"
+ android:layout_width="match_parent"
+ android:layout_height="wrap_content"
+ android:layout_marginStart="@dimen/call_log_icon_margin"
+ android:textAppearance="?android:attr/textAppearanceSmall"
+ android:textColor="@color/secondary_text_color" />
+
+ </LinearLayout>
+
+ <TextView
+ android:id="@+id/missed_count"
+ android:layout_width="match_parent"
+ android:layout_height="wrap_content"
+ android:textAppearance="?android:attr/textAppearanceSmall"
+ android:textColor="@color/secondary_text_color" />
+
+ </LinearLayout>
+
+ </LinearLayout>
+
+</RelativeLayout>
diff --git a/res/layout/call_stats_fragment.xml b/res/layout/call_stats_fragment.xml
new file mode 100644
index 000000000..df121335b
--- /dev/null
+++ b/res/layout/call_stats_fragment.xml
@@ -0,0 +1,85 @@
+<?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.
+-->
+
+<!-- Layout parameters are set programmatically. -->
+<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
+ android:layout_width="match_parent"
+ android:layout_height="match_parent"
+ android:divider="?android:attr/dividerHorizontal"
+ android:orientation="vertical"
+ android:showDividers="end" >
+
+ <LinearLayout
+ android:id="@+id/call_stats_header"
+ android:layout_width="wrap_content"
+ android:layout_height="wrap_content"
+ android:orientation="vertical"
+ android:paddingTop="@dimen/call_log_inner_margin"
+ android:visibility="gone" >
+
+ <TextView
+ android:id="@+id/date_filter"
+ style="@style/ContactListSeparatorTextViewStyle"
+ android:layout_width="match_parent"
+ android:layout_height="wrap_content"
+ android:layout_marginStart="@dimen/call_log_outer_margin"
+ android:layout_marginEnd="@dimen/call_log_outer_margin"
+ android:background="@null" />
+
+ <TextView
+ android:id="@+id/sum_header"
+ style="@style/ContactListSeparatorTextViewStyle"
+ android:layout_width="match_parent"
+ android:layout_height="wrap_content"
+ android:layout_marginStart="@dimen/call_log_outer_margin"
+ android:layout_marginEnd="@dimen/call_log_outer_margin"
+ android:paddingBottom="@dimen/call_log_inner_margin" />
+
+ <View
+ android:id="@+id/call_stats_divider"
+ android:layout_width="match_parent"
+ android:layout_height="1px"
+ android:layout_gravity="bottom"
+ android:layout_marginStart="@dimen/call_log_outer_margin"
+ android:layout_marginEnd="@dimen/call_log_outer_margin"
+ android:background="#55ffffff" />
+ </LinearLayout>
+
+ <FrameLayout
+ android:layout_width="match_parent"
+ android:layout_height="match_parent" >
+
+ <ListView
+ android:id="@android:id/list"
+ android:layout_width="match_parent"
+ android:layout_height="match_parent"
+ android:divider="@null"
+ android:fadingEdge="none"
+ android:scrollbarStyle="outsideOverlay" />
+
+ <TextView
+ android:id="@android:id/empty"
+ android:layout_width="match_parent"
+ android:layout_height="match_parent"
+ android:layout_marginTop="@dimen/empty_message_top_margin"
+ android:gravity="center"
+ android:text="@string/recentCalls_empty"
+ android:textAppearance="?android:attr/textAppearanceLarge"
+ android:textColor="?android:attr/textColorSecondary" />
+ </FrameLayout>
+
+</LinearLayout>
diff --git a/res/layout/call_stats_list_item.xml b/res/layout/call_stats_list_item.xml
new file mode 100644
index 000000000..29d584daf
--- /dev/null
+++ b/res/layout/call_stats_list_item.xml
@@ -0,0 +1,115 @@
+<?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.
+-->
+
+<view
+ xmlns:android="http://schemas.android.com/apk/res/android"
+ xmlns:ex="http://schemas.android.com/apk/res/com.android.dialer"
+ class="com.android.dialer.calllog.CallLogListItemView"
+ android:layout_width="match_parent"
+ android:layout_height="wrap_content"
+ android:id="@+id/call_log_list_item"
+ android:orientation="vertical"
+>
+
+ <GridLayout
+ android:id="@+id/primary_action_view"
+ android:layout_width="match_parent"
+ android:layout_height="wrap_content"
+ android:layout_centerVertical="true"
+ android:layout_marginStart="@dimen/call_log_outer_margin"
+ android:layout_marginEnd="@dimen/call_log_outer_margin"
+ android:background="?android:attr/selectableItemBackground"
+ android:columnCount="3"
+ android:focusable="true"
+ android:nextFocusLeft="@+id/quick_contact_photo" >
+
+ <QuickContactBadge
+ android:id="@+id/quick_contact_photo"
+ android:layout_width="@dimen/call_log_list_contact_photo_size"
+ android:layout_height="@dimen/call_log_list_contact_photo_size"
+ android:layout_marginBottom="@dimen/call_log_icon_margin"
+ android:layout_marginTop="@dimen/call_log_icon_margin"
+ android:layout_rowSpan="3"
+ android:focusable="true"
+ android:nextFocusRight="@id/primary_action_view" />
+
+ <TextView
+ android:id="@+id/name"
+ android:layout_width="wrap_content"
+ android:layout_marginStart="@dimen/call_log_inner_margin"
+ android:layout_marginTop="@dimen/call_log_icon_margin"
+ android:ellipsize="marquee"
+ android:singleLine="true"
+ android:textColor="?attr/call_log_primary_text_color"
+ android:textSize="18sp" />
+
+ <TextView
+ android:id="@+id/percent"
+ android:layout_width="wrap_content"
+ android:layout_height="wrap_content"
+ android:layout_gravity="fill_horizontal|bottom"
+ android:gravity="end"
+ android:textColor="?attr/call_log_secondary_text_color"
+ android:textSize="14sp" />
+
+ <com.android.dialer.widget.LinearColorBar
+ android:id="@+id/percent_bar"
+ android:layout_height="10dp"
+ android:layout_columnSpan="2"
+ android:layout_gravity="fill_horizontal"
+ android:layout_marginBottom="@dimen/call_log_icon_margin"
+ android:layout_marginStart="@dimen/call_log_inner_margin"
+ android:layout_marginTop="@dimen/call_log_icon_margin"
+ android:orientation="horizontal"
+ android:paddingEnd="4dp"
+ android:paddingStart="4dp"
+ ex:backgroundColor="@color/call_stats_bar_background"
+ ex:blueColor="@color/call_stats_incoming"
+ ex:greenColor="@color/call_stats_outgoing"
+ ex:redColor="@color/call_stats_missed" />
+
+ <LinearLayout
+ android:layout_width="wrap_content"
+ android:layout_height="wrap_content"
+ android:layout_columnSpan="2"
+ android:layout_marginStart="@dimen/call_log_inner_margin"
+ android:orientation="horizontal" >
+
+ <TextView
+ android:id="@+id/number"
+ android:layout_width="wrap_content"
+ android:layout_height="wrap_content"
+ android:layout_marginEnd="@dimen/call_log_icon_margin"
+ android:ellipsize="marquee"
+ android:singleLine="true"
+ android:textColor="?attr/call_log_secondary_text_color"
+ android:textSize="14sp" />
+
+ <TextView
+ android:id="@+id/label"
+ android:layout_width="wrap_content"
+ android:layout_height="wrap_content"
+ android:layout_marginEnd="@dimen/call_log_icon_margin"
+ android:ellipsize="marquee"
+ android:singleLine="true"
+ android:textColor="?attr/call_log_secondary_text_color"
+ android:textSize="14sp"
+ android:textStyle="bold" />
+ </LinearLayout>
+ </GridLayout>
+
+</view>
diff --git a/res/layout/call_stats_nav_item.xml b/res/layout/call_stats_nav_item.xml
new file mode 100644
index 000000000..c6852b888
--- /dev/null
+++ b/res/layout/call_stats_nav_item.xml
@@ -0,0 +1,39 @@
+<?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.
+-->
+<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
+ android:layout_width="fill_parent"
+ android:layout_height="wrap_content"
+ android:orientation="horizontal" >
+
+ <ImageView
+ android:id="@+id/call_stats_nav_icon"
+ android:layout_width="wrap_content"
+ android:layout_height="wrap_content"
+ android:layout_gravity="center_vertical"
+ android:paddingStart="8dp" />
+
+ <TextView
+ android:id="@+id/call_stats_nav_text"
+ android:layout_width="match_parent"
+ android:layout_height="wrap_content"
+ android:gravity="center_vertical"
+ android:minHeight="40dp"
+ android:paddingEnd="?android:attr/listPreferredItemPaddingEnd"
+ android:paddingStart="?android:attr/listPreferredItemPaddingStart"
+ android:textAppearance="?android:attr/textAppearanceListItemSmall" />
+
+</LinearLayout>
diff --git a/res/layout/double_date_picker_dialog.xml b/res/layout/double_date_picker_dialog.xml
new file mode 100644
index 000000000..ec4a1f25b
--- /dev/null
+++ b/res/layout/double_date_picker_dialog.xml
@@ -0,0 +1,67 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!--
+**
+** Copyright 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:layout_width="wrap_content"
+ android:layout_height="wrap_content"
+ android:gravity="center"
+ android:orientation="vertical" >
+
+ <Spinner
+ android:id="@+id/date_quick_selection"
+ android:layout_marginTop="3dp"
+ android:layout_marginBottom="3dp"
+ android:layout_width="wrap_content"
+ android:layout_height="wrap_content" />
+
+ <TextView
+ android:layout_width="wrap_content"
+ android:layout_height="wrap_content"
+ android:layout_marginBottom="-12dp"
+ android:layout_marginRight="3dp"
+ android:layout_marginTop="3dp"
+ android:text="@string/call_stats_filter_from"
+ android:textAppearance="?android:attr/textAppearanceMedium" />
+
+ <DatePicker
+ android:id="@+id/date_picker_from"
+ android:datePickerMode="spinner"
+ android:layout_width="wrap_content"
+ android:layout_height="0dp"
+ android:layout_weight="1"
+ android:calendarViewShown="false"
+ android:spinnersShown="true" />
+
+ <TextView
+ android:layout_width="wrap_content"
+ android:layout_height="wrap_content"
+ android:layout_marginBottom="-12dp"
+ android:layout_marginRight="4dp"
+ android:text="@string/call_stats_filter_to"
+ android:textAppearance="?android:attr/textAppearanceMedium" />
+
+ <DatePicker
+ android:id="@+id/date_picker_to"
+ android:datePickerMode="spinner"
+ android:layout_width="wrap_content"
+ android:layout_height="0dp"
+ android:layout_weight="1"
+ android:calendarViewShown="false"
+ android:spinnersShown="true" />
+
+</LinearLayout>
diff --git a/res/menu/call_stats_details_options.xml b/res/menu/call_stats_details_options.xml
new file mode 100644
index 000000000..c16db3315
--- /dev/null
+++ b/res/menu/call_stats_details_options.xml
@@ -0,0 +1,27 @@
+<?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.
+-->
+<menu xmlns:android="http://schemas.android.com/apk/res/android">
+ <item
+ android:id="@+id/menu_edit_number_before_call"
+ android:title="@string/recentCalls_editNumberBeforeCall"
+ android:onClick="onMenuEditNumberBeforeCall"
+ />
+ <item
+ android:id="@+id/menu_add_to_blacklist"
+ android:title="@string/menu_add_to_blacklist"
+ android:onClick="onMenuAddToBlacklist"
+ />
+</menu>
diff --git a/res/menu/call_stats_options.xml b/res/menu/call_stats_options.xml
new file mode 100644
index 000000000..6cc9ec0d0
--- /dev/null
+++ b/res/menu/call_stats_options.xml
@@ -0,0 +1,45 @@
+<?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.
+-->
+<menu xmlns:android="http://schemas.android.com/apk/res/android" >
+ <item
+ android:id="@+id/filter"
+ android:showAsAction="always"
+ android:actionViewClass="android.widget.Spinner" />
+
+ <item
+ android:id="@+id/date_filter"
+ android:showAsAction="never"
+ android:title="@string/call_stats_date_filter"/>
+
+ <item
+ android:id="@+id/reset_date_filter"
+ android:showAsAction="never"
+ android:visible="false"
+ android:title="@string/call_stats_reset_filter"/>
+
+ <item
+ android:id="@+id/sort_by_duration"
+ android:showAsAction="never"
+ android:visible="false"
+ android:title="@string/call_stats_sort_by_duration"/>
+
+ <item
+ android:id="@+id/sort_by_count"
+ android:showAsAction="never"
+ android:title="@string/call_stats_sort_by_count"/>
+
+</menu>
diff --git a/res/values/attrs.xml b/res/values/attrs.xml
index 23f639fd2..5ea16f98b 100644
--- a/res/values/attrs.xml
+++ b/res/values/attrs.xml
@@ -33,4 +33,21 @@
<declare-styleable name="SearchEditTextLayout" />
+ <declare-styleable name="AnchoredScrollView">
+ <attr name="anchorView" format="reference" />
+ <attr name="anchorAtBottom" format="boolean" />
+ <attr name="anchoredView" format="reference" />
+ </declare-styleable>
+
+ <declare-styleable name="LinearColorBar">
+ <attr name="redColor" format="color" />
+ <attr name="greenColor" format="color" />
+ <attr name="blueColor" format="color" />
+ <attr name="backgroundColor" format="color" />
+ </declare-styleable>
+
+ <declare-styleable name="PieChartView">
+ <attr name="outlineColor" format="color" />
+ </declare-styleable>
+
</resources>
diff --git a/res/values/cm_arrays.xml b/res/values/cm_arrays.xml
new file mode 100644
index 000000000..4a58561dd
--- /dev/null
+++ b/res/values/cm_arrays.xml
@@ -0,0 +1,42 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!--
+ Copyright (C) 2013 The CyanogenMod 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">
+ <string-array name="call_stats_nav_items" translatable="false">
+ <item>@string/call_stats_nav_all</item>
+ <item>@string/call_stats_nav_incoming</item>
+ <item>@string/call_stats_nav_outgoing</item>
+ <item>@string/call_stats_nav_missed</item>
+ </string-array>
+
+ <!-- 0: sec
+ 1: min
+ 2: min sec
+ 3: hour
+ 4: hour sec
+ 5: hour min
+ 6: hour min sec -->
+
+ <string-array name="call_stats_duration">
+ <item><xliff:g id="seconds" example="2 secs">%3$s</xliff:g></item>
+ <item><xliff:g id="minutes" example="2 mins">%2$s</xliff:g></item>
+ <item><xliff:g id="minutes" example="2 mins">%2$s</xliff:g> <xliff:g id="seconds" example="2 secs">%3$s</xliff:g></item>
+ <item><xliff:g id="hours" example="2 hrs">%1$s</xliff:g></item>
+ <item><xliff:g id="hours" example="2 hrs">%1$s</xliff:g> <xliff:g id="seconds" example="2 secs">%3$s</xliff:g></item>
+ <item><xliff:g id="hours" example="2 hrs">%1$s</xliff:g> <xliff:g id="minutes" example="2 mins">%2$s</xliff:g></item>
+ <item><xliff:g id="hours" example="2 hrs">%1$s</xliff:g> <xliff:g id="minutes" example="2 mins">%2$s</xliff:g> <xliff:g id="seconds" example="2 secs">%3$s</xliff:g></item>
+ </string-array>
+</resources>
diff --git a/res/values/cm_plurals.xml b/res/values/cm_plurals.xml
new file mode 100644
index 000000000..0c4b4d21a
--- /dev/null
+++ b/res/values/cm_plurals.xml
@@ -0,0 +1,35 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!--
+ Copyright (C) 2013 The CyanogenMod 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">
+ <plurals name="hour">
+ <item quantity="one">1 hr</item>
+ <item quantity="other">%d hrs</item>
+ </plurals>
+ <plurals name="minute">
+ <item quantity="one">1 min</item>
+ <item quantity="other">%d mins</item>
+ </plurals>
+ <plurals name="second">
+ <item quantity="one">1 sec</item>
+ <item quantity="other">%d secs</item>
+ </plurals>
+
+ <plurals name="call">
+ <item quantity="one">1 call</item>
+ <item quantity="other">%d calls</item>
+ </plurals>
+</resources>
diff --git a/res/values/cm_strings.xml b/res/values/cm_strings.xml
index 6c0a5596a..ef1068ef6 100644
--- a/res/values/cm_strings.xml
+++ b/res/values/cm_strings.xml
@@ -18,4 +18,41 @@
<!-- Forward lookup -->
<string name="nearby_places">Nearby places</string>
<string name="people">People</string>
+ <string name="call_log_stats_title">Statistics</string>
+ <string name="callStatsDetailTitle">Call stat details</string>
+
+ <string name="call_stats">Call statistics</string>
+ <string name="call_stats_refresh">Refresh</string>
+ <string name="activity_title_call_stats">Call statistics</string>
+
+ <string name="call_stats_nav_all">All</string>
+ <string name="call_stats_nav_incoming">Incoming</string>
+ <string name="call_stats_nav_outgoing">Outgoing</string>
+ <string name="call_stats_nav_missed">Missed</string>
+ <string name="call_stats_incoming">Incoming: <xliff:g id="percent">%d</xliff:g>%%</string>
+ <string name="call_stats_outgoing">Outgoing: <xliff:g id="percent">%d</xliff:g>%%</string>
+ <string name="call_stats_missed">Missed</string>
+ <string name="call_stats_missed_percent">Missed: <xliff:g id="percent">%d</xliff:g>%%</string>
+ <string name="call_stats_header_total">Total: <xliff:g id="call_count">%s</xliff:g>, <xliff:g id="duration">%s</xliff:g></string>
+ <string name="call_stats_header_total_callsonly">Total: <xliff:g id="call_count">%s</xliff:g></string>
+ <string name="call_stats_filter_from">Start date</string>
+ <string name="call_stats_filter_to">End date</string>
+ <string name="call_stats_filter_picker_title">Filter range</string>
+
+ <string name="date_quick_selection">Quick selection</string>
+ <string name="date_qs_currentmonth">Current month</string>
+ <string name="date_qs_currentquarter">Current quarter</string>
+ <string name="date_qs_currentyear">Current year</string>
+ <string name="date_qs_lastweek">Last week</string>
+ <string name="date_qs_lastmonth">Last month</string>
+ <string name="date_qs_lastquarter">Last quarter</string>
+ <string name="date_qs_lastyear">Last year</string>
+
+ <string name="call_stats_date_filter">Adjust time range</string>
+ <string name="call_stats_reset_filter">Reset time range</string>
+ <string name="call_stats_sort_by_duration">Sort by call duration</string>
+ <string name="call_stats_sort_by_count">Sort by call count</string>
+
+ <string name="menu_add_to_blacklist">Add to blacklist</string>
+ <string name="toast_added_to_blacklist">%s added to blacklist.</string>
</resources>
diff --git a/res/values/colors.xml b/res/values/colors.xml
index 863bfe9d4..83b2b8f85 100644
--- a/res/values/colors.xml
+++ b/res/values/colors.xml
@@ -101,4 +101,12 @@
<color name="floating_action_button_touch_tint">#80ffffff</color>
+ <!-- Text color for no favorites message -->
+ <color name="nofavorite_text_color">#777777</color>
+
+ <!-- Colors for incoming and outgoing calls in the call statistics -->
+ <color name="call_stats_incoming">#33b5e5</color>
+ <color name="call_stats_outgoing">#99cc00</color>
+ <color name="call_stats_missed">#eb1313</color>
+ <color name="call_stats_bar_background">#88888888</color>
</resources>
diff --git a/res/values/dimens.xml b/res/values/dimens.xml
index 383a8faa6..3d50ed728 100644
--- a/res/values/dimens.xml
+++ b/res/values/dimens.xml
@@ -31,6 +31,8 @@
<dimen name="call_log_indent_margin">24dip</dimen>
<dimen name="call_log_name_margin_bottom">2dp</dimen>
<dimen name="call_log_list_item_height">56dip</dimen>
+ <dimen name="call_log_list_contact_photo_size">64dip</dimen>
+ <dimen name="call_detail_contact_name_margin">24dip</dimen>
<!-- Size of contact photos in the call log and call details. -->
<dimen name="contact_photo_size">40dp</dimen>
@@ -141,4 +143,7 @@
<dimen name="preference_padding_bottom">16dp</dimen>
<dimen name="preference_side_margin">16dp</dimen>
<dimen name="preference_summary_line_spacing_extra">4dp</dimen>
+
+ <!-- Size of the pie chart in the call stats detail activity -->
+ <dimen name="call_stats_details_chart_size">140dip</dimen>
</resources>