am b3c6951e: Merge "Fix Dialer tests"
* commit 'b3c6951e15865ac5a9007d281e12f380a16967e8':
Fix Dialer tests
diff --git a/res/drawable/ic_phone_plus_wifi.png b/res/drawable/ic_phone_plus_wifi.png
new file mode 100644
index 0000000..5cd75ab
--- /dev/null
+++ b/res/drawable/ic_phone_plus_wifi.png
Binary files differ
diff --git a/res/drawable/ic_wifi_call.png b/res/drawable/ic_wifi_call.png
new file mode 100644
index 0000000..886cbd7
--- /dev/null
+++ b/res/drawable/ic_wifi_call.png
Binary files differ
diff --git a/res/layout/wifi_call_enable_completion.xml b/res/layout/wifi_call_enable_completion.xml
new file mode 100644
index 0000000..dd63c3b
--- /dev/null
+++ b/res/layout/wifi_call_enable_completion.xml
@@ -0,0 +1,55 @@
+<?xml version="1.0" encoding="utf-8"?>
+
+<LinearLayout
+ android:orientation="vertical"
+ android:id="@+id/call_log_list_item"
+ xmlns:android="http://schemas.android.com/apk/res/android"
+ android:layout_width="match_parent"
+ android:layout_height="wrap_content">
+
+ <ImageView
+ android:layout_width="192dp"
+ android:layout_height="128dp"
+ android:paddingTop="32dp"
+ android:paddingBottom="32dp"
+ android:layout_gravity="center_horizontal"
+ android:src="@drawable/ic_phone_plus_wifi"/>
+
+ <TextView
+ android:layout_width="match_parent"
+ android:layout_height="wrap_content"
+ android:paddingLeft="64dp"
+ android:paddingRight="64dp"
+ android:textSize="12dp"
+ android:textColor="@color/dialtacts_secondary_text_color"
+ android:text="@string/wifi_setup_completed"/>
+
+ <LinearLayout
+ android:orientation="horizontal"
+ android:paddingTop="32dp"
+ android:paddingBottom="32dp"
+ android:layout_gravity="center_horizontal"
+ android:layout_width="wrap_content"
+ android:layout_height="wrap_content">
+
+ <TextView
+ android:layout_width="wrap_content"
+ android:layout_height="wrap_content"
+ android:paddingRight="16dp"
+ android:textSize="12dp"
+ android:textAllCaps="true"
+ android:textColor="@color/dialtacts_primary_text_color"
+ android:text="@string/wifi_setup_ok"/>
+
+ <TextView
+ android:layout_width="wrap_content"
+ android:layout_height="wrap_content"
+ android:paddingRight="16dp"
+ android:textSize="12dp"
+ android:textAllCaps="true"
+ android:textColor="@color/dialtacts_primary_text_color"
+ android:text="@string/wifi_setup_settings_shortcut"/>
+
+ </LinearLayout>
+
+</LinearLayout>
\ No newline at end of file
diff --git a/res/layout/wifi_call_enable_settings.xml b/res/layout/wifi_call_enable_settings.xml
new file mode 100644
index 0000000..565cb01
--- /dev/null
+++ b/res/layout/wifi_call_enable_settings.xml
@@ -0,0 +1,135 @@
+<?xml version="1.0" encoding="utf-8"?>
+
+<LinearLayout
+ android:orientation="vertical"
+ android:id="@+id/call_log_list_item"
+ xmlns:android="http://schemas.android.com/apk/res/android"
+ android:layout_width="match_parent"
+ android:layout_height="wrap_content">
+
+ <TextView
+ android:layout_width="match_parent"
+ android:layout_height="wrap_content"
+ android:padding="10dp"
+ android:textSize="16dp"
+ android:textColor="@color/foreground_wifi_highlight"
+ android:background="@color/background_wifi_highlight"
+ android:text="@string/wifi_when_connected_to_a_signal"/>
+
+ <View
+ android:layout_width="match_parent"
+ android:layout_height="1dp"
+ android:background="@color/wifi_dark_wifi_highlight"/>
+
+ <LinearLayout
+ android:padding="10dp"
+ android:orientation="horizontal"
+ android:layout_width="match_parent"
+ android:layout_height="wrap_content">
+
+ <!-- TODO(ihab): Do this layout without using layout_weight -->
+
+ <TextView
+ android:layout_width="wrap_content"
+ android:layout_height="wrap_content"
+ android:layout_weight="1"
+ android:textSize="16dp"
+ android:textColor="@color/dialtacts_primary_text_color"
+ android:text="@string/wifi_always_use_wifi"/>
+
+ <RadioButton
+ android:layout_width="wrap_content"
+ android:layout_height="wrap_content"
+ android:id="@+id/wifi_always_use_wifi"/>
+
+ </LinearLayout>
+
+ <View
+ android:layout_width="match_parent"
+ android:layout_height="1dp"
+ android:layout_marginLeft="10dp"
+ android:layout_marginRight="10dp"
+ android:background="@color/wifi_list_separator"/>
+
+ <LinearLayout
+ android:padding="10dp"
+ android:orientation="horizontal"
+ android:layout_width="match_parent"
+ android:layout_height="wrap_content">
+
+ <!-- TODO(ihab): Do this layout without using layout_weight -->
+
+ <TextView
+ android:layout_width="wrap_content"
+ android:layout_height="wrap_content"
+ android:layout_weight="1"
+ android:textSize="16dp"
+ android:textColor="@color/dialtacts_primary_text_color"
+ android:text="@string/wifi_ask_use_wifi"/>
+
+ <RadioButton
+ android:layout_width="wrap_content"
+ android:layout_height="wrap_content"
+ android:id="@+id/wifi_ask_use_wifi"/>
+
+ </LinearLayout>
+
+ <View
+ android:layout_width="match_parent"
+ android:layout_height="1dp"
+ android:layout_marginLeft="10dp"
+ android:layout_marginRight="10dp"
+ android:background="@color/wifi_list_separator"/>
+
+ <LinearLayout
+ android:padding="10dp"
+ android:orientation="horizontal"
+ android:layout_width="match_parent"
+ android:layout_height="wrap_content">
+
+ <!-- TODO(ihab): Do this layout without using layout_weight -->
+
+ <TextView
+ android:layout_width="wrap_content"
+ android:layout_height="wrap_content"
+ android:layout_weight="1"
+ android:textSize="16dp"
+ android:textColor="@color/dialtacts_primary_text_color"
+ android:text="@string/wifi_never_use_wifi"/>
+
+ <RadioButton
+ android:layout_width="wrap_content"
+ android:layout_height="wrap_content"
+ android:checked="true"
+ android:id="@+id/wifi_never_use_wifi"/>
+
+ </LinearLayout>
+
+ <View
+ android:layout_width="match_parent"
+ android:layout_height="1dp"
+ android:background="@color/wifi_list_separator"/>
+
+ <LinearLayout
+ android:padding="10dp"
+ android:orientation="horizontal"
+ android:gravity="end"
+ android:layout_width="match_parent"
+ android:layout_height="wrap_content">
+
+ <TextView
+ android:layout_width="wrap_content"
+ android:layout_height="wrap_content"
+ android:textSize="16dp"
+ android:textColor="@color/dialtacts_primary_text_color"
+ android:text="@string/wifi_next_setup_screen"/>
+
+ <ImageView
+ android:layout_width="32dp"
+ android:layout_height="32dp"
+ android:paddingStart="8dp"
+ android:src="@drawable/ic_wifi_call"/>
+
+ </LinearLayout>
+
+</LinearLayout>
\ No newline at end of file
diff --git a/res/layout/wifi_call_enable_teaser.xml b/res/layout/wifi_call_enable_teaser.xml
new file mode 100644
index 0000000..fd70619
--- /dev/null
+++ b/res/layout/wifi_call_enable_teaser.xml
@@ -0,0 +1,41 @@
+<?xml version="1.0" encoding="utf-8"?>
+
+<LinearLayout
+ android:orientation="horizontal"
+ android:id="@+id/call_log_list_item"
+ xmlns:android="http://schemas.android.com/apk/res/android"
+ android:layout_width="match_parent"
+ android:layout_height="wrap_content">
+
+ <ImageView
+ android:layout_width="64dp"
+ android:layout_height="64dp"
+ android:padding="16dp"
+ android:src="@drawable/ic_wifi_call"
+ android:background="@color/background_wifi_highlight"/>
+
+ <LinearLayout
+ android:orientation="vertical"
+ android:layout_width="0dp"
+ android:layout_weight="1"
+ android:gravity="center_vertical"
+ android:padding="8dp"
+ android:layout_height="match_parent">
+
+ <TextView
+ android:layout_width="wrap_content"
+ android:layout_height="wrap_content"
+ android:textSize="16dp"
+ android:textColor="@color/dialtacts_primary_text_color"
+ android:text="@string/wifi_no_signal_no_problem"/>
+
+ <TextView
+ android:layout_width="wrap_content"
+ android:layout_height="wrap_content"
+ android:textSize="12dp"
+ android:textColor="@color/dialtacts_secondary_text_color"
+ android:text="@string/wifi_enable_google_wifi_calling"/>
+
+ </LinearLayout>
+
+</LinearLayout>
\ No newline at end of file
diff --git a/res/values-af/strings.xml b/res/values-af/strings.xml
index e9e0676..927136d 100644
--- a/res/values-af/strings.xml
+++ b/res/values-af/strings.xml
@@ -160,5 +160,5 @@
<string name="num_missed_calls" msgid="8081736535604293886">"<xliff:g id="NUMBER">%s</xliff:g> nuwe gemiste oproepe"</string>
<string name="no_favorites" msgid="5212485868783382971">"Gunstelinge en kontakte \nwat jy gereeld bel, sal hier wys.\nSo, begin bel."</string>
<string name="contact_tooltip" msgid="7817483485692282287">"Tik prent om alle getalle te sien of druk en hou om te herorganiseer"</string>
- <string name="description_dismiss" msgid="2146276780562549643">"Maak toe"</string>
+ <string name="description_dismiss" msgid="2146276780562549643">"Verwerp"</string>
</resources>
diff --git a/res/values-ar/strings.xml b/res/values-ar/strings.xml
index 5b60eb9..9998c6f 100644
--- a/res/values-ar/strings.xml
+++ b/res/values-ar/strings.xml
@@ -125,13 +125,13 @@
<string name="dialerDialpadHintText" msgid="5824490365898349041">"طلب لإضافة مكالمة"</string>
<string name="callDetailsDurationFormat" msgid="8157706382818184268">"عدد الدقائق:<xliff:g id="MINUTES">%s</xliff:g>، عددالثواني: <xliff:g id="SECONDS">%s</xliff:g>"</string>
<string name="dialog_phone_call_prohibited_message" msgid="6554711866586660441">"لم يتم إرسال المكالمة"</string>
- <string name="dialog_voicemail_not_ready_message" msgid="4384716252789515378">"لإعداد البريد الصوتي، انتقل إلى القائمة > الإعدادات."</string>
+ <string name="dialog_voicemail_not_ready_message" msgid="4384716252789515378">"لإعداد البريد الصوتي، انتقل إلى القائمة > الإعدادات."</string>
<string name="dialog_voicemail_airplane_mode_message" msgid="530922773669546093">"للاتصال بالبريد الصوتي، يجب أولاً إيقاف وضع الطائرة."</string>
<string name="contact_list_loading" msgid="5488620820563977329">"جارٍ التحميل..."</string>
<string name="imei" msgid="3045126336951684285">"IMEI"</string>
<string name="meid" msgid="6210568493746275750">"MEID"</string>
- <string name="simContacts_emptyLoading" msgid="6700035985448642408">"جارٍ التحميل من بطاقة SIM…"</string>
- <string name="simContacts_title" msgid="27341688347689769">"بطاقة SIM وجهات الاتصال"</string>
+ <string name="simContacts_emptyLoading" msgid="6700035985448642408">"جارٍ التحميل من بطاقة SIM…"</string>
+ <string name="simContacts_title" msgid="27341688347689769">"بطاقة SIM وجهات الاتصال"</string>
<string name="add_contact_not_available" msgid="1419207765446461366">"أعد تمكين تطبيق الأشخاص لاستخدام هذه الميزة."</string>
<string name="dialer_hint_find_contact" msgid="8798845521253672403">"أدخل اسمًا أو رقم هاتف"</string>
<string name="call_log_all_title" msgid="3566738938889333307">"الكل"</string>
diff --git a/res/values-da/strings.xml b/res/values-da/strings.xml
index 343016a..6bd3f72 100644
--- a/res/values-da/strings.xml
+++ b/res/values-da/strings.xml
@@ -160,5 +160,5 @@
<string name="num_missed_calls" msgid="8081736535604293886">"<xliff:g id="NUMBER">%s</xliff:g> nye ubesvarede opkald"</string>
<string name="no_favorites" msgid="5212485868783382971">"Dine foretrukne og de kontaktpersoner, du\noftest ringer til, vises her.\nSå gå du bare i gang med at ringe."</string>
<string name="contact_tooltip" msgid="7817483485692282287">"Tryk på billedet for at se alle telefonnumre, eller tryk på billedet, og hold det nede, for at omarrangere"</string>
- <string name="description_dismiss" msgid="2146276780562549643">"Annuller"</string>
+ <string name="description_dismiss" msgid="2146276780562549643">"Annullerer"</string>
</resources>
diff --git a/res/values-fa/strings.xml b/res/values-fa/strings.xml
index ab95711..d7df7f6 100644
--- a/res/values-fa/strings.xml
+++ b/res/values-fa/strings.xml
@@ -125,7 +125,7 @@
<string name="dialerDialpadHintText" msgid="5824490365898349041">"شماره گیری برای افزودن یک تماس"</string>
<string name="callDetailsDurationFormat" msgid="8157706382818184268">"<xliff:g id="MINUTES">%s</xliff:g> دقیقه و <xliff:g id="SECONDS">%s</xliff:g> ثانیه"</string>
<string name="dialog_phone_call_prohibited_message" msgid="6554711866586660441">"تماس ارسال نشد"</string>
- <string name="dialog_voicemail_not_ready_message" msgid="4384716252789515378">"برای راهاندازی پست صوتی به منو > تنظیمات بروید."</string>
+ <string name="dialog_voicemail_not_ready_message" msgid="4384716252789515378">"برای راهاندازی پست صوتی به منو > تنظیمات بروید."</string>
<string name="dialog_voicemail_airplane_mode_message" msgid="530922773669546093">"برای تماس با پست صوتی، ابتدا حالت هواپیما را غیرفعال کنید."</string>
<string name="contact_list_loading" msgid="5488620820563977329">"در حال بارگیری..."</string>
<string name="imei" msgid="3045126336951684285">"IMEI"</string>
diff --git a/res/values-fr/strings.xml b/res/values-fr/strings.xml
index f3dd323..bd54267 100644
--- a/res/values-fr/strings.xml
+++ b/res/values-fr/strings.xml
@@ -90,7 +90,7 @@
<string name="menu_show_voicemails_only" msgid="1898421289561435703">"Messages vocaux uniquement"</string>
<string name="menu_show_all_calls" msgid="7560347482073345885">"Afficher tous les appels"</string>
<string name="add_2sec_pause" msgid="9214012315201040129">"Ajouter une pause de 2 s"</string>
- <string name="add_wait" msgid="3360818652790319634">"Ajouter une attente"</string>
+ <string name="add_wait" msgid="3360818652790319634">"Ajouter Attente"</string>
<string name="call_settings" msgid="7666474782093693667">"Paramètres"</string>
<string name="menu_newContact" msgid="1209922412763274638">"Nouveau contact"</string>
<string name="menu_allContacts" msgid="6948308384034051670">"Tous les contacts"</string>
diff --git a/res/values-hi/strings.xml b/res/values-hi/strings.xml
index 00e87fa..f6d2a3d 100644
--- a/res/values-hi/strings.xml
+++ b/res/values-hi/strings.xml
@@ -132,7 +132,7 @@
<string name="meid" msgid="6210568493746275750">"MEID"</string>
<string name="simContacts_emptyLoading" msgid="6700035985448642408">"सिम कार्ड से लोड हो रहा है…"</string>
<string name="simContacts_title" msgid="27341688347689769">"सिम कार्ड के संपर्क"</string>
- <string name="add_contact_not_available" msgid="1419207765446461366">"इस सुविधा का उपयोग करने के लिए लोग ऐप्स को पुन: सक्षम करें."</string>
+ <string name="add_contact_not_available" msgid="1419207765446461366">"इस सुविधा का उपयोग करने के लिए लोग एप्स को पुन: सक्षम करें."</string>
<string name="dialer_hint_find_contact" msgid="8798845521253672403">"नाम या फ़ोन नंबर लिखें"</string>
<string name="call_log_all_title" msgid="3566738938889333307">"सभी"</string>
<string name="call_log_missed_title" msgid="4541142293870638971">"छूटे हुए"</string>
diff --git a/res/values-hy-rAM/strings.xml b/res/values-hy-rAM/strings.xml
index 2a6e5e2..7385039 100644
--- a/res/values-hy-rAM/strings.xml
+++ b/res/values-hy-rAM/strings.xml
@@ -158,7 +158,7 @@
<string name="search_shortcut_call_number" msgid="7277194656832895870">"Զանգել <xliff:g id="NUMBER">%s</xliff:g>"</string>
<string name="search_shortcut_add_to_contacts" msgid="1853716708655789069">"Ավելացնել կոնտակտներում"</string>
<string name="num_missed_calls" msgid="8081736535604293886">"<xliff:g id="NUMBER">%s</xliff:g> նոր բաց թողնված զանգ"</string>
- <string name="no_favorites" msgid="5212485868783382971">"Հաճախ կանչվող ընտրյալները և կոնտակտները\nկցուցադրվեն այստեղ:\nԿարող եք զանգել:"</string>
+ <string name="no_favorites" msgid="5212485868783382971">"Հաճախ կանչվող ընտրյալներ & կոնտակտները\nկցուցադրվեն այստեղ:\nԿարող եք զանգել:"</string>
<string name="contact_tooltip" msgid="7817483485692282287">"Հպեք նկարին՝ բոլոր համարները տեսնելու, կամ հպեք ու պահեք՝ վերադասավորելու համար:"</string>
<string name="description_dismiss" msgid="2146276780562549643">"Անտեսել"</string>
</resources>
diff --git a/res/values-in/strings.xml b/res/values-in/strings.xml
index 0db2d04..4012b78 100644
--- a/res/values-in/strings.xml
+++ b/res/values-in/strings.xml
@@ -89,7 +89,7 @@
<string name="menu_show_missed_only" msgid="154473166059743996">"Tampilkan panggilan terlewat"</string>
<string name="menu_show_voicemails_only" msgid="1898421289561435703">"Tampilkan pesan suara saja"</string>
<string name="menu_show_all_calls" msgid="7560347482073345885">"Tampilkan semua panggilan"</string>
- <string name="add_2sec_pause" msgid="9214012315201040129">"Tambahkan jeda 2 dtk"</string>
+ <string name="add_2sec_pause" msgid="9214012315201040129">"Tambahkan jeda 2-det"</string>
<string name="add_wait" msgid="3360818652790319634">"Tambahkan tunggu"</string>
<string name="call_settings" msgid="7666474782093693667">"Setelan"</string>
<string name="menu_newContact" msgid="1209922412763274638">"Kontak baru"</string>
diff --git a/res/values-iw/strings.xml b/res/values-iw/strings.xml
index 5a8df3ac..90c2ed6 100644
--- a/res/values-iw/strings.xml
+++ b/res/values-iw/strings.xml
@@ -125,13 +125,13 @@
<string name="dialerDialpadHintText" msgid="5824490365898349041">"חייג כדי להוסיף שיחה"</string>
<string name="callDetailsDurationFormat" msgid="8157706382818184268">"<xliff:g id="MINUTES">%s</xliff:g> דקות <xliff:g id="SECONDS">%s</xliff:g> שניות"</string>
<string name="dialog_phone_call_prohibited_message" msgid="6554711866586660441">"השיחה לא נשלחה."</string>
- <string name="dialog_voicemail_not_ready_message" msgid="4384716252789515378">"כדי להגדיר את הדואר הקולי, עבור אל \'תפריט\' > \'הגדרות\'."</string>
+ <string name="dialog_voicemail_not_ready_message" msgid="4384716252789515378">"כדי להגדיר את הדואר הקולי, עבור אל \'תפריט\' > \'הגדרות\'."</string>
<string name="dialog_voicemail_airplane_mode_message" msgid="530922773669546093">"כדי להתקשר לדואר קולי, ראשית כבה את מצב הטיסה."</string>
<string name="contact_list_loading" msgid="5488620820563977329">"טוען..."</string>
<string name="imei" msgid="3045126336951684285">"IMEI"</string>
<string name="meid" msgid="6210568493746275750">"MEID"</string>
- <string name="simContacts_emptyLoading" msgid="6700035985448642408">"טוען מכרטיס SIM…"</string>
- <string name="simContacts_title" msgid="27341688347689769">"אנשי קשר בכרטיס SIM"</string>
+ <string name="simContacts_emptyLoading" msgid="6700035985448642408">"טוען מכרטיס SIM…"</string>
+ <string name="simContacts_title" msgid="27341688347689769">"אנשי קשר בכרטיס SIM"</string>
<string name="add_contact_not_available" msgid="1419207765446461366">"הפעל מחדש את אפליקציית אנשי הקשר כדי להשתמש בתכונה זו."</string>
<string name="dialer_hint_find_contact" msgid="8798845521253672403">"הקלד שם או מספר טלפון"</string>
<string name="call_log_all_title" msgid="3566738938889333307">"הכול"</string>
diff --git a/res/values-ru/strings.xml b/res/values-ru/strings.xml
index e647f63..5a9d84b 100644
--- a/res/values-ru/strings.xml
+++ b/res/values-ru/strings.xml
@@ -159,6 +159,6 @@
<string name="search_shortcut_add_to_contacts" msgid="1853716708655789069">"Добавить в контакты"</string>
<string name="num_missed_calls" msgid="8081736535604293886">"Пропущенных вызовов: <xliff:g id="NUMBER">%s</xliff:g>"</string>
<string name="no_favorites" msgid="5212485868783382971">"Здесь будут отображаться избранные элементы\nи контакты, которым вы звоните чаще всего.\nОбщайтесь с удовольствием."</string>
- <string name="contact_tooltip" msgid="7817483485692282287">"Нажмите на фото, чтобы посмотреть информацию о контакте. Чтобы переставить контакт в списке, нажмите на него и передвиньте на нужное место."</string>
+ <string name="contact_tooltip" msgid="7817483485692282287">"Нажмите на фото, чтобы посмотреть все номера. Чтобы изменить порядок номеров, нажмите и удерживайте фото."</string>
<string name="description_dismiss" msgid="2146276780562549643">"Закрыть"</string>
</resources>
diff --git a/res/values/colors.xml b/res/values/colors.xml
index a8ddf2b..04e10b1 100644
--- a/res/values/colors.xml
+++ b/res/values/colors.xml
@@ -70,4 +70,17 @@
<!-- Text color for no favorites message -->
<color name="nofavorite_text_color">#777777</color>
+
+ <!-- Background color of wifi highlight items -->
+ <color name="background_wifi_highlight">#00ff00</color>
+
+ <!-- Foreground color of wifi highlight items -->
+ <color name="foreground_wifi_highlight">#ffffff</color>
+
+ <!-- Dark (e.g. border) regions of wifi highlight items -->
+ <color name="wifi_dark_wifi_highlight">#009900</color>
+
+ <!-- Generic separator color for wifi list items -->
+ <color name="wifi_list_separator">#909090</color>
+
</resources>
diff --git a/res/values/strings.xml b/res/values/strings.xml
index 9b534da..b04eddd 100644
--- a/res/values/strings.xml
+++ b/res/values/strings.xml
@@ -636,4 +636,27 @@
<!-- Content description for dismiss button on badge. [CHAR LIMIT=NONE] -->
<string name="description_dismiss">Dismiss</string>
+
+ <string name="wifi_no_signal_no_problem">No Signal? No Problem.</string>
+
+ <string name="wifi_enable_google_wifi_calling">Enable Google Wi-Fi Calling</string>
+
+ <string name="wifi_when_connected_to_a_signal">When connected to a strong Wi-Fi signal:</string>
+
+ <string name="wifi_always_use_wifi">Always use Wi-Fi to make calls</string>
+
+ <string name="wifi_ask_use_wifi">Always ask</string>
+
+ <string name="wifi_never_use_wifi">Never use Wi-Fi to make calls</string>
+
+ <string name="wifi_next_setup_screen">Next</string>
+
+ <string name="wifi_previous_setup_screen">Back</string>
+
+ <string name="wifi_setup_completed">Boom. Wi-Fi calling is all set up. You can change your preferences or turn it off anytime in settings.</string>
+
+ <string name="wifi_setup_ok">Ok, got it</string>
+
+ <string name="wifi_setup_settings_shortcut">Call settings</string>
+
</resources>
diff --git a/src/com/android/dialer/list/PhoneFavoriteFragment.java b/src/com/android/dialer/list/PhoneFavoriteFragment.java
index 34666ee..19abcd7 100644
--- a/src/com/android/dialer/list/PhoneFavoriteFragment.java
+++ b/src/com/android/dialer/list/PhoneFavoriteFragment.java
@@ -183,6 +183,26 @@
}
}
+ private final WifiWizardAdapter.WifiWizardModel mWifiWizardModel =
+ new WifiWizardAdapter.WifiWizardModel() {
+ @Override
+ public void setWifiCallState(int state) {
+ // TODO(ihab): Implement based on real data
+ }
+
+ @Override
+ public int getWifiCallState() {
+ // TODO(ihab): Implement based on real data
+ return WIFI_CALL_STATE_ALWAYS;
+ }
+
+ @Override
+ public boolean shouldDisplayWifiSelection() {
+ // TODO(ihab): Implement based on real data
+ return true;
+ }
+ };
+
private Listener mListener;
private OnListFragmentScrolledListener mActivityScrollListener;
@@ -305,7 +325,8 @@
R.layout.tile_interactions_teaser_view, mListView, false);
mAdapter = new PhoneFavoriteMergedAdapter(getActivity(), this, mContactTileAdapter,
- mCallLogAdapter, mShowAllContactsButton, mTileInteractionTeaserView);
+ mCallLogAdapter, mShowAllContactsButton, mTileInteractionTeaserView,
+ mWifiWizardModel);
mTileInteractionTeaserView.setAdapter(mAdapter);
diff --git a/src/com/android/dialer/list/PhoneFavoriteMergedAdapter.java b/src/com/android/dialer/list/PhoneFavoriteMergedAdapter.java
index e7190c5..53d2ea6 100644
--- a/src/com/android/dialer/list/PhoneFavoriteMergedAdapter.java
+++ b/src/com/android/dialer/list/PhoneFavoriteMergedAdapter.java
@@ -54,6 +54,7 @@
private static final int ALL_CONTACTS_BUTTON_ITEM_ID = -1;
private final PhoneFavoritesTileAdapter mContactTileAdapter;
private final CallLogAdapter mCallLogAdapter;
+ private final WifiWizardAdapter mWifiWizardAdapter;
private final View mShowAllContactsButton;
private final PhoneFavoriteFragment mFragment;
private final TileInteractionTeaserView mTileInteractionTeaserView;
@@ -104,14 +105,17 @@
PhoneFavoritesTileAdapter contactTileAdapter,
CallLogAdapter callLogAdapter,
View showAllContactsButton,
- TileInteractionTeaserView tileInteractionTeaserView) {
+ TileInteractionTeaserView tileInteractionTeaserView,
+ WifiWizardAdapter.WifiWizardModel wifiWizardModel) {
final Resources resources = context.getResources();
mContext = context;
mFragment = fragment;
mCallLogPadding = resources.getDimensionPixelSize(R.dimen.recent_call_log_item_padding);
mContactTileAdapter = contactTileAdapter;
mCallLogAdapter = callLogAdapter;
+ mWifiWizardAdapter = new WifiWizardAdapter(context, wifiWizardModel);
mObserver = new CustomDataSetObserver();
+ mWifiWizardAdapter.registerDataSetObserver(mObserver);
mCallLogAdapter.registerDataSetObserver(mObserver);
mContactTileAdapter.registerDataSetObserver(mObserver);
mShowAllContactsButton = showAllContactsButton;
@@ -123,15 +127,23 @@
@Override
public int getCount() {
if (mContactTileAdapter.getCount() > 0) {
- return mContactTileAdapter.getCount() + mCallLogAdapter.getCount() + 1 +
- getTeaserViewCount();
+ return mWifiWizardAdapter.getCount() + mContactTileAdapter.getCount() +
+ mCallLogAdapter.getCount() + 1 + getTeaserViewCount();
} else {
- return mCallLogAdapter.getCount();
+ return mWifiWizardAdapter.getCount() + mCallLogAdapter.getCount();
}
}
@Override
public Object getItem(int position) {
+ if (mWifiWizardAdapter.getCount() > 0) {
+ if (position < mWifiWizardAdapter.getCount()) {
+ return mWifiWizardAdapter.getItem(position);
+ } else {
+ position -= mWifiWizardAdapter.getCount();
+ }
+ }
+
final int callLogAdapterCount = mCallLogAdapter.getCount();
if (callLogAdapterCount > 0) {
@@ -151,16 +163,26 @@
*
* These are the ranges of IDs reserved for each item type.
*
- * -(N + 1) to -3: CallLogAdapterItems, where N is equal to the number of call log items
+ * -(N + 4): Wi-Fi Wizard item, where N is equal to the number of call log items
+ * -(N + 3) to -3: CallLogAdapterItems, where N is equal to the number of call log items
* -2: Teaser
* -1: All contacts button
- * 0 to (N -1): Rows of tiled contacts, where N is equal to the max rows of tiled contacts
- * N to infinity: Rows of regular contacts. Their item id is calculated by N + contact_id,
+ * 0 to (M -1): Rows of tiled contacts, where M is equal to the max rows of tiled contacts
+ * M to infinity: Rows of regular contacts. Their item id is calculated by M + contact_id,
* where contact_id is guaranteed to never be negative.
*/
@Override
public long getItemId(int position) {
final int callLogAdapterCount = mCallLogAdapter.getCount();
+
+ if (mWifiWizardAdapter.getCount() > 0) {
+ if (position < mWifiWizardAdapter.getCount()) {
+ return - callLogAdapterCount - 4;
+ } else {
+ position -= mWifiWizardAdapter.getCount();
+ }
+ }
+
if (position < callLogAdapterCount) {
// Call log items are not animated, so reusing their position for IDs is fine.
return ALL_CONTACTS_BUTTON_ITEM_ID - 2 - position;
@@ -184,7 +206,8 @@
@Override
public int getViewTypeCount() {
- return (mContactTileAdapter.getViewTypeCount() + /* Favorite and frequent */
+ return (mWifiWizardAdapter.getViewTypeCount() + /* Enable Wifi calling */
+ mContactTileAdapter.getViewTypeCount() + /* Favorite and frequent */
mCallLogAdapter.getViewTypeCount() + /* Recent call log */
getTeaserViewCount() + /* Teaser */
1); /* Show all contacts button. */
@@ -192,6 +215,14 @@
@Override
public int getItemViewType(int position) {
+ if (mWifiWizardAdapter.getCount() > 0) {
+ if (position < mWifiWizardAdapter.getCount()) {
+ return mWifiWizardAdapter.getItemViewType(position);
+ } else {
+ position -= mWifiWizardAdapter.getCount();
+ }
+ }
+
final int callLogAdapterCount = mCallLogAdapter.getCount();
if (position < callLogAdapterCount) {
@@ -202,7 +233,7 @@
mTileInteractionTeaserView.getShouldDisplayInList()) {
// View type of the teaser row is the last view type of the contact tile adapter + 3
return mContactTileAdapter.getViewTypeCount() + 2;
- } else if (position < getCount() - 1) {
+ } else if (position < getCount() - mWifiWizardAdapter.getCount() - 1) {
return mContactTileAdapter.getItemViewType(
getAdjustedFavoritePosition(position, callLogAdapterCount));
} else {
@@ -214,9 +245,32 @@
@Override
public View getView(int position, View convertView, ViewGroup parent) {
+ if (mWifiWizardAdapter.getCount() > 0) {
+ if (position < mWifiWizardAdapter.getCount()) {
+ SwipeableCallLogRow wrapper = new SwipeableCallLogRow(mContext);
+ wrapper.addView(mWifiWizardAdapter.getView(position, convertView, parent));
+ wrapper.setOnItemSwipeListener(new OnItemGestureListener() {
+ @Override
+ public void onSwipe(View view) {}
+
+ @Override
+ public void onTouch() {}
+
+ @Override
+ public boolean isSwipeEnabled() {
+ return false;
+ }
+ });
+ return wrapper;
+ } else {
+ position -= mWifiWizardAdapter.getCount();
+ }
+ }
+
final int callLogAdapterCount = mCallLogAdapter.getCount();
- if ((position == getCount() - 1) && (mContactTileAdapter.getCount() > 0)) {
+ if ((position == getCount() - mWifiWizardAdapter.getCount() - 1)
+ && (mContactTileAdapter.getCount() > 0)) {
return mShowAllContactsButton;
}
@@ -276,6 +330,14 @@
@Override
public boolean isEnabled(int position) {
+ if (mWifiWizardAdapter.getCount() > 0) {
+ if (position < mWifiWizardAdapter.getCount()) {
+ return mWifiWizardAdapter.isEnabled(position);
+ } else {
+ position -= mWifiWizardAdapter.getCount();
+ }
+ }
+
final int callLogAdapterCount = mCallLogAdapter.getCount();
if (position < callLogAdapterCount) {
return mCallLogAdapter.isEnabled(position);
diff --git a/src/com/android/dialer/list/WifiWizardAdapter.java b/src/com/android/dialer/list/WifiWizardAdapter.java
new file mode 100644
index 0000000..bac8c7a
--- /dev/null
+++ b/src/com/android/dialer/list/WifiWizardAdapter.java
@@ -0,0 +1,136 @@
+/*
+ * Copyright (C) 2013 Google Inc.
+ * Licensed to 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.
+ */
+package com.android.dialer.list;
+
+import com.android.dialer.R;
+import android.content.Context;
+import android.util.Log;
+import android.view.LayoutInflater;
+import android.view.View;
+import android.view.ViewGroup;
+import android.widget.BaseAdapter;
+import android.widget.Button;
+
+public class WifiWizardAdapter extends BaseAdapter {
+
+ public interface WifiWizardModel {
+ public static final int WIFI_CALL_STATE_ALWAYS = 0;
+ public static final int WIFI_CALL_STATE_NEVER = 1;
+ public static final int WIFI_CALL_STATE_ASK = 2;
+
+ void setWifiCallState(int state);
+
+ int getWifiCallState();
+
+ boolean shouldDisplayWifiSelection();
+ }
+
+ private abstract class WifiWizardStep {
+ private final int mResourceId;
+ private View mView;
+ protected WifiWizardStep(int resourceId) {
+ mResourceId = resourceId;
+ }
+ public final View getView() {
+ if (mView == null) {
+ mView = inflate(mResourceId);
+ }
+ if (mView.getParent() != null && (mView.getParent() instanceof ViewGroup)) {
+ ((ViewGroup) mView.getParent()).removeView(mView);
+ }
+ configureView(mView);
+ return mView;
+ }
+ protected abstract void configureView(View view);
+ }
+
+ private WifiWizardStep mTeaserStep =
+ new WifiWizardStep(R.layout.wifi_call_enable_teaser) {
+ @Override
+ protected void configureView(View view) {
+ view.setOnClickListener(new View.OnClickListener() {
+ @Override
+ public void onClick(View v) {
+ mStep = mSettingsStep;
+ notifyDataSetChanged();
+ }
+ });
+ }
+ };
+
+ private WifiWizardStep mSettingsStep =
+ new WifiWizardStep(R.layout.wifi_call_enable_settings) {
+ @Override
+ protected void configureView(View view) {
+ view.setOnClickListener(new View.OnClickListener() {
+ @Override
+ public void onClick(View v) {
+ mStep = mCompletionStep;
+ notifyDataSetChanged();
+ }
+ });
+ }
+ };
+
+ private WifiWizardStep mCompletionStep =
+ new WifiWizardStep(R.layout.wifi_call_enable_completion) {
+ @Override
+ protected void configureView(View view) {
+ view.setOnClickListener(new View.OnClickListener() {
+ @Override
+ public void onClick(View v) {
+ mStep = mTeaserStep;
+ notifyDataSetChanged();
+ }
+ });
+ }
+ };
+
+ private final WifiWizardModel mModel;
+ private final Context mContext;
+ private WifiWizardStep mStep = mTeaserStep;
+
+ public WifiWizardAdapter(Context context, WifiWizardModel model) {
+ this.mContext = context;
+ this.mModel = model;
+ }
+
+ @Override
+ public int getCount() {
+ return 1;
+ }
+
+ @Override
+ public Object getItem(int position) {
+ return this;
+ }
+
+ @Override
+ public long getItemId(int position) {
+ return 1L;
+ }
+
+ @Override
+ public View getView(int position, View convertView, ViewGroup parent) {
+ return mStep.getView();
+ }
+
+ private View inflate(int resource) {
+ return ((LayoutInflater) mContext.getSystemService(Context.LAYOUT_INFLATER_SERVICE))
+ .inflate(resource, null);
+ }
+}