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">"‏لإعداد البريد الصوتي، انتقل إلى القائمة &gt; الإعدادات."</string>
+    <string name="dialog_voicemail_not_ready_message" msgid="4384716252789515378">"لإعداد البريد الصوتي، انتقل إلى القائمة &gt; الإعدادات."</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">"‏برای راه‌اندازی پست صوتی به منو &gt; تنظیمات بروید."</string>
+    <string name="dialog_voicemail_not_ready_message" msgid="4384716252789515378">"برای راه‌اندازی پست صوتی به منو &gt; تنظیمات بروید."</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">"Հաճախ կանչվող ընտրյալներ &amp; կոնտակտները\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">"‏כדי להגדיר את הדואר הקולי, עבור אל \'תפריט\' &gt; \'הגדרות\'."</string>
+    <string name="dialog_voicemail_not_ready_message" msgid="4384716252789515378">"כדי להגדיר את הדואר הקולי, עבור אל \'תפריט\' &gt; \'הגדרות\'."</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 55cdea4..33d5527 100644
--- a/res/values/strings.xml
+++ b/res/values/strings.xml
@@ -635,4 +635,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);
+    }
+}
