Bug 1221344 - Remove Fennec Search Activity. r=gueroJeff,sebastian,snorp
authorNick Alexander <nalexander@mozilla.com>
Thu, 19 Oct 2017 14:14:36 -0700
changeset 441768 bf87dfd8ddb977fc4ce34c1d44ff0751c1807fa2
parent 441767 952db1b95302979af83e03703f94723aadc03c06
child 441769 9aab893f4dd5582c6b60ba0777292c0472613970
push id1618
push userCallek@gmail.com
push dateThu, 11 Jan 2018 17:45:48 +0000
treeherdermozilla-release@882ca853e05a [default view] [failures only]
perfherder[talos] [build metrics] [platform microbench] (compared to previous push)
reviewersgueroJeff, sebastian, snorp
bugs1221344
milestone58.0a1
first release with
nightly linux32
nightly linux64
nightly mac
nightly win32
nightly win64
last release without
nightly linux32
nightly linux64
nightly mac
nightly win32
nightly win64
Bug 1221344 - Remove Fennec Search Activity. r=gueroJeff,sebastian,snorp MozReview-Commit-ID: L7rihfeqvzH
mobile/android/app/build.gradle
mobile/android/app/lint.xml
mobile/android/app/src/main/res/color/facet_button_text_color.xml
mobile/android/app/src/main/res/drawable-hdpi/widget_bg.9.png
mobile/android/app/src/main/res/drawable-xhdpi/widget_bg.9.png
mobile/android/app/src/main/res/drawable/edit_text_default.xml
mobile/android/app/src/main/res/drawable/edit_text_focused.xml
mobile/android/app/src/main/res/drawable/facet_button_background.xml
mobile/android/app/src/main/res/drawable/facet_button_background_default.xml
mobile/android/app/src/main/res/drawable/facet_button_background_pressed.xml
mobile/android/app/src/main/res/drawable/search_row_background.xml
mobile/android/app/src/main/res/drawable/widget_button_left.xml
mobile/android/app/src/main/res/drawable/widget_button_left_default.xml
mobile/android/app/src/main/res/drawable/widget_button_left_pressed.xml
mobile/android/app/src/main/res/drawable/widget_button_middle.xml
mobile/android/app/src/main/res/drawable/widget_button_middle_pressed.xml
mobile/android/app/src/main/res/drawable/widget_button_right.xml
mobile/android/app/src/main/res/drawable/widget_button_right_pressed.xml
mobile/android/app/src/main/res/layout/search_activity_main.xml
mobile/android/app/src/main/res/layout/search_bar.xml
mobile/android/app/src/main/res/layout/search_empty.xml
mobile/android/app/src/main/res/layout/search_fragment_post_search.xml
mobile/android/app/src/main/res/layout/search_fragment_pre_search.xml
mobile/android/app/src/main/res/layout/search_history_row.xml
mobile/android/app/src/main/res/layout/search_sugestions.xml
mobile/android/app/src/main/res/layout/search_suggestions_row.xml
mobile/android/app/src/main/res/layout/search_widget.xml
mobile/android/app/src/main/res/values-v13/search_styles.xml
mobile/android/app/src/main/res/values-v21/integers.xml
mobile/android/app/src/main/res/values/integers.xml
mobile/android/app/src/main/res/values/search_attrs.xml
mobile/android/app/src/main/res/values/search_colors.xml
mobile/android/app/src/main/res/values/search_dimens.xml
mobile/android/app/src/main/res/values/search_styles.xml
mobile/android/app/src/main/res/xml/search_preferences.xml
mobile/android/app/src/main/res/xml/search_widget_info.xml
mobile/android/app/src/photon/res/drawable-hdpi/ic_widget_new_tab.png
mobile/android/app/src/photon/res/drawable-hdpi/ic_widget_search.png
mobile/android/app/src/photon/res/drawable-hdpi/network_error.png
mobile/android/app/src/photon/res/drawable-hdpi/search_clear.png
mobile/android/app/src/photon/res/drawable-hdpi/search_history.png
mobile/android/app/src/photon/res/drawable-hdpi/search_launcher.png
mobile/android/app/src/photon/res/drawable-hdpi/search_plus.png
mobile/android/app/src/photon/res/drawable-xhdpi/ic_widget_new_tab.png
mobile/android/app/src/photon/res/drawable-xhdpi/ic_widget_search.png
mobile/android/app/src/photon/res/drawable-xhdpi/network_error.png
mobile/android/app/src/photon/res/drawable-xhdpi/search_clear.png
mobile/android/app/src/photon/res/drawable-xhdpi/search_history.png
mobile/android/app/src/photon/res/drawable-xhdpi/search_launcher.png
mobile/android/app/src/photon/res/drawable-xhdpi/search_plus.png
mobile/android/app/src/photon/res/drawable-xxhdpi/ic_widget_new_tab.png
mobile/android/app/src/photon/res/drawable-xxhdpi/ic_widget_search.png
mobile/android/app/src/photon/res/drawable-xxhdpi/network_error.png
mobile/android/app/src/photon/res/drawable-xxhdpi/search_clear.png
mobile/android/app/src/photon/res/drawable-xxhdpi/search_history.png
mobile/android/app/src/photon/res/drawable-xxhdpi/search_launcher.png
mobile/android/app/src/photon/res/drawable-xxhdpi/search_plus.png
mobile/android/app/src/photon/res/drawable-xxxhdpi/ic_widget_new_tab.png
mobile/android/app/src/photon/res/drawable-xxxhdpi/ic_widget_search.png
mobile/android/app/src/photon/res/drawable-xxxhdpi/network_error.png
mobile/android/app/src/photon/res/drawable-xxxhdpi/search_clear.png
mobile/android/app/src/photon/res/drawable-xxxhdpi/search_history.png
mobile/android/app/src/photon/res/drawable-xxxhdpi/search_launcher.png
mobile/android/app/src/photon/res/drawable-xxxhdpi/search_plus.png
mobile/android/base/AndroidManifest.xml.in
mobile/android/base/AppConstants.java.in
mobile/android/base/FennecManifest_permissions.xml.in
mobile/android/base/Makefile.in
mobile/android/base/generate_build_config.py
mobile/android/base/java/org/mozilla/gecko/util/UnusedResourcesUtil.java
mobile/android/base/locales/Makefile.in
mobile/android/base/locales/en-US/search_strings.dtd
mobile/android/base/locales/moz.build
mobile/android/base/moz.build
mobile/android/base/strings.xml.in
mobile/android/branding/beta/res/drawable-hdpi/launcher_widget.png
mobile/android/branding/beta/res/drawable-hdpi/widget_icon.png
mobile/android/branding/beta/res/drawable-xhdpi/launcher_widget.png
mobile/android/branding/beta/res/drawable-xhdpi/widget_icon.png
mobile/android/branding/beta/res/drawable-xxhdpi/launcher_widget.png
mobile/android/branding/beta/res/drawable-xxhdpi/widget_icon.png
mobile/android/branding/nightly-old-id/res/drawable-hdpi/launcher_widget.png
mobile/android/branding/nightly-old-id/res/drawable-hdpi/widget_icon.png
mobile/android/branding/nightly-old-id/res/drawable-xhdpi/launcher_widget.png
mobile/android/branding/nightly-old-id/res/drawable-xhdpi/widget_icon.png
mobile/android/branding/nightly-old-id/res/drawable-xxhdpi/launcher_widget.png
mobile/android/branding/nightly-old-id/res/drawable-xxhdpi/widget_icon.png
mobile/android/branding/nightly/res/drawable-hdpi/launcher_widget.png
mobile/android/branding/nightly/res/drawable-hdpi/widget_icon.png
mobile/android/branding/nightly/res/drawable-xhdpi/launcher_widget.png
mobile/android/branding/nightly/res/drawable-xhdpi/widget_icon.png
mobile/android/branding/nightly/res/drawable-xxhdpi/launcher_widget.png
mobile/android/branding/nightly/res/drawable-xxhdpi/widget_icon.png
mobile/android/branding/official/res/drawable-hdpi/launcher_widget.png
mobile/android/branding/official/res/drawable-hdpi/widget_icon.png
mobile/android/branding/official/res/drawable-xhdpi/launcher_widget.png
mobile/android/branding/official/res/drawable-xhdpi/widget_icon.png
mobile/android/branding/official/res/drawable-xxhdpi/launcher_widget.png
mobile/android/branding/official/res/drawable-xxhdpi/widget_icon.png
mobile/android/branding/unofficial/res/drawable-hdpi/launcher_widget.png
mobile/android/branding/unofficial/res/drawable-xhdpi/launcher_widget.png
mobile/android/branding/unofficial/res/drawable-xhdpi/widget_icon.png
mobile/android/branding/unofficial/res/drawable-xxhdpi/launcher_widget.png
mobile/android/confvars.sh
mobile/android/moz.build
mobile/android/moz.configure
mobile/android/search/java/org/mozilla/search/AcceptsSearchQuery.java
mobile/android/search/java/org/mozilla/search/Constants.java
mobile/android/search/java/org/mozilla/search/PostSearchFragment.java
mobile/android/search/java/org/mozilla/search/PreSearchFragment.java
mobile/android/search/java/org/mozilla/search/SearchActivity.java
mobile/android/search/java/org/mozilla/search/SearchPreferenceActivity.java
mobile/android/search/java/org/mozilla/search/SearchWidget.java
mobile/android/search/java/org/mozilla/search/autocomplete/AutoCompleteAdapter.java
mobile/android/search/java/org/mozilla/search/autocomplete/SearchBar.java
mobile/android/search/java/org/mozilla/search/autocomplete/SuggestionsFragment.java
mobile/android/search/java/org/mozilla/search/ui/BackCaptureEditText.java
mobile/android/search/java/org/mozilla/search/ui/FacetBar.java
mobile/android/search/manifests/SearchAndroidManifest_activities.xml.in
mobile/android/search/manifests/SearchAndroidManifest_permissions.xml.in
mobile/android/search/manifests/SearchAndroidManifest_services.xml.in
mobile/android/search/search_activity_sources.mozbuild
mobile/android/search/strings/search_strings.xml.in
old-configure.in
--- a/mobile/android/app/build.gradle
+++ b/mobile/android/app/build.gradle
@@ -119,17 +119,16 @@ android {
             manifest.srcFile "${project.buildDir}/generated/source/preprocessed_manifest/AndroidManifest.xml"
 
             aidl {
                 srcDir "${topsrcdir}/mobile/android/base/aidl"
             }
 
             java {
                 srcDir "${topsrcdir}/mobile/android/base/java"
-                srcDir "${topsrcdir}/mobile/android/search/java"
                 srcDir "${topsrcdir}/mobile/android/services/src/main/java"
 
                 if (mozconfig.substs.MOZ_ANDROID_MLS_STUMBLER) {
                     srcDir "${topsrcdir}/mobile/android/stumbler/java"
                 }
 
                 if (!mozconfig.substs.MOZ_CRASHREPORTER) {
                     exclude 'org/mozilla/gecko/CrashReporter.java'
--- a/mobile/android/app/lint.xml
+++ b/mobile/android/app/lint.xml
@@ -85,18 +85,16 @@
         <ignore path="**/mobile/android/base/java/org/mozilla/gecko/widget/AllCapsTextView.java"/>
         <ignore path="**/mobile/android/base/java/org/mozilla/gecko/widget/ClickableWhenDisabledEditText.java"/>
         <ignore path="**/mobile/android/base/java/org/mozilla/gecko/widget/EllipsisTextView.java"/>
         <ignore path="**/mobile/android/base/java/org/mozilla/gecko/widget/SquaredImageView.java"/>
         <ignore path="**/mobile/android/base/java/org/mozilla/gecko/widget/themed/ThemedEditText.java"/>
         <ignore path="**/mobile/android/base/java/org/mozilla/gecko/widget/themed/ThemedImageButton.java"/>
         <ignore path="**/mobile/android/base/java/org/mozilla/gecko/widget/themed/ThemedImageView.java"/>
         <ignore path="**/mobile/android/base/java/org/mozilla/gecko/widget/themed/ThemedTextView.java"/>
-        <ignore path="**/mobile/android/search/java/org/mozilla/search/ui/BackCaptureEditText.java"/>
-        <ignore path="**/mobile/android/search/java/org/mozilla/search/ui/FacetBar.java"/>
     </issue>
 
     <!-- WHEN YOU FIX A LINT WARNING, ADD IT TO THIS LIST.
 
          We want all lint warnings to be fatal errors.
          This is the list of checks that we've explicitly
          set as errors. Ideally, once we have no more warnings,
          we switch to the `warningsAsErrors` lint option
deleted file mode 100644
--- a/mobile/android/app/src/main/res/color/facet_button_text_color.xml
+++ /dev/null
@@ -1,9 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-
-<selector xmlns:android="http://schemas.android.com/apk/res/android">
-    <!-- facet is selected -->
-    <item android:state_checked="true" android:color="@color/facet_button_text_color_selected" />
-
-    <!-- default -->
-    <item android:color="@color/facet_button_text_color_default" />
-</selector>
deleted file mode 100644
index bde379d7b8a434f6d98d23a171609d3a553d7a45..e69de29bb2d1d6434b8b29ae775ad8c2e48c5391
GIT binary patch
literal 0
Hc$@<O00001
deleted file mode 100644
index b4160ed9a79a7c4e56e7a795f2349d8749f538d1..e69de29bb2d1d6434b8b29ae775ad8c2e48c5391
GIT binary patch
literal 0
Hc$@<O00001
deleted file mode 100644
--- a/mobile/android/app/src/main/res/drawable/edit_text_default.xml
+++ /dev/null
@@ -1,24 +0,0 @@
-<!-- This Source Code Form is subject to the terms of the Mozilla Public
-   - License, v. 2.0. If a copy of the MPL was not distributed with this
-   - file, You can obtain one at http://mozilla.org/MPL/2.0/. -->
-
-<layer-list xmlns:android="http://schemas.android.com/apk/res/android">
-
-    <!-- Make sure the border only appears at the bottom of the background -->
-    <item
-        android:top="-2dp"
-        android:right="-2dp"
-        android:left="-2dp">
-        <shape>
-            <!-- Padding creates vertical space between the text and the underline,
-                 as well as right padding for search icon/clear button -->
-            <padding
-                android:top="@dimen/search_bar_padding_y"
-                android:bottom="@dimen/search_bar_padding_y"
-                android:right="@dimen/search_bar_padding_right"/>
-            <solid android:color="@android:color/transparent"/>
-            <stroke android:width="1dp" android:color="@color/tabs_tray_icon_grey"/>
-        </shape>
-    </item>
-
-</layer-list>
deleted file mode 100644
--- a/mobile/android/app/src/main/res/drawable/edit_text_focused.xml
+++ /dev/null
@@ -1,25 +0,0 @@
-<!-- This Source Code Form is subject to the terms of the Mozilla Public
-   - License, v. 2.0. If a copy of the MPL was not distributed with this
-   - file, You can obtain one at http://mozilla.org/MPL/2.0/. -->
-
-<layer-list xmlns:android="http://schemas.android.com/apk/res/android">
-
-    <!-- Make sure the border only appears at the bottom of the background -->
-    <item
-        android:top="-3dp"
-        android:right="-3dp"
-        android:left="-3dp">
-        <shape>
-            <!-- Padding creates vertical space between the text and the underline,
-                 as well as right padding for search icon/clear button -->
-            <padding
-                android:top="@dimen/search_bar_padding_y"
-                android:bottom="@dimen/search_bar_padding_y"
-                android:right="@dimen/search_bar_padding_right"/>
-            <solid android:color="@android:color/transparent"/>
-            <!-- We apply a color filter to set the color for the selected search engine -->
-            <stroke android:width="2dp" android:color="@android:color/white"/>
-        </shape>
-    </item>
-
-</layer-list>
deleted file mode 100644
--- a/mobile/android/app/src/main/res/drawable/facet_button_background.xml
+++ /dev/null
@@ -1,15 +0,0 @@
-<!-- This Source Code Form is subject to the terms of the Mozilla Public
-   - License, v. 2.0. If a copy of the MPL was not distributed with this
-   - file, You can obtain one at http://mozilla.org/MPL/2.0/. -->
-
-<selector xmlns:android="http://schemas.android.com/apk/res/android">
-    <!--facet button is pressed (omitting currently-selected facet)-->
-    <item
-        android:state_pressed="true"
-        android:state_checked="false"
-        android:drawable="@drawable/facet_button_background_pressed"/>
-
-    <!--default-->
-    <item
-        android:drawable="@drawable/facet_button_background_default"/>
-</selector>
deleted file mode 100644
--- a/mobile/android/app/src/main/res/drawable/facet_button_background_default.xml
+++ /dev/null
@@ -1,8 +0,0 @@
-<!-- This Source Code Form is subject to the terms of the Mozilla Public
-   - License, v. 2.0. If a copy of the MPL was not distributed with this
-   - file, You can obtain one at http://mozilla.org/MPL/2.0/. -->
-
-<shape xmlns:android="http://schemas.android.com/apk/res/android"
-    android:shape="rectangle">
-    <solid android:color="@color/facet_button_background_color_default" />
-</shape>
deleted file mode 100644
--- a/mobile/android/app/src/main/res/drawable/facet_button_background_pressed.xml
+++ /dev/null
@@ -1,8 +0,0 @@
-<!-- This Source Code Form is subject to the terms of the Mozilla Public
-   - License, v. 2.0. If a copy of the MPL was not distributed with this
-   - file, You can obtain one at http://mozilla.org/MPL/2.0/. -->
-
-<shape xmlns:android="http://schemas.android.com/apk/res/android"
-    android:shape="rectangle">
-    <solid android:color="@color/facet_button_background_color_pressed" />
-</shape>
deleted file mode 100644
--- a/mobile/android/app/src/main/res/drawable/search_row_background.xml
+++ /dev/null
@@ -1,10 +0,0 @@
-<!-- This Source Code Form is subject to the terms of the Mozilla Public
-   - License, v. 2.0. If a copy of the MPL was not distributed with this
-   - file, You can obtain one at http://mozilla.org/MPL/2.0/. -->
-
-<selector xmlns:android="http://schemas.android.com/apk/res/android">
-
-    <item android:state_pressed="true" android:drawable="@color/row_background_pressed" />
-    <item android:drawable="@color/row_background"/>
-
-</selector>
deleted file mode 100644
--- a/mobile/android/app/src/main/res/drawable/widget_button_left.xml
+++ /dev/null
@@ -1,14 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!-- This Source Code Form is subject to the terms of the Mozilla Public
-   - License, v. 2.0. If a copy of the MPL was not distributed with this
-   - file, You can obtain one at http://mozilla.org/MPL/2.0/. -->
-
-<selector xmlns:android="http://schemas.android.com/apk/res/android">
-
-    <item android:state_pressed="true"
-           android:drawable="@drawable/widget_button_left_pressed"/>
-
-    <!-- The left button is gray in its off state -->
-    <item android:drawable="@drawable/widget_button_left_default"/>
-
-</selector>
deleted file mode 100644
--- a/mobile/android/app/src/main/res/drawable/widget_button_left_default.xml
+++ /dev/null
@@ -1,19 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!-- This Source Code Form is subject to the terms of the Mozilla Public
-   - License, v. 2.0. If a copy of the MPL was not distributed with this
-   - file, You can obtain one at http://mozilla.org/MPL/2.0/. -->
-
-<!-- These drawables have to be wrapped in a layer-list in order to produce padding at
-     the bottom of the drawable. That padding ensures the drawable doesn't block the
-     orange strip in widget_bg.9.png -->
-<layer-list xmlns:android="http://schemas.android.com/apk/res/android">
-    <item android:bottom="@dimen/widget_bg_border_offset">
-        <shape android:shape="rectangle">
-            <corners android:topLeftRadius="@dimen/widget_drawable_corner_radius"
-                     android:topRightRadius="0dp"
-                     android:bottomLeftRadius="0dp"
-                     android:bottomRightRadius="0dp"/>
-            <solid android:color="@color/toolbar_grey"/>
-        </shape>
-    </item>
-</layer-list>
deleted file mode 100644
--- a/mobile/android/app/src/main/res/drawable/widget_button_left_pressed.xml
+++ /dev/null
@@ -1,19 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!-- This Source Code Form is subject to the terms of the Mozilla Public
-   - License, v. 2.0. If a copy of the MPL was not distributed with this
-   - file, You can obtain one at http://mozilla.org/MPL/2.0/. -->
-
-<!-- These drawables have to be wrapped in a layer-list in order to produce padding at
-     the bottom of the drawable. That padding ensures the drawable doesn't block the
-     orange strip in widget_bg.9.png -->
-<layer-list xmlns:android="http://schemas.android.com/apk/res/android">
-    <item android:bottom="@dimen/widget_bg_border_offset">
-        <shape android:shape="rectangle">
-            <corners android:topLeftRadius="@dimen/widget_drawable_corner_radius"
-                     android:topRightRadius="0dp"
-                     android:bottomLeftRadius="0dp"
-                     android:bottomRightRadius="0dp"/>
-            <solid android:color="@color/widget_button_pressed"/>
-        </shape>
-    </item>
-</layer-list>
deleted file mode 100644
--- a/mobile/android/app/src/main/res/drawable/widget_button_middle.xml
+++ /dev/null
@@ -1,13 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!-- This Source Code Form is subject to the terms of the Mozilla Public
-   - License, v. 2.0. If a copy of the MPL was not distributed with this
-   - file, You can obtain one at http://mozilla.org/MPL/2.0/. -->
-
-<selector xmlns:android="http://schemas.android.com/apk/res/android">
-
-    <item android:state_pressed="true"
-           android:drawable="@drawable/widget_button_middle_pressed"/>
-
-    <item android:drawable="@android:color/transparent"/>
-
-</selector>
deleted file mode 100644
--- a/mobile/android/app/src/main/res/drawable/widget_button_middle_pressed.xml
+++ /dev/null
@@ -1,15 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!-- This Source Code Form is subject to the terms of the Mozilla Public
-   - License, v. 2.0. If a copy of the MPL was not distributed with this
-   - file, You can obtain one at http://mozilla.org/MPL/2.0/. -->
-
-<!-- These drawables have to be wrapped in a layer-list in order to produce padding at
-     the bottom of the drawable. That padding ensures the drawable doesn't block the
-     orange strip in widget_bg.9.png -->
-<layer-list xmlns:android="http://schemas.android.com/apk/res/android">
-    <item android:bottom="@dimen/widget_bg_border_offset">
-        <shape android:shape="rectangle">
-            <solid android:color="@color/widget_button_pressed"/>
-        </shape>
-    </item>
-</layer-list>
deleted file mode 100644
--- a/mobile/android/app/src/main/res/drawable/widget_button_right.xml
+++ /dev/null
@@ -1,13 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!-- This Source Code Form is subject to the terms of the Mozilla Public
-   - License, v. 2.0. If a copy of the MPL was not distributed with this
-   - file, You can obtain one at http://mozilla.org/MPL/2.0/. -->
-
-<selector xmlns:android="http://schemas.android.com/apk/res/android">
-
-    <item android:state_pressed="true"
-          android:drawable="@drawable/widget_button_right_pressed"/>
-
-    <item android:drawable="@android:color/transparent"/>
-
-</selector>
deleted file mode 100644
--- a/mobile/android/app/src/main/res/drawable/widget_button_right_pressed.xml
+++ /dev/null
@@ -1,19 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!-- This Source Code Form is subject to the terms of the Mozilla Public
-   - License, v. 2.0. If a copy of the MPL was not distributed with this
-   - file, You can obtain one at http://mozilla.org/MPL/2.0/. -->
-
-<!-- These drawables have to be wrapped in a layer-list in order to produce padding at
-     the bottom of the drawable. That padding ensures the drawable doesn't block the
-     orange strip in widget_bg.9.png -->
-<layer-list xmlns:android="http://schemas.android.com/apk/res/android">
-    <item android:bottom="@dimen/widget_bg_border_offset">
-        <shape android:shape="rectangle">
-            <corners android:topLeftRadius="0dp"
-                     android:topRightRadius="@dimen/widget_drawable_corner_radius"
-                     android:bottomLeftRadius="0dp"
-                     android:bottomRightRadius="0dp"/>
-            <solid android:color="@color/widget_button_pressed"/>
-        </shape>
-    </item>
-</layer-list>
deleted file mode 100644
--- a/mobile/android/app/src/main/res/layout/search_activity_main.xml
+++ /dev/null
@@ -1,65 +0,0 @@
-<!-- This Source Code Form is subject to the terms of the Mozilla Public
-   - License, v. 2.0. If a copy of the MPL was not distributed with this
-   - file, You can obtain one at http://mozilla.org/MPL/2.0/. -->
-
-<merge
-    xmlns:android="http://schemas.android.com/apk/res/android"
-    xmlns:tools="http://schemas.android.com/tools"
-    tools:context=".SearchActivity">
-
-    <org.mozilla.search.autocomplete.SearchBar
-        android:id="@+id/search_bar"
-        android:layout_width="match_parent"
-        android:layout_height="@dimen/search_bar_height"
-        android:paddingTop="@dimen/search_bar_padding_y"
-        android:paddingBottom="@dimen/search_bar_padding_y"
-        android:paddingLeft="@dimen/search_row_padding"
-        android:paddingRight="@dimen/search_row_padding"
-        android:layout_gravity="top"/>
-
-    <fragment
-        android:id="@+id/postsearch"
-        android:name="org.mozilla.search.PostSearchFragment"
-        android:layout_width="match_parent"
-        android:layout_height="match_parent"
-        android:layout_marginTop="@dimen/search_bar_height"
-        android:layout_gravity="top"
-        android:visibility="invisible"/>
-
-    <fragment
-        android:id="@+id/presearch"
-        android:name="org.mozilla.search.PreSearchFragment"
-        android:layout_width="match_parent"
-        android:layout_height="match_parent"
-        android:layout_marginTop="@dimen/search_bar_height"
-        android:layout_gravity="top"/>
-
-    <fragment
-        android:id="@+id/suggestions"
-        android:name="org.mozilla.search.autocomplete.SuggestionsFragment"
-        android:layout_width="match_parent"
-        android:layout_height="match_parent"
-        android:layout_marginTop="@dimen/search_bar_height"
-        android:layout_gravity="top"/>
-
-
-    <ImageButton
-        android:id="@+id/settings_button"
-        android:layout_width="wrap_content"
-        android:layout_height="wrap_content"
-        android:background="@android:color/transparent"
-        android:padding="15dp"
-        android:src="@drawable/ic_action_settings"
-        android:layout_gravity="bottom|right|end"
-        android:contentDescription="@string/search_pref_button_content_description"/>
-
-    <View
-        android:id="@+id/animation_card"
-        android:layout_width="match_parent"
-        android:layout_height="match_parent"
-        android:layout_marginTop="@dimen/search_bar_height"
-        android:background="@color/row_background"
-        android:visibility="invisible"
-        android:layout_gravity="top"/>
-
-</merge>
deleted file mode 100644
--- a/mobile/android/app/src/main/res/layout/search_bar.xml
+++ /dev/null
@@ -1,48 +0,0 @@
-<!-- This Source Code Form is subject to the terms of the Mozilla Public
-   - License, v. 2.0. If a copy of the MPL was not distributed with this
-   - file, You can obtain one at http://mozilla.org/MPL/2.0/. -->
-
-<merge xmlns:android="http://schemas.android.com/apk/res/android">
-
-    <org.mozilla.search.ui.BackCaptureEditText
-        android:id="@+id/edit_text"
-        android:layout_width="match_parent"
-        android:layout_height="wrap_content"
-        android:layout_gravity="center_vertical"
-        android:imeOptions="actionSearch"
-        android:inputType="textNoSuggestions"
-        android:drawableLeft="@drawable/ic_search_icon"
-        android:drawableStart="@drawable/ic_search_icon"
-        android:paddingRight="30dp"
-        android:paddingEnd="30dp"
-        android:drawablePadding="5dp"
-        android:textSize="@dimen/query_text_size"
-        android:focusable="false"
-        android:focusableInTouchMode="false"
-        android:textColorHighlight="@color/fennec_ui_accent"
-        android:textSelectHandle="@drawable/handle_middle"
-        android:textSelectHandleLeft="@drawable/handle_start"
-        android:textSelectHandleRight="@drawable/handle_end"
-        />
-
-    <ImageButton
-        android:id="@+id/clear_button"
-        android:layout_width="30dp"
-        android:layout_height="30dp"
-        android:paddingLeft="10dp"
-        android:paddingStart="10dp"
-        android:layout_gravity="right|end|center_vertical"
-        android:background="@android:color/transparent"
-        android:src="@drawable/search_clear"
-        android:scaleType="centerInside"
-        android:visibility="gone"/>
-
-    <ImageView
-        android:id="@+id/engine_icon"
-        android:layout_width="24dp"
-        android:layout_height="24dp"
-        android:layout_gravity="right|end|center_vertical"
-        android:background="@android:color/transparent"
-        android:visibility="gone"/>
-
-</merge>
deleted file mode 100644
--- a/mobile/android/app/src/main/res/layout/search_empty.xml
+++ /dev/null
@@ -1,51 +0,0 @@
-<!-- This Source Code Form is subject to the terms of the Mozilla Public
-   - License, v. 2.0. If a copy of the MPL was not distributed with this
-   - file, You can obtain one at http://mozilla.org/MPL/2.0/. -->
-
-<LinearLayout
-    xmlns:android="http://schemas.android.com/apk/res/android"
-    android:layout_width="match_parent"
-    android:layout_height="match_parent"
-    android:orientation="vertical"
-    android:gravity="center"
-    android:paddingLeft="50dp"
-    android:paddingRight="50dp">
-
-    <!-- Empty spacer view -->
-    <View
-        android:layout_width="match_parent"
-        android:layout_height="0dip"
-        android:layout_weight="1"/>
-
-    <ImageView
-        android:id="@+id/empty_image"
-        android:layout_width="wrap_content"
-        android:layout_height="wrap_content"
-        android:layout_marginBottom="15dp"
-        android:gravity="top|center"
-        android:scaleType="fitCenter"/>
-
-    <LinearLayout
-        android:layout_width="match_parent"
-        android:layout_height="0dip"
-        android:orientation="vertical"
-        android:layout_weight="3">
-
-        <TextView
-            android:id="@+id/empty_title"
-            android:layout_width="match_parent"
-            android:layout_height="wrap_content"
-            android:layout_marginBottom="15dp"
-            style="@style/TextAppearance.EmptyView.Title"
-            android:gravity="center"/>
-
-        <TextView
-            android:id="@+id/empty_message"
-            android:layout_width="match_parent"
-            android:layout_height="wrap_content"
-            style="@style/TextAppearance.EmptyView.Message"
-            android:gravity="center"/>
-
-    </LinearLayout>
-
-</LinearLayout>
deleted file mode 100644
--- a/mobile/android/app/src/main/res/layout/search_fragment_post_search.xml
+++ /dev/null
@@ -1,30 +0,0 @@
-<!-- This Source Code Form is subject to the terms of the Mozilla Public
-   - License, v. 2.0. If a copy of the MPL was not distributed with this
-   - file, You can obtain one at http://mozilla.org/MPL/2.0/. -->
-
-<LinearLayout
-    xmlns:android="http://schemas.android.com/apk/res/android"
-    android:layout_width="match_parent"
-    android:layout_height="match_parent"
-    android:orientation="vertical">
-
-    <ProgressBar
-        android:id="@+id/progress_bar"
-        style="@android:style/Widget.ProgressBar.Horizontal"
-        android:layout_width="match_parent"
-        android:layout_height="@dimen/progress_bar_height"
-        android:progressDrawable="@drawable/progressbar"/>
-
-    <WebView
-        android:id="@+id/webview"
-        android:layout_width="match_parent"
-        android:layout_height="match_parent"/>
-
-    <ViewStub
-        android:id="@+id/error_view_stub"
-        android:layout="@layout/search_empty"
-        android:layout_width="match_parent"
-        android:layout_height="match_parent"
-        android:visibility="gone"/>
-
-</LinearLayout>
deleted file mode 100644
--- a/mobile/android/app/src/main/res/layout/search_fragment_pre_search.xml
+++ /dev/null
@@ -1,27 +0,0 @@
-<!-- This Source Code Form is subject to the terms of the Mozilla Public
-   - License, v. 2.0. If a copy of the MPL was not distributed with this
-   - file, You can obtain one at http://mozilla.org/MPL/2.0/. -->
-
-<LinearLayout
-    xmlns:android="http://schemas.android.com/apk/res/android"
-    android:layout_width="match_parent"
-    android:layout_height="match_parent"
-    android:orientation="vertical"
-    android:background="@color/toolbar_grey">
-
-    <ViewStub android:id="@+id/empty_view_stub"
-        android:layout="@layout/search_empty"
-        android:layout_width="match_parent"
-        android:layout_height="0dp"
-        android:layout_weight="1"/>
-
-    <ListView
-        android:id="@+id/list_view"
-        android:layout_width="match_parent"
-        android:layout_height="0dp"
-        android:layout_weight="1"
-        android:scrollbarStyle="outsideOverlay"
-        android:paddingLeft="@dimen/search_row_padding"
-        android:paddingRight="@dimen/search_row_padding"/>
-
-</LinearLayout>
deleted file mode 100644
--- a/mobile/android/app/src/main/res/layout/search_history_row.xml
+++ /dev/null
@@ -1,15 +0,0 @@
-<!-- This Source Code Form is subject to the terms of the Mozilla Public
-   - License, v. 2.0. If a copy of the MPL was not distributed with this
-   - file, You can obtain one at http://mozilla.org/MPL/2.0/. -->
-
-<TextView
-    xmlns:android="http://schemas.android.com/apk/res/android"
-    android:id="@+id/site_name"
-    android:layout_width="match_parent"
-    android:layout_height="wrap_content"
-    android:background="@drawable/search_row_background"
-    android:drawableLeft="@drawable/search_history"
-    android:drawableStart="@drawable/search_history"
-    android:drawablePadding="@dimen/search_history_drawable_padding"
-    android:padding="@dimen/search_row_padding"
-    android:textSize="@dimen/query_text_size"/>
deleted file mode 100644
--- a/mobile/android/app/src/main/res/layout/search_sugestions.xml
+++ /dev/null
@@ -1,12 +0,0 @@
-<!-- This Source Code Form is subject to the terms of the Mozilla Public
-   - License, v. 2.0. If a copy of the MPL was not distributed with this
-   - file, You can obtain one at http://mozilla.org/MPL/2.0/. -->
-
-<ListView
-    xmlns:android="http://schemas.android.com/apk/res/android"
-    android:layout_width="match_parent"
-    android:layout_height="match_parent"
-    android:background="@color/toolbar_grey"
-    android:paddingLeft="@dimen/search_row_padding"
-    android:paddingRight="@dimen/search_row_padding"
-    android:visibility="invisible"/>
deleted file mode 100644
--- a/mobile/android/app/src/main/res/layout/search_suggestions_row.xml
+++ /dev/null
@@ -1,32 +0,0 @@
-<!-- This Source Code Form is subject to the terms of the Mozilla Public
-   - License, v. 2.0. If a copy of the MPL was not distributed with this
-   - file, You can obtain one at http://mozilla.org/MPL/2.0/. -->
-
-<LinearLayout
-    xmlns:android="http://schemas.android.com/apk/res/android"
-    android:layout_width="match_parent"
-    android:layout_height="wrap_content"
-    android:background="@drawable/search_row_background"
-    android:padding="@dimen/search_row_padding"
-    android:descendantFocusability="blocksDescendants"
-    android:orientation="horizontal">
-
-    <TextView
-        android:id="@+id/auto_complete_row_text"
-        android:layout_width="0dp"
-        android:layout_height="wrap_content"
-        android:layout_weight="1"
-        android:textSize="@dimen/query_text_size"/>
-
-    <ImageButton
-        android:id="@+id/auto_complete_row_jump_button"
-        android:layout_width="wrap_content"
-        android:layout_height="wrap_content"
-        android:layout_gravity="right|end|center_vertical"
-        android:paddingLeft="@dimen/search_row_padding"
-        android:paddingStart="@dimen/search_row_padding"
-        android:src="@drawable/search_plus"
-        android:contentDescription="@string/search_plus_content_description"
-        android:background="@android:color/transparent" />
-
-</LinearLayout>
deleted file mode 100644
--- a/mobile/android/app/src/main/res/layout/search_widget.xml
+++ /dev/null
@@ -1,67 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!-- This Source Code Form is subject to the terms of the Mozilla Public
-   - License, v. 2.0. If a copy of the MPL was not distributed with this
-   - file, You can obtain one at http://mozilla.org/MPL/2.0/. -->
-
-<!-- A homescreen widget for launching Fennec or the search activity. We can't use styles in here
-     so make sure any changes you make are also made to launch_widget.xml which doesn't have
-     the search widget button. -->
-<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
-    android:layout_width="match_parent"
-    android:layout_height="@dimen/widget_header_height"
-    android:orientation="horizontal"
-    android:background="@drawable/widget_bg">
-
-    <ImageView android:id="@+id/logo_button"
-        android:layout_width="0dp"
-        android:layout_weight="1"
-        android:padding="@dimen/widget_padding"
-        android:background="@drawable/widget_button_left"
-        android:layout_height="match_parent"
-        android:src="@drawable/widget_icon"/>
-
-    <LinearLayout android:id="@+id/search_button"
-        android:layout_width="0dp"
-        android:layout_height="match_parent"
-        android:layout_weight="1"
-        android:gravity="center"
-        android:contentDescription="@string/search_widget_button_label"
-        android:orientation="horizontal"
-        android:background="@drawable/widget_button_middle">
-
-        <TextView android:id="@+id/search_button_label"
-            android:layout_width="wrap_content"
-            android:layout_height="wrap_content"
-            android:drawableLeft="@drawable/ic_widget_search"
-            android:drawablePadding="@dimen/widget_padding"
-            android:text="@string/search_widget_button_label"
-            android:gravity="center"
-            android:fontFamily="sans-serif"
-            android:textSize="@dimen/widget_text_size"
-            android:textColor="@color/toolbar_icon_grey"/>
-
-    </LinearLayout>
-
-    <LinearLayout android:id="@+id/new_tab_button"
-        android:layout_width="0dp"
-        android:layout_weight="1"
-        android:layout_height="match_parent"
-        android:contentDescription="@string/new_tab"
-        android:gravity="center"
-        android:orientation="horizontal"
-        android:background="@drawable/widget_button_right">
-
-        <TextView android:id="@+id/new_tab_button_label"
-            android:layout_width="wrap_content"
-            android:layout_height="wrap_content"
-            android:drawableLeft="@drawable/ic_widget_new_tab"
-            android:drawablePadding="@dimen/widget_padding"
-            android:gravity="center"
-            android:text="@string/new_tab"
-            android:fontFamily="sans-serif"
-            android:textSize="@dimen/widget_text_size"
-            android:textColor="@color/toolbar_icon_grey"/>
-
-    </LinearLayout>
-
-</LinearLayout>
--- a/mobile/android/app/src/main/res/values-v13/search_styles.xml
+++ b/mobile/android/app/src/main/res/values-v13/search_styles.xml
@@ -3,18 +3,13 @@
    - file, You can obtain one at http://mozilla.org/MPL/2.0/. -->
 
 <resources>
 
     <!-- Base application theme. -->
     <style name="AppTheme" parent="@android:style/Theme.Holo.Light.NoActionBar">
         <item name="android:windowBackground">@color/toolbar_grey</item>
         <item name="android:colorBackground">@color/toolbar_grey</item>
-
-        <!--This attribute is required so that we can create a facet button-->
-        <!--pragmatically. The defStyle param used in the View constructor-->
-        <!--must be an attr, see: https://code.google.com/p/android/issues/detail?id=12683-->
-        <item name="facetButtonStyle">@style/FacetButtonStyle</item>
     </style>
 
     <style name="SettingsTheme" parent="@android:style/Theme.Holo.Light"/>
 
 </resources>
deleted file mode 100644
--- a/mobile/android/app/src/main/res/values-v21/integers.xml
+++ /dev/null
@@ -1,10 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!-- This Source Code Form is subject to the terms of the Mozilla Public
-   - License, v. 2.0. If a copy of the MPL was not distributed with this
-   - file, You can obtain one at http://mozilla.org/MPL/2.0/. -->
-
-<resources xmlns:tools="http://schemas.android.com/tools">
-
-    <integer name="search_assist_launch_res" tools:ignore="ReferenceType">@drawable/search_launcher</integer>
-
-</resources>
--- a/mobile/android/app/src/main/res/values/integers.xml
+++ b/mobile/android/app/src/main/res/values/integers.xml
@@ -7,12 +7,11 @@
 
     <integer name="number_of_top_sites">6</integer>
     <integer name="number_of_top_sites_cols">2</integer>
     <integer name="max_icon_grid_columns">4</integer>
     <integer name="panel_icon_grid_view_columns">3</integer>
     <integer name="number_of_inline_share_devices">2</integer>
     <integer name="max_search_suggestions">2</integer>
     <integer name="max_saved_suggestions">2</integer>
-    <integer name="search_assist_launch_res">0</integer>
     <integer name="shift_duration_suggestion">500</integer>
 
 </resources>
deleted file mode 100644
--- a/mobile/android/app/src/main/res/values/search_attrs.xml
+++ /dev/null
@@ -1,12 +0,0 @@
-<!-- This Source Code Form is subject to the terms of the Mozilla Public
-   - License, v. 2.0. If a copy of the MPL was not distributed with this
-   - file, You can obtain one at http://mozilla.org/MPL/2.0/. -->
-
-<resources>
-    <declare-styleable name="FacetButton"/>
-
-    <!--This attribute is required so that we can create a facet button-->
-    <!--pragmatically. The defStyle param used in the View constructor-->
-    <!--must be an attr, see: https://code.google.com/p/android/issues/detail?id=12683-->
-    <attr name="facetButtonStyle" />
-</resources>
deleted file mode 100644
--- a/mobile/android/app/src/main/res/values/search_colors.xml
+++ /dev/null
@@ -1,24 +0,0 @@
-<!-- This Source Code Form is subject to the terms of the Mozilla Public
-   - License, v. 2.0. If a copy of the MPL was not distributed with this
-   - file, You can obtain one at http://mozilla.org/MPL/2.0/. -->
-
-<resources>
-
-    <!-- card colors -->
-    <color name="row_background">#ffffff</color>
-    <color name="row_background_pressed">#DCDCE1</color>
-
-    <color name="widget_button_pressed">#33000000</color>
-
-    <!--Facet button colors-->
-    <color name="facet_button_background_color_default">@android:color/white</color>
-    <color name="facet_button_background_color_pressed">#FAFAFA</color>
-
-    <color name="facet_button_text_color_default">#ADB0B1</color>
-    <color name="facet_button_text_color_selected">#383E42</color>
-
-    <color name="network_error_link">#0092DB</color>
-
-    <!-- Suggestion highlight color -->
-    <color name="suggestion_highlight">#FF999999</color>
-</resources>
deleted file mode 100644
--- a/mobile/android/app/src/main/res/values/search_dimens.xml
+++ /dev/null
@@ -1,30 +0,0 @@
-<!-- This Source Code Form is subject to the terms of the Mozilla Public
-   - License, v. 2.0. If a copy of the MPL was not distributed with this
-   - file, You can obtain one at http://mozilla.org/MPL/2.0/. -->
-
-<resources>
-    <!-- The height of the search bar is also used to offset the PreSearchFragment
-         and PostSearchFragment contents -->
-    <dimen name="search_bar_height">65dp</dimen>
-    <dimen name="progress_bar_height">3dp</dimen>
-
-    <!-- Size of the text for query input and suggestions -->
-    <dimen name="query_text_size">16sp</dimen>
-
-    <dimen name="search_row_padding">15dp</dimen>
-    <dimen name="search_bar_padding_y">10dp</dimen>
-
-    <!-- Padding to account for search engine icon/clear button -->
-    <dimen name="search_bar_padding_right">25dp</dimen>
-
-    <dimen name="search_history_drawable_padding">10dp</dimen>
-
-    <!-- Widget Buttons -->
-    <dimen name="widget_header_height">70dp</dimen>
-    <dimen name="widget_text_size">14sp</dimen>
-    <dimen name="widget_padding">7dp</dimen>
-    <dimen name="widget_drawable_corner_radius">4dp</dimen>
-    <dimen name="widget_bg_border_offset">3dp</dimen>
-
-    <dimen name="facet_button_underline_thickness">5dp</dimen>
-</resources>
deleted file mode 100644
--- a/mobile/android/app/src/main/res/values/search_styles.xml
+++ /dev/null
@@ -1,40 +0,0 @@
-<!-- This Source Code Form is subject to the terms of the Mozilla Public
-   - License, v. 2.0. If a copy of the MPL was not distributed with this
-   - file, You can obtain one at http://mozilla.org/MPL/2.0/. -->
-
-<resources>
-
-    <!-- Base application theme. -->
-    <style name="AppTheme" parent="@android:style/Theme.Light.NoTitleBar">
-        <item name="android:windowBackground">@color/toolbar_grey</item>
-        <item name="android:colorBackground">@color/toolbar_grey</item>
-
-        <!--This attribute is required so that we can create a facet button-->
-        <!--pragmatically. The defStyle param used in the View constructor-->
-        <!--must be an attr, see: https://code.google.com/p/android/issues/detail?id=12683-->
-        <item name="facetButtonStyle">@style/FacetButtonStyle</item>
-    </style>
-
-    <style name="SettingsTheme" parent="@android:style/Theme.Light" />
-
-    <style name="FacetButtonStyle">
-        <!--Since we're not inflating xml, we have to apply the layout params -->
-        <!--after instantiation. See FacetBar.addFacet.-->
-        <item name="android:textSize">15sp</item>
-        <item name="android:textColor">@color/facet_button_text_color</item>
-        <item name="android:background">@drawable/facet_button_background</item>
-        <item name="android:gravity">center</item>
-        <item name="android:clickable">true</item>
-    </style>
-
-    <style name="TextAppearance.EmptyView.Title" parent="@android:style/TextAppearance.Small">
-        <item name="android:textColor">@color/text_and_tabs_tray_grey</item>
-        <item name="android:textSize">20sp</item>
-    </style>
-
-    <style name="TextAppearance.EmptyView.Message" parent="@android:style/TextAppearance.Small">
-        <item name="android:textColor">@color/placeholder_grey</item>
-        <item name="android:textSize">16sp</item>
-    </style>
-
-</resources>
deleted file mode 100644
--- a/mobile/android/app/src/main/res/xml/search_preferences.xml
+++ /dev/null
@@ -1,9 +0,0 @@
-<!-- This Source Code Form is subject to the terms of the Mozilla Public
-   - License, v. 2.0. If a copy of the MPL was not distributed with this
-   - file, You can obtain one at http://mozilla.org/MPL/2.0/. -->
-
-<PreferenceScreen xmlns:android="http://schemas.android.com/apk/res/android">
-    <Preference
-        android:key="search.not_a_preference.clear_history"
-        android:title="@string/pref_clearHistory_title"/>
-</PreferenceScreen>
deleted file mode 100644
--- a/mobile/android/app/src/main/res/xml/search_widget_info.xml
+++ /dev/null
@@ -1,12 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!-- This Source Code Form is subject to the terms of the Mozilla Public
-   - License, v. 2.0. If a copy of the MPL was not distributed with this
-   - file, You can obtain one at http://mozilla.org/MPL/2.0/. -->
-
-<appwidget-provider xmlns:android="http://schemas.android.com/apk/res/android"
-    android:minWidth="250dp"
-    android:minHeight="40dp"
-    android:label="@string/search_widget_name"
-    android:widgetCategory="home_screen"
-    android:previewImage="@drawable/launcher_widget"
-    android:initialLayout="@layout/search_widget"/>
deleted file mode 100644
index c06a99515f5d44dd9207a3af1a2eba53a9462a4e..e69de29bb2d1d6434b8b29ae775ad8c2e48c5391
GIT binary patch
literal 0
Hc$@<O00001
deleted file mode 100644
index 98b798f80ed1c4529e5dbe3e5f55274982f1b0ff..e69de29bb2d1d6434b8b29ae775ad8c2e48c5391
GIT binary patch
literal 0
Hc$@<O00001
deleted file mode 100644
index ae595837476435dd744dc25f834ecf921c80ba1e..e69de29bb2d1d6434b8b29ae775ad8c2e48c5391
GIT binary patch
literal 0
Hc$@<O00001
deleted file mode 100644
index 1d3597b5fafc44a7725657ca05ae08c78fb5619c..e69de29bb2d1d6434b8b29ae775ad8c2e48c5391
GIT binary patch
literal 0
Hc$@<O00001
deleted file mode 100644
index 5fa52345b9b6282abc204ef60ecda23321a61369..e69de29bb2d1d6434b8b29ae775ad8c2e48c5391
GIT binary patch
literal 0
Hc$@<O00001
deleted file mode 100644
index 47db30e883bf5bbdac244a2ccaca3eeb7d094ed0..e69de29bb2d1d6434b8b29ae775ad8c2e48c5391
GIT binary patch
literal 0
Hc$@<O00001
deleted file mode 100644
index d045bc68ba29c54ce21b038159be3324751a219b..e69de29bb2d1d6434b8b29ae775ad8c2e48c5391
GIT binary patch
literal 0
Hc$@<O00001
deleted file mode 100644
index 1745afc10a044d7ea2d13ffd8f54edba0f7281d0..e69de29bb2d1d6434b8b29ae775ad8c2e48c5391
GIT binary patch
literal 0
Hc$@<O00001
deleted file mode 100644
index 3c66b8094f8dc88fc0b1131bdd681ff2c97df112..e69de29bb2d1d6434b8b29ae775ad8c2e48c5391
GIT binary patch
literal 0
Hc$@<O00001
deleted file mode 100644
index 14b226f848d741cf87ff5fa5a9e1bc771dbfd2d0..e69de29bb2d1d6434b8b29ae775ad8c2e48c5391
GIT binary patch
literal 0
Hc$@<O00001
deleted file mode 100644
index 869e9dd43f7938bb81d1b0da3a971b689a7860e6..e69de29bb2d1d6434b8b29ae775ad8c2e48c5391
GIT binary patch
literal 0
Hc$@<O00001
deleted file mode 100644
index adc205ab2e237a2475ef475c55c10522116a7a8a..e69de29bb2d1d6434b8b29ae775ad8c2e48c5391
GIT binary patch
literal 0
Hc$@<O00001
deleted file mode 100644
index 7598fb186835ed0faedc5053f9cce86d2ed316ce..e69de29bb2d1d6434b8b29ae775ad8c2e48c5391
GIT binary patch
literal 0
Hc$@<O00001
deleted file mode 100644
index 6934048e53554f09d3c51dda1b8fe281b1dfa6bb..e69de29bb2d1d6434b8b29ae775ad8c2e48c5391
GIT binary patch
literal 0
Hc$@<O00001
deleted file mode 100644
index 7fdaf4326ff8f25cb094160cca3209c8e924a7b7..e69de29bb2d1d6434b8b29ae775ad8c2e48c5391
GIT binary patch
literal 0
Hc$@<O00001
deleted file mode 100644
index aa372a6c5c44cfef5869908b161355a514f9097f..e69de29bb2d1d6434b8b29ae775ad8c2e48c5391
GIT binary patch
literal 0
Hc$@<O00001
deleted file mode 100644
index 936a22f3f6a92ef2da865f3a70bfe84569f43cdf..e69de29bb2d1d6434b8b29ae775ad8c2e48c5391
GIT binary patch
literal 0
Hc$@<O00001
deleted file mode 100644
index 5134c7db0dab37712878a3c4470c4871e9a58d48..e69de29bb2d1d6434b8b29ae775ad8c2e48c5391
GIT binary patch
literal 0
Hc$@<O00001
deleted file mode 100644
index f48ae8eccc5b914876262ab3b71a8dc789a5953c..e69de29bb2d1d6434b8b29ae775ad8c2e48c5391
GIT binary patch
literal 0
Hc$@<O00001
deleted file mode 100644
index 69ae78bb53bcf36871b912bd79ec78ba94fbfda6..e69de29bb2d1d6434b8b29ae775ad8c2e48c5391
GIT binary patch
literal 0
Hc$@<O00001
deleted file mode 100644
index 584a0295037a7d1b6f0554ea88cf5518fe335b54..e69de29bb2d1d6434b8b29ae775ad8c2e48c5391
GIT binary patch
literal 0
Hc$@<O00001
deleted file mode 100644
index cc13295781c47b1b6e2bd0e429f5e399ffbdfd51..e69de29bb2d1d6434b8b29ae775ad8c2e48c5391
GIT binary patch
literal 0
Hc$@<O00001
deleted file mode 100644
index 11eb1fa940c5a81814c7166d171ddee3355a44e6..e69de29bb2d1d6434b8b29ae775ad8c2e48c5391
GIT binary patch
literal 0
Hc$@<O00001
deleted file mode 100644
index e35781d89d343689ecf4e3bed82111119e914518..e69de29bb2d1d6434b8b29ae775ad8c2e48c5391
GIT binary patch
literal 0
Hc$@<O00001
deleted file mode 100644
index 9e12b727f433c911c8118a9d7f36773bd243ef09..e69de29bb2d1d6434b8b29ae775ad8c2e48c5391
GIT binary patch
literal 0
Hc$@<O00001
deleted file mode 100644
index 45cb4b109cde64913cc3bd50c64b3a2f968b712b..e69de29bb2d1d6434b8b29ae775ad8c2e48c5391
GIT binary patch
literal 0
Hc$@<O00001
deleted file mode 100644
index c363b39d29f76e29c447dcf28f5095b1de694bdb..e69de29bb2d1d6434b8b29ae775ad8c2e48c5391
GIT binary patch
literal 0
Hc$@<O00001
deleted file mode 100644
index 1aed8f93858d01daca891a50120fc62f2e2acf9b..e69de29bb2d1d6434b8b29ae775ad8c2e48c5391
GIT binary patch
literal 0
Hc$@<O00001
--- a/mobile/android/base/AndroidManifest.xml.in
+++ b/mobile/android/base/AndroidManifest.xml.in
@@ -258,19 +258,16 @@
                 <action android:name="@ANDROID_PACKAGE_NAME@.NOTIFICATION_CLICK" />
                 <action android:name="@ANDROID_PACKAGE_NAME@.NOTIFICATION_CLOSE" />
                 <data android:scheme="moz-notification" />
                 <category android:name="android.intent.category.DEFAULT" />
             </intent-filter>
         </receiver>
 
 #include ../services/manifests/FxAccountAndroidManifest_activities.xml.in
-#ifdef MOZ_ANDROID_SEARCH_ACTIVITY
-#include ../search/manifests/SearchAndroidManifest_activities.xml.in
-#endif
 
 #ifdef MOZ_CRASHREPORTER
   <activity android:name="org.mozilla.gecko.CrashReporter"
             android:process="@ANDROID_PACKAGE_NAME@.CrashReporter"
             android:label="@string/crash_reporter_title"
             android:icon="@drawable/crash_reporter"
             android:theme="@style/Gecko"
             android:exported="false"
@@ -413,19 +410,16 @@
 
 #include ../services/manifests/FxAccountAndroidManifest_services.xml.in
 
         <service
             android:name="org.mozilla.gecko.tabqueue.TabReceivedService"
             android:exported="false" />
 
 
-#ifdef MOZ_ANDROID_SEARCH_ACTIVITY
-#include ../search/manifests/SearchAndroidManifest_services.xml.in
-#endif
 #ifdef MOZ_ANDROID_MLS_STUMBLER
 #include ../stumbler/manifests/StumblerManifest_services.xml.in
 #endif
 
 #ifdef MOZ_ANDROID_GCM
 #include GcmAndroidManifest_services.xml.in
 #endif
 
--- a/mobile/android/base/AppConstants.java.in
+++ b/mobile/android/base/AppConstants.java.in
@@ -73,20 +73,16 @@ public class AppConstants {
     /**
      * The name of the Java class that represents the android application.
      */
     public static final String MOZ_ANDROID_APPLICATION_CLASS = "@MOZ_ANDROID_APPLICATION_CLASS@";
     /**
      * The name of the Java class that launches the browser activity.
      */
     public static final String MOZ_ANDROID_BROWSER_INTENT_CLASS = "@MOZ_ANDROID_BROWSER_INTENT_CLASS@";
-    /**
-     * The name of the Java class that launches the search activity.
-     */
-    public static final String MOZ_ANDROID_SEARCH_INTENT_CLASS = "@MOZ_ANDROID_SEARCH_INTENT_CLASS@";
 
     public static final String GRE_MILESTONE = "@GRE_MILESTONE@";
 
     public static final String MOZ_APP_ABI = "@MOZ_APP_ABI@";
     public static final String MOZ_APP_BASENAME = "@MOZ_APP_BASENAME@";
 
     // For the benefit of future archaeologists:
     // GRE_BUILDID is exactly the same as MOZ_APP_BUILDID unless you're running
--- a/mobile/android/base/FennecManifest_permissions.xml.in
+++ b/mobile/android/base/FennecManifest_permissions.xml.in
@@ -1,15 +1,11 @@
 
 #include ../services/manifests/FxAccountAndroidManifest_permissions.xml.in
 
-#ifdef MOZ_ANDROID_SEARCH_ACTIVITY
-#include ../search/manifests/SearchAndroidManifest_permissions.xml.in
-#endif
-
 <!-- Bug 1261302: we have two new permissions to request,
      RECEIVE_BOOT_COMPLETED and the permission for push.  We want to ask for
      them during the same release, which should be Fennec 48.  Therefore we
      decouple the push permission from MOZ_ANDROID_GCM to let it ride ahead
      (potentially) of the push feature. -->
 #include GcmAndroidManifest_permissions.xml.in
 
     <uses-permission android:name="android.permission.CHANGE_WIFI_STATE"/>
--- a/mobile/android/base/Makefile.in
+++ b/mobile/android/base/Makefile.in
@@ -170,20 +170,16 @@ GECKOVIEW_JARS += gecko-thirdparty-leanp
 endif
 
 FENNEC_JARS = \
   gecko-browser.jar \
   gecko-thirdparty.jar \
   services.jar \
   $(NULL)
 
-ifdef MOZ_ANDROID_SEARCH_ACTIVITY
-FENNEC_JARS += search-activity.jar
-endif
-
 ifdef MOZ_ANDROID_MLS_STUMBLER
 FENNEC_JARS += ../stumbler/stumbler.jar
 endif
 
 else # MOZ_BUILD_MOBILE_ANDROID_WITH_GRADLE
 
 GECKOVIEW_JARS := $(gradle_dir)/geckoview/intermediates/bundles/debug/classes.jar
 FENNEC_JARS := $(gradle_dir)/app/intermediates/packaged/officialPhoton/debug/classes.jar
--- a/mobile/android/base/generate_build_config.py
+++ b/mobile/android/base/generate_build_config.py
@@ -45,17 +45,16 @@ def _defines():
                 'MOZ_ANDROID_GCM',
                 'MOZ_ANDROID_MLS_STUMBLER',
                 'MOZ_ANDROID_MMA',
                 'MOZ_ANDROID_MOZILLA_ONLINE',
                 'MOZ_ANDROID_POCKET',
                 'MOZ_ANDROID_PWA',
                 'MOZ_LEANPLUM_SDK_KEY',
                 'MOZ_LEANPLUM_SDK_CLIENTID',
-                'MOZ_ANDROID_SEARCH_ACTIVITY',
                 'MOZ_CRASHREPORTER',
                 'MOZ_DEBUG',
                 'MOZ_INSTALL_TRACKING',
                 'MOZ_NATIVE_DEVICES',
                 'MOZ_SWITCHBOARD'):
         if CONFIG[var]:
             DEFINES[var] = 1
 
@@ -70,17 +69,16 @@ def _defines():
 
     for var in ('ANDROID_CPU_ARCH',
                 'ANDROID_PACKAGE_NAME',
                 'ANDROID_TARGET_SDK',
                 'GRE_MILESTONE',
                 'MOZ_ANDROID_SHARED_ID',
                 'MOZ_ANDROID_APPLICATION_CLASS',
                 'MOZ_ANDROID_BROWSER_INTENT_CLASS',
-                'MOZ_ANDROID_SEARCH_INTENT_CLASS',
                 'MOZ_APP_BASENAME',
                 'MOZ_APP_DISPLAYNAME',
                 'MOZ_APP_ID',
                 'MOZ_APP_NAME',
                 'MOZ_APP_UA_NAME',
                 'MOZ_APP_VENDOR',
                 'MOZ_APP_VERSION',
                 'MOZ_CHILD_PROCESS_NAME',
--- a/mobile/android/base/java/org/mozilla/gecko/util/UnusedResourcesUtil.java
+++ b/mobile/android/base/java/org/mozilla/gecko/util/UnusedResourcesUtil.java
@@ -50,21 +50,19 @@ final class UnusedResourcesUtil {
             R.drawable.pause,
             R.drawable.phone,
             R.drawable.play,
             R.drawable.sync_promo,
             R.drawable.undo_button_icon,
     };
 
     public static final int[] USED_IN_MANIFEST = {
-            R.drawable.search_launcher,
             R.string.crash_reporter_title,
             R.xml.fxaccount_authenticator,
             R.xml.fxaccount_syncadapter,
-            R.xml.search_widget_info,
             R.xml.searchable,
     };
 
     public static final int[] USED_IN_SUGGESTEDSITES = {
             R.drawable.suggestedsites_amazon,
             R.drawable.suggestedsites_facebook,
             R.drawable.suggestedsites_restricted_fxsupport,
             R.drawable.suggestedsites_restricted_mozilla,
--- a/mobile/android/base/locales/Makefile.in
+++ b/mobile/android/base/locales/Makefile.in
@@ -3,21 +3,16 @@
 # file, You can obtain one at http://mozilla.org/MPL/2.0/.
 
 include $(topsrcdir)/config/config.mk
 
 # special case some locale codes, he and id
 # http://code.google.com/p/android/issues/detail?id=3639
 AB_rCD = $(if $(filter he, $(AB_CD)),iw,$(if $(filter id, $(AB_CD)),in,$(subst -,-r,$(AB_CD))))
 
-# The search strings path is always passed to strings.xml.in; the
-# decision to include is made based on the feature flag at the
-# inclusion site.
-SEARCHSTRINGSPATH = $(abspath $(call MERGE_FILE,search_strings.dtd))
-
 SYNCSTRINGSPATH = $(abspath $(call MERGE_FILE,sync_strings.dtd))
 STRINGSPATH = $(abspath $(call MERGE_FILE,android_strings.dtd))
 ifeq (,$(XPI_NAME))
 BRANDPATH = $(topobjdir)/dist/bin/chrome/$(AB_CD)/locale/branding/brand.dtd
 else
 BRANDPATH = $(ABS_DIST)/xpi-stage/$(XPI_NAME)/chrome/$(AB_CD)/locale/branding/brand.dtd
 endif
 $(warnIfEmpty,AB_CD) # todo: $(errorIfEmpty )
@@ -50,31 +45,29 @@ ifeq (,$(strip $(strings-xml-bypath)))
   strings-xml-bypath = $(strings-xml)
 endif
 dir-strings-xml = $(patsubst %/,%,$(dir $(strings-xml-bypath)))
 
 strings-xml-preqs =\
   $(strings-xml-in) \
   $(BRANDPATH) \
   $(STRINGSPATH) \
-  $(SEARCHSTRINGSPATH) \
   $(SYNCSTRINGSPATH) \
   $(if $(IS_LANGUAGE_REPACK),FORCE) \
   $(NULL)
 
 $(dir-strings-xml)/strings.xml: $(strings-xml-preqs)
 	$(call py_action,preprocessor, \
       $(DEFINES) \
       $(ACDEFINES) \
 	  -DANDROID_PACKAGE_NAME=$(ANDROID_PACKAGE_NAME) \
 	  -DBRANDPATH='$(BRANDPATH)' \
 	  -DMOZ_APP_DISPLAYNAME='@MOZ_APP_DISPLAYNAME@' \
 	  -DSTRINGSPATH='$(STRINGSPATH)' \
 	  -DSYNCSTRINGSPATH='$(SYNCSTRINGSPATH)' \
-	  -DSEARCHSTRINGSPATH='$(SEARCHSTRINGSPATH)' \
       $< \
 	  -o $@)
 
 # Arg 1: Valid Make identifier, like suggestedsites.
 # Arg 2: File name, like suggestedsites.json.
 define generated_file_template
 
 # Determine the ../res/raw[-*] path.  This can be ../res/raw when no
deleted file mode 100644
--- a/mobile/android/base/locales/en-US/search_strings.dtd
+++ /dev/null
@@ -1,28 +0,0 @@
-<!-- This Source Code Form is subject to the terms of the Mozilla Public
-   - License, v. 2.0. If a copy of the MPL was not distributed with this
-   - file, You can obtain one at http://mozilla.org/MPL/2.0/. -->
-
-<!ENTITY search_app_name '&brandShortName; Search'>
-
-<!--  Localization note (search_bar_hint): The &formatS; will be replaced with the name of
-      the currently selected search engine. -->
-<!ENTITY search_bar_hint 'Search with &formatS;'>
-
-<!ENTITY search_empty_title2 'Start searching'>
-<!ENTITY search_empty_message 'Quickly search for anything you want'>
-
-<!--  Localization note (search_plus_content_description): This is the content description
-      for the "+" icon that appears at the end of search suggestions. -->
-<!ENTITY search_plus_content_description 'Add to search bar'>
-
-<!ENTITY search_pref_title 'Settings'>
-<!ENTITY search_pref_button_content_description 'Settings'>
-
-<!ENTITY pref_clearHistory_confirmation 'History cleared'>
-<!ENTITY pref_clearHistory_dialogMessage 'Delete all search history from this device?'>
-<!ENTITY pref_clearHistory_title 'Clear search history'>
-
-<!ENTITY search_widget_button_label 'Search'>
-
-<!ENTITY network_error_title 'No internet connection'>
-<!ENTITY network_error_message 'Tap here to check your network settings'>
--- a/mobile/android/base/locales/moz.build
+++ b/mobile/android/base/locales/moz.build
@@ -1,8 +1,5 @@
 # -*- Mode: python; indent-tabs-mode: nil; tab-width: 40 -*-
 # vim: set filetype=python:
 # This Source Code Form is subject to the terms of the Mozilla Public
 # License, v. 2.0. If a copy of the MPL was not distributed with this
 # file, You can obtain one at http://mozilla.org/MPL/2.0/.
-
-if CONFIG['MOZ_ANDROID_SEARCH_ACTIVITY']:
-    DEFINES['MOZ_ANDROID_SEARCH_ACTIVITY'] = 1
--- a/mobile/android/base/moz.build
+++ b/mobile/android/base/moz.build
@@ -1412,39 +1412,16 @@ ANDROID_ASSETS_DIRS += [
     '/mobile/android/app/assets',
 ]
 
 if CONFIG['MOZ_ANDROID_DISTRIBUTION_DIRECTORY']:
     ANDROID_ASSETS_DIRS += [
         '%' + CONFIG['MOZ_ANDROID_DISTRIBUTION_DIRECTORY'] + '/assets',
     ]
 
-if CONFIG['MOZ_ANDROID_SEARCH_ACTIVITY']:
-    # The Search Activity is mostly independent of Fennec proper, but
-    # it does depend on Geckoview.  Therefore, we build it as a jar
-    # that depends on the Geckoview jars.
-    search_source_dir = SRCDIR + '/../search'
-    include('../search/search_activity_sources.mozbuild')
-
-    search_activity = add_java_jar('search-activity')
-    search_activity.sources += [search_source_dir + '/' + f for f in search_activity_sources]
-    search_activity.javac_flags += ['-Xlint:all']
-    search_activity.extra_jars = [
-        CONFIG['ANDROID_SUPPORT_ANNOTATIONS_JAR_LIB'],
-        CONFIG['ANDROID_SUPPORT_V4_AAR_LIB'],
-        CONFIG['ANDROID_SUPPORT_V4_AAR_INTERNAL_LIB'],
-        'constants.jar',
-        'gecko-R.jar',
-        'gecko-browser.jar',
-        'gecko-mozglue.jar',
-        'gecko-thirdparty.jar',
-        'gecko-util.jar',
-        'gecko-view.jar',
-    ]
-
 DEFINES['ANDROID_PACKAGE_NAME'] = CONFIG['ANDROID_PACKAGE_NAME']
 FINAL_TARGET_PP_FILES += ['package-name.txt.in']
 
 gvjar.sources += ['generated/org/mozilla/gecko/' + x for x in [
     'gfx/ISurfaceAllocator.java',
     'IGeckoEditableChild.java',
     'IGeckoEditableParent.java',
     'media/ICodec.java',
--- a/mobile/android/base/strings.xml.in
+++ b/mobile/android/base/strings.xml.in
@@ -3,35 +3,32 @@
 <!-- This Source Code Form is subject to the terms of the Mozilla Public
    - License, v. 2.0. If a copy of the MPL was not distributed with this
    - file, You can obtain one at http://mozilla.org/MPL/2.0/. -->
 
 <!DOCTYPE resources [
 #includesubst @BRANDPATH@
 #includesubst @STRINGSPATH@
 #includesubst @SYNCSTRINGSPATH@
-#includesubst @SEARCHSTRINGSPATH@
 
 <!-- C-style format strings. -->
 <!ENTITY formatI "&#037;I">
 <!ENTITY formatS "&#037;s">
 <!ENTITY formatS1 "&#037;1&#036;s">
 <!ENTITY formatS2 "&#037;2&#036;s">
 <!ENTITY formatS3 "&#037;3&#036;s">
 <!ENTITY formatD "&#037;d">
 ]>
 
 <resources>
   <string name="moz_app_displayname">@MOZ_APP_DISPLAYNAME@</string>
   <string name="content_authority_db_browser">@ANDROID_PACKAGE_NAME@.db.browser</string>
   <string name="moz_android_shared_fxaccount_type">@ANDROID_PACKAGE_NAME@_fxaccount</string>
   <string name="android_package_name_for_ui">@ANDROID_PACKAGE_NAME@</string>
 
-#include ../search/strings/search_strings.xml.in
-
 #include ../services/strings.xml.in
 
   <string name="firstrun_panel_title_welcome">&firstrun_panel_title_welcome;</string>
 
   <string name="firstrun_urlbar_message">&firstrun_urlbar_message2;</string>
   <string name="firstrun_urlbar_subtext">&firstrun_urlbar_subtext2;</string>
   <string name="firstrun_panel_title_privacy">&firstrun_panel_title_privacy;</string>
   <string name="firstrun_privacy_message">&firstrun_privacy_message;</string>
deleted file mode 100644
index e7cbb127965330af12a2b5fbad00413453bfc0ad..e69de29bb2d1d6434b8b29ae775ad8c2e48c5391
GIT binary patch
literal 0
Hc$@<O00001
deleted file mode 100644
index 88c288fd9668cd070fc6d27d32147b1417e558fe..e69de29bb2d1d6434b8b29ae775ad8c2e48c5391
GIT binary patch
literal 0
Hc$@<O00001
deleted file mode 100644
index 5bd6282c3d0b0c6a048fd40d947cf90be2b429e7..e69de29bb2d1d6434b8b29ae775ad8c2e48c5391
GIT binary patch
literal 0
Hc$@<O00001
deleted file mode 100644
index 97a5decfee12cd6c4ad497a45e184ca6e718e187..e69de29bb2d1d6434b8b29ae775ad8c2e48c5391
GIT binary patch
literal 0
Hc$@<O00001
deleted file mode 100644
index 736a1ee1a4e742db40e46a6c51fc438af4d5b175..e69de29bb2d1d6434b8b29ae775ad8c2e48c5391
GIT binary patch
literal 0
Hc$@<O00001
deleted file mode 100644
index 864dbde0457bf3fa28fd4b9e23fb0626cd0126ad..e69de29bb2d1d6434b8b29ae775ad8c2e48c5391
GIT binary patch
literal 0
Hc$@<O00001
deleted file mode 100644
index e0f2335e89e9b8bb7ab153c33412f514635d5ee1..e69de29bb2d1d6434b8b29ae775ad8c2e48c5391
GIT binary patch
literal 0
Hc$@<O00001
deleted file mode 100644
index 9c3bb0b46f93f1a95698edbafceada339895399c..e69de29bb2d1d6434b8b29ae775ad8c2e48c5391
GIT binary patch
literal 0
Hc$@<O00001
deleted file mode 100644
index 09a9d98f68a199846c3c6e23bfd604182f9f298a..e69de29bb2d1d6434b8b29ae775ad8c2e48c5391
GIT binary patch
literal 0
Hc$@<O00001
deleted file mode 100644
index 328fc0c0526ca99443ef24b3ce2e3e73ab259746..e69de29bb2d1d6434b8b29ae775ad8c2e48c5391
GIT binary patch
literal 0
Hc$@<O00001
deleted file mode 100644
index 56bad918530854646d2d173a8663e986a4d33c18..e69de29bb2d1d6434b8b29ae775ad8c2e48c5391
GIT binary patch
literal 0
Hc$@<O00001
deleted file mode 100644
index 4dca4e9f687acdd6e3268ee711ce3a08a94ef095..e69de29bb2d1d6434b8b29ae775ad8c2e48c5391
GIT binary patch
literal 0
Hc$@<O00001
deleted file mode 100644
index e0f2335e89e9b8bb7ab153c33412f514635d5ee1..e69de29bb2d1d6434b8b29ae775ad8c2e48c5391
GIT binary patch
literal 0
Hc$@<O00001
deleted file mode 100644
index 9c3bb0b46f93f1a95698edbafceada339895399c..e69de29bb2d1d6434b8b29ae775ad8c2e48c5391
GIT binary patch
literal 0
Hc$@<O00001
deleted file mode 100644
index 09a9d98f68a199846c3c6e23bfd604182f9f298a..e69de29bb2d1d6434b8b29ae775ad8c2e48c5391
GIT binary patch
literal 0
Hc$@<O00001
deleted file mode 100644
index 328fc0c0526ca99443ef24b3ce2e3e73ab259746..e69de29bb2d1d6434b8b29ae775ad8c2e48c5391
GIT binary patch
literal 0
Hc$@<O00001
deleted file mode 100644
index 56bad918530854646d2d173a8663e986a4d33c18..e69de29bb2d1d6434b8b29ae775ad8c2e48c5391
GIT binary patch
literal 0
Hc$@<O00001
deleted file mode 100644
index 4dca4e9f687acdd6e3268ee711ce3a08a94ef095..e69de29bb2d1d6434b8b29ae775ad8c2e48c5391
GIT binary patch
literal 0
Hc$@<O00001
deleted file mode 100644
index 79ef9c7f6041d6d93023fe8b2e6660c739209291..e69de29bb2d1d6434b8b29ae775ad8c2e48c5391
GIT binary patch
literal 0
Hc$@<O00001
deleted file mode 100644
index b2a2bd66e676648949c8ddae6988273278df438e..e69de29bb2d1d6434b8b29ae775ad8c2e48c5391
GIT binary patch
literal 0
Hc$@<O00001
deleted file mode 100644
index e1ea950ed824b2d3c5ac0dc4e4ec555845edca3a..e69de29bb2d1d6434b8b29ae775ad8c2e48c5391
GIT binary patch
literal 0
Hc$@<O00001
deleted file mode 100644
index a400e720c6f8a08705962bc8f7a1123491ef8393..e69de29bb2d1d6434b8b29ae775ad8c2e48c5391
GIT binary patch
literal 0
Hc$@<O00001
deleted file mode 100644
index ef409725a016ec47a9a54ec40cb926a16f8fbe4c..e69de29bb2d1d6434b8b29ae775ad8c2e48c5391
GIT binary patch
literal 0
Hc$@<O00001
deleted file mode 100644
index 3df5a922ab2ecae30fe8ac3cb5e307134ea38b20..e69de29bb2d1d6434b8b29ae775ad8c2e48c5391
GIT binary patch
literal 0
Hc$@<O00001
deleted file mode 100644
index 8e55b0c113386464fc6daf0ebf2d61b643f3147b..e69de29bb2d1d6434b8b29ae775ad8c2e48c5391
GIT binary patch
literal 0
Hc$@<O00001
deleted file mode 100644
index 56f47446a6f3b99eb6a2089b38f10172dc892404..e69de29bb2d1d6434b8b29ae775ad8c2e48c5391
GIT binary patch
literal 0
Hc$@<O00001
deleted file mode 100644
index d5bcf969798aaaea6a4c1be0238aee7bce1eb999..e69de29bb2d1d6434b8b29ae775ad8c2e48c5391
GIT binary patch
literal 0
Hc$@<O00001
deleted file mode 100644
index eb88984dbf015a595bafd4f280ef2cc641d1dcc4..e69de29bb2d1d6434b8b29ae775ad8c2e48c5391
GIT binary patch
literal 0
Hc$@<O00001
--- a/mobile/android/confvars.sh
+++ b/mobile/android/confvars.sh
@@ -22,17 +22,16 @@ MOZ_OFFICIAL_BRANDING_DIRECTORY=mobile/a
 # If you think you can't handle the whole set of changes, please reach out to the Release
 # Engineering team.
 MOZ_ANDROID_MIN_SDK_VERSION=16
 
 # There are several entry points into the Firefox application.  These are the names of some of the classes that are
 # listed in the Android manifest.  They are specified in here to avoid hard-coding them in source code files.
 MOZ_ANDROID_APPLICATION_CLASS=org.mozilla.gecko.GeckoApplication
 MOZ_ANDROID_BROWSER_INTENT_CLASS=org.mozilla.gecko.BrowserApp
-MOZ_ANDROID_SEARCH_INTENT_CLASS=org.mozilla.search.SearchActivity
 
 MOZ_NO_SMART_CARDS=1
 
 MOZ_XULRUNNER=
 
 MOZ_CAPTURE=1
 MOZ_RAW=1
 
--- a/mobile/android/moz.build
+++ b/mobile/android/moz.build
@@ -30,19 +30,16 @@ with Files('geckoview/src/main/java/org/
     BUG_COMPONENT = ('Firefox for Android', 'Audio/Video')
 
 with Files('geckoview_example/**'):
     BUG_COMPONENT = ('Firefox for Android', 'GeckoView')
 
 with Files('gradle/**'):
     BUG_COMPONENT = ('Firefox for Android', 'Build Config & IDE Support')
 
-with Files('search/**'):
-    BUG_COMPONENT = ('Firefox for Android', 'Search Activity')
-
 with Files('services/**'):
     BUG_COMPONENT = ('Android Background Services', 'Android Sync')
 
 with Files('themes/**'):
     BUG_COMPONENT = ('Firefox for Android', 'Theme and Visual Design')
 
 with Files('thirdparty/**'):
     BUG_COMPONENT = ('Firefox for Android', 'General')
--- a/mobile/android/moz.configure
+++ b/mobile/android/moz.configure
@@ -54,20 +54,16 @@ set_config('MOZ_ANDROID_POCKET',
 project_flag('MOZ_ANDROID_DOWNLOADS_INTEGRATION',
              help='Enable system download manager on Android',
              default=True)
 
 project_flag('MOZ_ANDROID_BEAM',
              help='Enable NFC permission on Android',
              default=True)
 
-project_flag('MOZ_ANDROID_SEARCH_ACTIVITY',
-             help='Include Search Activity on Android',
-             default=True)
-
 project_flag('MOZ_ANDROID_MLS_STUMBLER',
              help='Include Mozilla Location Service Stumbler on Android',
              default=True)
 
 project_flag('MOZ_ANDROID_DOWNLOAD_CONTENT_SERVICE',
              help='Background service for downloading additional content at runtime',
              default=True)
 
deleted file mode 100644
--- a/mobile/android/search/java/org/mozilla/search/AcceptsSearchQuery.java
+++ /dev/null
@@ -1,48 +0,0 @@
-/* This Source Code Form is subject to the terms of the Mozilla Public
- * License, v. 2.0. If a copy of the MPL was not distributed with this
- * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
-
-package org.mozilla.search;
-
-import android.graphics.Rect;
-
-/**
- * Allows fragments to pass a search event to the main activity.
- */
-public interface AcceptsSearchQuery {
-
-    /**
-     * Shows search suggestions.
-     * @param query
-     */
-    void onSuggest(String query);
-
-    /**
-     * Starts a search.
-     *
-     * @param query
-     */
-    void onSearch(String query);
-
-    /**
-     * Starts a search and animates a suggestion.
-     *
-     * @param query
-     * @param suggestionAnimation
-     */
-    void onSearch(String query, SuggestionAnimation suggestionAnimation);
-
-    /**
-     * Handles a change to the current search query.
-     *
-     * @param query
-     */
-    void onQueryChange(String query);
-
-    /**
-     * Interface to specify search suggestion animation details.
-     */
-    public interface SuggestionAnimation {
-        public Rect getStartBounds();
-    }
-}
deleted file mode 100644
--- a/mobile/android/search/java/org/mozilla/search/Constants.java
+++ /dev/null
@@ -1,20 +0,0 @@
-/*
- * This Source Code Form is subject to the terms of the Mozilla Public
- * License, v. 2.0. If a copy of the MPL was not distributed with this
- * file, You can obtain one at http://mozilla.org/MPL/2.0/.
- */
-
-/* This Source Code Form is subject to the terms of the Mozilla Public
- * License, v. 2.0. If a copy of the MPL was not distributed with this
- * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
-
-package org.mozilla.search;
-
-/**
- * Key should not be stored here. For more info on storing keys, see
- * https://github.com/ericedens/FirefoxSearch/issues/3
- */
-public class Constants {
-
-    public static final String ABOUT_BLANK = "about:blank";
-}
deleted file mode 100644
--- a/mobile/android/search/java/org/mozilla/search/PostSearchFragment.java
+++ /dev/null
@@ -1,244 +0,0 @@
-/* This Source Code Form is subject to the terms of the Mozilla Public
- * License, v. 2.0. If a copy of the MPL was not distributed with this
- * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
-
-package org.mozilla.search;
-
-import java.net.MalformedURLException;
-import java.net.URISyntaxException;
-import java.net.URL;
-
-import android.support.v4.content.ContextCompat;
-import org.mozilla.gecko.AppConstants;
-import org.mozilla.gecko.GeckoApplication;
-import org.mozilla.gecko.R;
-import org.mozilla.gecko.search.SearchEngine;
-import org.mozilla.gecko.Telemetry;
-import org.mozilla.gecko.TelemetryContract;
-
-import android.annotation.SuppressLint;
-import android.content.ActivityNotFoundException;
-import android.content.Intent;
-import android.graphics.Bitmap;
-import android.os.Bundle;
-import android.provider.Settings;
-import android.support.v4.app.Fragment;
-import android.text.TextUtils;
-import android.util.Log;
-import android.view.LayoutInflater;
-import android.view.View;
-import android.view.ViewGroup;
-import android.view.ViewStub;
-import android.webkit.WebChromeClient;
-import android.webkit.WebView;
-import android.webkit.WebViewClient;
-import android.widget.ImageView;
-import android.widget.ProgressBar;
-import android.widget.TextView;
-
-public class PostSearchFragment extends Fragment {
-
-    private static final String LOG_TAG = "PostSearchFragment";
-
-    private SearchEngine engine;
-
-    private ProgressBar progressBar;
-    private WebView webview;
-    private View errorView;
-
-    private String resultsPageHost;
-
-    @SuppressLint("SetJavaScriptEnabled")
-    @Override
-    public View onCreateView(LayoutInflater inflater, ViewGroup container,
-                             Bundle savedInstanceState) {
-        View mainView = inflater.inflate(R.layout.search_fragment_post_search, container, false);
-
-        progressBar = (ProgressBar) mainView.findViewById(R.id.progress_bar);
-
-        webview = (WebView) mainView.findViewById(R.id.webview);
-        webview.setWebChromeClient(new ChromeClient());
-        webview.setWebViewClient(new ResultsWebViewClient());
-
-        // This is required for our greasemonkey terror script.
-        webview.getSettings().setJavaScriptEnabled(true);
-
-        return mainView;
-    }
-
-    @Override
-    public void onDestroyView() {
-        super.onDestroyView();
-        webview.setWebChromeClient(null);
-        webview.setWebViewClient(null);
-        webview = null;
-        progressBar = null;
-    }
-
-    @Override
-    public void onDestroy() {
-        super.onDestroy();
-
-        GeckoApplication.watchReference(getActivity(), this);
-    }
-
-    public void startSearch(SearchEngine engine, String query) {
-        this.engine = engine;
-
-        final String url = engine.resultsUriForQuery(query);
-        // Only load urls if the url is different than the webview's current url.
-        if (!TextUtils.equals(webview.getUrl(), url)) {
-            resultsPageHost = null;
-            webview.loadUrl(Constants.ABOUT_BLANK);
-            webview.loadUrl(url);
-        }
-    }
-
-    /**
-     * A custom WebViewClient that intercepts every page load. This allows
-     * us to decide whether to load the url here, or send it to Android
-     * as an intent. It also handles network errors.
-     */
-    private class ResultsWebViewClient extends WebViewClient {
-
-        // Whether or not there is a network error.
-        private boolean networkError;
-
-        @Override
-        public void onPageStarted(WebView view, final String url, Bitmap favicon) {
-            // Reset the error state.
-            networkError = false;
-        }
-
-        @SuppressWarnings("deprecation")
-        @Override
-        public boolean shouldOverrideUrlLoading(WebView view, String url) {
-            // Ignore about:blank URL loads and the first results page we try to load.
-            if (TextUtils.equals(url, Constants.ABOUT_BLANK) || resultsPageHost == null) {
-                return false;
-            }
-
-            String host = null;
-            try {
-                host = new URL(url).getHost();
-            } catch (MalformedURLException e) {
-                Log.e(LOG_TAG, "Error getting host from URL loading in webview", e);
-            }
-
-            // If the host name is the same as the results page, don't override the URL load, but
-            // do update the query in the search bar if possible.
-            if (TextUtils.equals(resultsPageHost, host)) {
-                // This won't work for results pages that redirect (e.g. Google in different country)
-                final String query = engine.queryForResultsUrl(url);
-                if (!TextUtils.isEmpty(query)) {
-                    ((AcceptsSearchQuery) getActivity()).onQueryChange(query);
-                }
-                return false;
-            }
-
-            try {
-                // If the url URI does not have an intent scheme, the intent data will be the entire
-                // URI and its action will be ACTION_VIEW.
-                final Intent i = Intent.parseUri(url, Intent.URI_INTENT_SCHEME);
-
-                // If the intent URI didn't specify a package, open this in Fennec.
-                if (i.getPackage() == null) {
-                    i.setClassName(view.getContext().getPackageName(), AppConstants.MOZ_ANDROID_BROWSER_INTENT_CLASS);
-                    Telemetry.sendUIEvent(TelemetryContract.Event.LOAD_URL,
-                            TelemetryContract.Method.CONTENT, "search-result");
-                } else {
-                    Telemetry.sendUIEvent(TelemetryContract.Event.LAUNCH,
-                            TelemetryContract.Method.INTENT, "search-result");
-                }
-
-                i.addCategory(Intent.CATEGORY_BROWSABLE);
-                i.setComponent(null);
-                i.setSelector(null);
-
-                startActivity(i);
-                return true;
-            } catch (URISyntaxException e) {
-                Log.e(LOG_TAG, "Error parsing intent URI", e);
-            } catch (SecurityException e) {
-                Log.e(LOG_TAG, "SecurityException handling arbitrary intent content");
-            } catch (ActivityNotFoundException e) {
-                Log.e(LOG_TAG, "Intent not actionable");
-            }
-
-            return false;
-        }
-
-        // We are suppressing the 'deprecation' warning because the new method is only available starting with API
-        // level 23 and that's much higher than our current minSdkLevel (1208580).
-        @SuppressWarnings("deprecation")
-        @Override
-        public void onReceivedError(WebView view, int errorCode, String description, String failingUrl) {
-            Log.e(LOG_TAG, "Error loading search results: " + description);
-
-            networkError = true;
-
-            if (errorView == null) {
-                final ViewStub errorViewStub = (ViewStub) getView().findViewById(R.id.error_view_stub);
-                errorView = errorViewStub.inflate();
-
-                ((ImageView) errorView.findViewById(R.id.empty_image)).setImageResource(R.drawable.network_error);
-                ((TextView) errorView.findViewById(R.id.empty_title)).setText(R.string.network_error_title);
-
-                final TextView message = (TextView) errorView.findViewById(R.id.empty_message);
-                message.setText(R.string.network_error_message);
-                message.setTextColor(ContextCompat.getColor(view.getContext(), R.color.network_error_link));
-                message.setOnClickListener(new View.OnClickListener() {
-                    @Override
-                    public void onClick(View v) {
-                        startActivity(new Intent(Settings.ACTION_SETTINGS));
-                    }
-                });
-            }
-        }
-
-        @Override
-        public void onPageFinished(WebView view, String url) {
-            // Make sure the error view is hidden if the network error was fixed.
-            if (errorView != null) {
-                errorView.setVisibility(networkError ? View.VISIBLE : View.GONE);
-                webview.setVisibility(networkError ? View.GONE : View.VISIBLE);
-            }
-
-            if (!TextUtils.equals(url, Constants.ABOUT_BLANK) && resultsPageHost == null) {
-                try {
-                    resultsPageHost = new URL(url).getHost();
-                } catch (MalformedURLException e) {
-                    Log.e(LOG_TAG, "Error getting host from results page URL", e);
-                }
-            }
-        }
-    }
-
-    /**
-     * A custom WebChromeClient that allows us to inject CSS into
-     * the head of the HTML and to monitor pageload progress.
-     *
-     * We use the WebChromeClient because it provides a hook to the titleReceived
-     * event. Once the title is available, the page will have started parsing the
-     * head element. The script injects its CSS into the head element.
-     */
-    private class ChromeClient extends WebChromeClient {
-
-        @Override
-        public void onReceivedTitle(final WebView view, String title) {
-            view.loadUrl(engine.getInjectableJs());
-        }
-
-        @Override
-        public void onProgressChanged(WebView view, int newProgress) {
-            if (newProgress < 100) {
-                if (progressBar.getVisibility() == View.INVISIBLE) {
-                    progressBar.setVisibility(View.VISIBLE);
-                }
-                progressBar.setProgress(newProgress);
-            } else {
-                progressBar.setVisibility(View.INVISIBLE);
-            }
-        }
-    }
-}
deleted file mode 100644
--- a/mobile/android/search/java/org/mozilla/search/PreSearchFragment.java
+++ /dev/null
@@ -1,218 +0,0 @@
-/* This Source Code Form is subject to the terms of the Mozilla Public
- * License, v. 2.0. If a copy of the MPL was not distributed with this
- * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
-
-package org.mozilla.search;
-
-import android.content.Context;
-import android.database.Cursor;
-import android.graphics.Rect;
-import android.net.Uri;
-import android.os.AsyncTask;
-import android.os.Bundle;
-import android.support.v4.app.Fragment;
-import android.support.v4.app.LoaderManager;
-import android.support.v4.content.CursorLoader;
-import android.support.v4.content.Loader;
-import android.support.v4.widget.SimpleCursorAdapter;
-import android.text.TextUtils;
-import android.util.Log;
-import android.view.LayoutInflater;
-import android.view.View;
-import android.view.ViewGroup;
-import android.view.ViewStub;
-import android.widget.AdapterView;
-import android.widget.ImageView;
-import android.widget.ListView;
-import android.widget.TextView;
-
-import org.mozilla.gecko.GeckoApplication;
-import org.mozilla.gecko.R;
-import org.mozilla.gecko.Telemetry;
-import org.mozilla.gecko.TelemetryContract;
-import org.mozilla.gecko.db.BrowserContract;
-import org.mozilla.gecko.db.BrowserContract.SearchHistory;
-import org.mozilla.gecko.widget.SwipeDismissListViewTouchListener;
-import org.mozilla.gecko.widget.SwipeDismissListViewTouchListener.OnDismissCallback;
-import org.mozilla.search.AcceptsSearchQuery.SuggestionAnimation;
-
-/**
- * This fragment is responsible for managing the card stream.
- */
-public class PreSearchFragment extends Fragment {
-
-    private static final String LOG_TAG = "PreSearchFragment";
-
-    private AcceptsSearchQuery searchListener;
-    private SimpleCursorAdapter cursorAdapter;
-
-    private ListView listView;
-    private View emptyView;
-
-    private static final String[] PROJECTION = new String[]{ SearchHistory.QUERY, SearchHistory._ID };
-
-    // Limit search history query results to 10 items.
-    private static final int SEARCH_HISTORY_LIMIT = 10;
-
-    private static final Uri SEARCH_HISTORY_URI = SearchHistory.CONTENT_URI.buildUpon().
-            appendQueryParameter(BrowserContract.PARAM_LIMIT, String.valueOf(SEARCH_HISTORY_LIMIT)).build();
-
-    private static final int LOADER_ID_SEARCH_HISTORY = 1;
-
-    public PreSearchFragment() {
-        // Mandatory empty constructor for Android's Fragment.
-    }
-
-    @Override
-    public void onAttach(Context context) {
-        super.onAttach(context);
-
-        if (context instanceof AcceptsSearchQuery) {
-            searchListener = (AcceptsSearchQuery) context;
-        } else {
-            throw new ClassCastException(context.toString() + " must implement AcceptsSearchQuery.");
-        }
-    }
-
-    @Override
-    public void onDetach() {
-        super.onDetach();
-        searchListener = null;
-    }
-
-    @Override
-    public void onCreate(Bundle savedInstanceState) {
-        super.onCreate(savedInstanceState);
-        getLoaderManager().initLoader(LOADER_ID_SEARCH_HISTORY, null, new SearchHistoryLoaderCallbacks());
-        cursorAdapter = new SimpleCursorAdapter(getActivity(), R.layout.search_history_row, null,
-                PROJECTION, new int[]{R.id.site_name}, 0);
-    }
-
-    @Override
-    public void onDestroy() {
-        super.onDestroy();
-        getLoaderManager().destroyLoader(LOADER_ID_SEARCH_HISTORY);
-        cursorAdapter.swapCursor(null);
-        cursorAdapter = null;
-
-        GeckoApplication.watchReference(getActivity(), this);
-    }
-
-    @Override
-    public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedState) {
-        final View mainView = inflater.inflate(R.layout.search_fragment_pre_search, container, false);
-
-        // Initialize listview.
-        listView = (ListView) mainView.findViewById(R.id.list_view);
-        listView.setAdapter(cursorAdapter);
-        listView.setOnItemClickListener(new AdapterView.OnItemClickListener() {
-            @Override
-            public void onItemClick(AdapterView<?> parent, View view, int position, long id) {
-                final String query = getQueryAtPosition(position);
-                if (!TextUtils.isEmpty(query)) {
-                    final Rect startBounds = new Rect();
-                    view.getGlobalVisibleRect(startBounds);
-
-                    Telemetry.sendUIEvent(TelemetryContract.Event.SEARCH, TelemetryContract.Method.SUGGESTION, "history");
-
-                    searchListener.onSearch(query, new SuggestionAnimation() {
-                        @Override
-                        public Rect getStartBounds() {
-                            return startBounds;
-                        }
-                    });
-                }
-            }
-        });
-
-        // Create a ListView-specific touch listener. ListViews are given special treatment because
-        // by default they handle touches for their list items... i.e. they're in charge of drawing
-        // the pressed state (the list selector), handling list item clicks, etc.
-        final SwipeDismissListViewTouchListener touchListener = new SwipeDismissListViewTouchListener(listView, new OnDismissCallback() {
-            @Override
-            public void onDismiss(ListView listView, final int position) {
-                new AsyncTask<Void, Void, Void>() {
-                    @Override
-                    protected Void doInBackground(Void... params) {
-                        final String query = getQueryAtPosition(position);
-                        final int deleted = getActivity().getContentResolver().delete(
-                                SearchHistory.CONTENT_URI,
-                                SearchHistory.QUERY + " = ?",
-                                new String[] { query });
-
-                        if (deleted < 1) {
-                            Log.w(LOG_TAG, "Search query not deleted: " + query);
-                        }
-                        return null;
-                    }
-                }.execute();
-            }
-        });
-        listView.setOnTouchListener(touchListener);
-
-        // Setting this scroll listener is required to ensure that during ListView scrolling,
-        // we don't look for swipes.
-        listView.setOnScrollListener(touchListener.makeScrollListener());
-
-        // Setting this recycler listener is required to make sure animated views are reset.
-        listView.setRecyclerListener(touchListener.makeRecyclerListener());
-
-        return mainView;
-    }
-
-    private String getQueryAtPosition(int position) {
-        final Cursor c = cursorAdapter.getCursor();
-        if (c == null || !c.moveToPosition(position)) {
-            return null;
-        }
-        return c.getString(c.getColumnIndexOrThrow(SearchHistory.QUERY));
-    }
-
-    @Override
-    public void onDestroyView() {
-        super.onDestroyView();
-        listView.setAdapter(null);
-        listView = null;
-        emptyView = null;
-    }
-
-    private void updateUiFromCursor(Cursor c) {
-        if (c != null && c.getCount() > 0) {
-            return;
-        }
-
-        if (emptyView == null) {
-            final ViewStub emptyViewStub = (ViewStub) getView().findViewById(R.id.empty_view_stub);
-            emptyView = emptyViewStub.inflate();
-
-            ((ImageView) emptyView.findViewById(R.id.empty_image)).setImageResource(R.drawable.icon_search_empty_firefox);
-            ((TextView) emptyView.findViewById(R.id.empty_title)).setText(R.string.search_empty_title);
-            ((TextView) emptyView.findViewById(R.id.empty_message)).setText(R.string.search_empty_message);
-
-            listView.setEmptyView(emptyView);
-        }
-    }
-
-    private class SearchHistoryLoaderCallbacks implements LoaderManager.LoaderCallbacks<Cursor> {
-        @Override
-        public Loader<Cursor> onCreateLoader(int id, Bundle args) {
-            return new CursorLoader(getActivity(), SEARCH_HISTORY_URI, PROJECTION, null, null,
-                    SearchHistory.DATE_LAST_VISITED + " DESC");
-        }
-
-        @Override
-        public void onLoadFinished(Loader<Cursor> loader, Cursor c) {
-            if (cursorAdapter != null) {
-                cursorAdapter.swapCursor(c);
-            }
-            updateUiFromCursor(c);
-        }
-
-        @Override
-        public void onLoaderReset(Loader<Cursor> loader) {
-            if (cursorAdapter != null) {
-                cursorAdapter.swapCursor(null);
-            }
-        }
-    }
-}
deleted file mode 100644
--- a/mobile/android/search/java/org/mozilla/search/SearchActivity.java
+++ /dev/null
@@ -1,434 +0,0 @@
-/* This Source Code Form is subject to the terms of the Mozilla Public
- * License, v. 2.0. If a copy of the MPL was not distributed with this
- * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
-
-package org.mozilla.search;
-
-import android.support.annotation.NonNull;
-import org.mozilla.gecko.GeckoAppShell;
-import org.mozilla.gecko.Locales;
-import org.mozilla.gecko.R;
-import org.mozilla.gecko.Telemetry;
-import org.mozilla.gecko.TelemetryContract;
-import org.mozilla.gecko.db.BrowserContract.SearchHistory;
-import org.mozilla.gecko.distribution.Distribution;
-import org.mozilla.gecko.search.SearchEngine;
-import org.mozilla.gecko.search.SearchEngineManager;
-import org.mozilla.gecko.search.SearchEngineManager.SearchEngineCallback;
-import org.mozilla.search.autocomplete.SearchBar;
-import org.mozilla.search.autocomplete.SuggestionsFragment;
-
-import android.content.AsyncQueryHandler;
-import android.content.ContentResolver;
-import android.content.ContentValues;
-import android.content.Intent;
-import android.graphics.Rect;
-import android.os.Bundle;
-import android.text.TextUtils;
-import android.util.Log;
-import android.view.View;
-import android.view.animation.AccelerateDecelerateInterpolator;
-import android.view.animation.Interpolator;
-
-import android.animation.Animator;
-import android.animation.AnimatorSet;
-import android.animation.ObjectAnimator;
-
-/**
- * The main entrance for the Android search intent.
- * <p/>
- * State management is delegated to child fragments. Fragments communicate
- * with each other by passing messages through this activity.
- */
-public class SearchActivity extends Locales.LocaleAwareFragmentActivity
-        implements AcceptsSearchQuery, SearchEngineCallback {
-
-    private static final String LOGTAG = "GeckoSearchActivity";
-
-    private static final String KEY_SEARCH_STATE = "search_state";
-    private static final String KEY_EDIT_STATE = "edit_state";
-    private static final String KEY_QUERY = "query";
-
-    static enum SearchState {
-        PRESEARCH,
-        POSTSEARCH
-    }
-
-    static enum EditState {
-        WAITING,
-        EDITING
-    }
-
-    // Default states when activity is created.
-    private SearchState searchState = SearchState.PRESEARCH;
-    private EditState editState = EditState.WAITING;
-
-    @NonNull
-    private SearchEngineManager searchEngineManager; // Contains reference to Context - DO NOT LEAK!
-
-    // Only accessed on the main thread.
-    private SearchEngine engine;
-
-    private SuggestionsFragment suggestionsFragment;
-    private PostSearchFragment postSearchFragment;
-
-    private AsyncQueryHandler queryHandler;
-
-    // Main views in layout.
-    private SearchBar searchBar;
-    private View preSearch;
-    private View postSearch;
-
-    private View settingsButton;
-
-    private View suggestions;
-
-    private static final int SUGGESTION_TRANSITION_DURATION = 300;
-    private static final Interpolator SUGGESTION_TRANSITION_INTERPOLATOR =
-            new AccelerateDecelerateInterpolator();
-
-    // View used for suggestion animation.
-    private View animationCard;
-
-    // Suggestion card background padding.
-    private int cardPaddingX;
-    private int cardPaddingY;
-
-    /**
-     * An empty implementation of AsyncQueryHandler to avoid the "HandlerLeak" warning from Android
-     * Lint. See also {@see org.mozilla.gecko.util.WeakReferenceHandler}.
-     */
-    private static class AsyncQueryHandlerImpl extends AsyncQueryHandler {
-        public AsyncQueryHandlerImpl(final ContentResolver that) {
-            super(that);
-        }
-    }
-
-    @Override
-    protected void onCreate(Bundle savedInstanceState) {
-        super.onCreate(savedInstanceState);
-        setContentView(R.layout.search_activity_main);
-
-        suggestionsFragment = (SuggestionsFragment) getSupportFragmentManager().findFragmentById(R.id.suggestions);
-        postSearchFragment = (PostSearchFragment)  getSupportFragmentManager().findFragmentById(R.id.postsearch);
-
-        searchEngineManager = new SearchEngineManager(this, Distribution.init(getApplicationContext()));
-        searchEngineManager.setChangeCallback(this);
-
-        // Initialize the fragments with the selected search engine.
-        searchEngineManager.getEngine(this);
-
-        queryHandler = new AsyncQueryHandlerImpl(getContentResolver());
-
-        searchBar = (SearchBar) findViewById(R.id.search_bar);
-        searchBar.setOnClickListener(new View.OnClickListener() {
-            @Override
-            public void onClick(View v) {
-                setEditState(EditState.EDITING);
-            }
-        });
-
-        searchBar.setTextListener(new SearchBar.TextListener() {
-            @Override
-            public void onChange(String text) {
-                // Only load suggestions if we're in edit mode.
-                if (editState == EditState.EDITING) {
-                    suggestionsFragment.loadSuggestions(text);
-                }
-            }
-
-            @Override
-            public void onSubmit(String text) {
-                // Don't submit an empty query.
-                final String trimmedQuery = text.trim();
-                if (!TextUtils.isEmpty(trimmedQuery)) {
-                    onSearch(trimmedQuery);
-                }
-            }
-
-            @Override
-            public void onFocusChange(boolean hasFocus) {
-                setEditState(hasFocus ? EditState.EDITING : EditState.WAITING);
-            }
-        });
-
-        preSearch = findViewById(R.id.presearch);
-        postSearch = findViewById(R.id.postsearch);
-
-        settingsButton = findViewById(R.id.settings_button);
-
-        // Apply click handler to settings button.
-        settingsButton.setOnClickListener(new View.OnClickListener() {
-            @Override
-            public void onClick(View v) {
-                startActivity(new Intent(SearchActivity.this, SearchPreferenceActivity.class));
-            }
-        });
-
-        suggestions = findViewById(R.id.suggestions);
-
-        animationCard = findViewById(R.id.animation_card);
-
-        cardPaddingX = getResources().getDimensionPixelSize(R.dimen.search_row_padding);
-        cardPaddingY = getResources().getDimensionPixelSize(R.dimen.search_row_padding);
-
-        if (savedInstanceState != null) {
-            setSearchState(SearchState.valueOf(savedInstanceState.getString(KEY_SEARCH_STATE)));
-            setEditState(EditState.valueOf(savedInstanceState.getString(KEY_EDIT_STATE)));
-
-            final String query = savedInstanceState.getString(KEY_QUERY);
-            searchBar.setText(query);
-
-            // If we're in the postsearch state, we need to re-do the query.
-            if (searchState == SearchState.POSTSEARCH) {
-                startSearch(query);
-            }
-        } else {
-            // If there isn't a state to restore, the activity will start in the presearch state,
-            // and we should enter editing mode to bring up the keyboard.
-            setEditState(EditState.EDITING);
-        }
-    }
-
-    @Override
-    protected void onDestroy() {
-        super.onDestroy();
-        searchEngineManager.unregisterListeners();
-        engine = null;
-        suggestionsFragment = null;
-        postSearchFragment = null;
-        queryHandler = null;
-        searchBar = null;
-        preSearch = null;
-        postSearch = null;
-        settingsButton = null;
-        suggestions = null;
-        animationCard = null;
-    }
-
-    @Override
-    protected void onStart() {
-        super.onStart();
-        Telemetry.startUISession(TelemetryContract.Session.SEARCH_ACTIVITY);
-    }
-
-    @Override
-    protected void onStop() {
-        super.onStop();
-        Telemetry.stopUISession(TelemetryContract.Session.SEARCH_ACTIVITY);
-    }
-
-    @Override
-    public void onNewIntent(Intent intent) {
-        // Reset the activity in the presearch state if it was launched from a new intent.
-        setSearchState(SearchState.PRESEARCH);
-
-        // Enter editing mode and reset the query. We must reset the query after entering
-        // edit mode in order for the suggestions to update.
-        setEditState(EditState.EDITING);
-        searchBar.setText("");
-    }
-
-    @Override
-    public void onSaveInstanceState(Bundle outState) {
-        super.onSaveInstanceState(outState);
-
-        outState.putString(KEY_SEARCH_STATE, searchState.toString());
-        outState.putString(KEY_EDIT_STATE, editState.toString());
-        outState.putString(KEY_QUERY, searchBar.getText());
-    }
-
-    @Override
-    public void onSuggest(String query) {
-        searchBar.setText(query);
-    }
-
-    @Override
-    public void onSearch(String query) {
-        onSearch(query, null);
-    }
-
-    @Override
-    public void onSearch(String query, SuggestionAnimation suggestionAnimation) {
-        storeQuery(query);
-
-        try {
-            //BrowserHealthRecorder.recordSearchDelayed("activity", engine.getIdentifier());
-        } catch (Exception e) {
-            // This should never happen: it'll only throw if the
-            // search location is wrong. But let's not tempt fate.
-            Log.w(LOGTAG, "Unable to record search.");
-        }
-
-        startSearch(query);
-
-        if (suggestionAnimation != null) {
-            searchBar.setText(query);
-            // Animate the suggestion card if start bounds are specified.
-            animateSuggestion(suggestionAnimation);
-        } else {
-            // Otherwise immediately switch to the results view.
-            setEditState(EditState.WAITING);
-            setSearchState(SearchState.POSTSEARCH);
-        }
-    }
-
-    @Override
-    public void onQueryChange(String query) {
-        searchBar.setText(query);
-    }
-
-    private void startSearch(final String query) {
-        if (engine != null) {
-            postSearchFragment.startSearch(engine, query);
-            return;
-        }
-
-        // engine will only be null if startSearch is called before the getEngine
-        // call in onCreate is completed.
-        searchEngineManager.getEngine(new SearchEngineCallback() {
-            @Override
-            public void execute(SearchEngine engine) {
-                // TODO: If engine is null, we should show an error message.
-                if (engine != null) {
-                    postSearchFragment.startSearch(engine, query);
-                }
-            }
-        });
-    }
-
-    /**
-     * This method is called when we fetch the current engine in onCreate,
-     * as well as whenever the current engine changes. This method will only
-     * ever be called on the main thread.
-     *
-     * @param engine The current search engine.
-     */
-    @Override
-    public void execute(SearchEngine engine) {
-        // TODO: If engine is null, we should show an error message.
-        if (engine == null) {
-            return;
-        }
-        this.engine = engine;
-        suggestionsFragment.setEngine(engine);
-        searchBar.setEngine(engine);
-    }
-
-    /**
-     * Animates search suggestion item to fill the results view area.
-     *
-     * @param suggestionAnimation
-     */
-    private void animateSuggestion(final SuggestionAnimation suggestionAnimation) {
-        final Rect startBounds = suggestionAnimation.getStartBounds();
-        final Rect endBounds = new Rect();
-        animationCard.getGlobalVisibleRect(endBounds, null);
-
-        // Vertically translate the animated card to align with the start bounds.
-        final float cardStartY = startBounds.centerY() - endBounds.centerY();
-
-        // Account for card background padding when calculating start scale.
-        final float startScaleX = (float) (startBounds.width() - cardPaddingX * 2) / endBounds.width();
-        final float startScaleY = (float) (startBounds.height() - cardPaddingY * 2) / endBounds.height();
-
-        animationCard.setVisibility(View.VISIBLE);
-
-        final AnimatorSet set = new AnimatorSet();
-        set.playTogether(
-                ObjectAnimator.ofFloat(animationCard, "translationY", cardStartY, 0),
-                ObjectAnimator.ofFloat(animationCard, "alpha", 0.5f, 1),
-                ObjectAnimator.ofFloat(animationCard, "scaleX", startScaleX, 1f),
-                ObjectAnimator.ofFloat(animationCard, "scaleY", startScaleY, 1f)
-        );
-
-        set.addListener(new Animator.AnimatorListener() {
-            @Override
-            public void onAnimationStart(Animator animation) {
-            }
-
-            @Override
-            public void onAnimationEnd(Animator animation) {
-                // Don't do anything if the activity is destroyed before the animation ends.
-                if (searchEngineManager == null) {
-                    return;
-                }
-
-                setEditState(EditState.WAITING);
-                setSearchState(SearchState.POSTSEARCH);
-
-                // We need to manually clear the animation for the views to be hidden on gingerbread.
-                animationCard.clearAnimation();
-                animationCard.setVisibility(View.INVISIBLE);
-            }
-
-            @Override
-            public void onAnimationCancel(Animator animation) {
-            }
-
-            @Override
-            public void onAnimationRepeat(Animator animation) {
-            }
-        });
-
-        set.setDuration(SUGGESTION_TRANSITION_DURATION);
-        set.setInterpolator(SUGGESTION_TRANSITION_INTERPOLATOR);
-
-        set.start();
-    }
-
-    private void setEditState(EditState editState) {
-        if (this.editState == editState) {
-            return;
-        }
-        this.editState = editState;
-
-        updateSettingsButtonVisibility();
-
-        searchBar.setActive(editState == EditState.EDITING);
-        suggestions.setVisibility(editState == EditState.EDITING ? View.VISIBLE : View.INVISIBLE);
-    }
-
-    private void setSearchState(SearchState searchState) {
-        if (this.searchState == searchState) {
-            return;
-        }
-        this.searchState = searchState;
-
-        updateSettingsButtonVisibility();
-
-        preSearch.setVisibility(searchState == SearchState.PRESEARCH ? View.VISIBLE : View.INVISIBLE);
-        postSearch.setVisibility(searchState == SearchState.POSTSEARCH ? View.VISIBLE : View.INVISIBLE);
-    }
-
-    private void updateSettingsButtonVisibility() {
-        // Show button on launch screen when keyboard is down.
-        if (searchState == SearchState.PRESEARCH && editState == EditState.WAITING) {
-            settingsButton.setVisibility(View.VISIBLE);
-        } else {
-            settingsButton.setVisibility(View.INVISIBLE);
-        }
-    }
-
-    @Override
-    public void onBackPressed() {
-        if (editState == EditState.EDITING) {
-            setEditState(EditState.WAITING);
-        } else if (searchState == SearchState.POSTSEARCH) {
-            setSearchState(SearchState.PRESEARCH);
-        } else {
-            super.onBackPressed();
-        }
-    }
-
-    /**
-     * Store the search query in Fennec's search history database.
-     */
-    private void storeQuery(String query) {
-        final ContentValues cv = new ContentValues();
-        cv.put(SearchHistory.QUERY, query);
-        // Setting 0 for the token, since we only have one type of insert.
-        // Setting null for the cookie, since we don't handle the result of the insert.
-        queryHandler.startInsert(0, null, SearchHistory.CONTENT_URI, cv);
-    }
-}
deleted file mode 100644
--- a/mobile/android/search/java/org/mozilla/search/SearchPreferenceActivity.java
+++ /dev/null
@@ -1,115 +0,0 @@
-/* This Source Code Form is subject to the terms of the Mozilla Public
- * License, v. 2.0. If a copy of the MPL was not distributed with this
- * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
-
-package org.mozilla.search;
-
-import org.mozilla.gecko.GeckoSharedPrefs;
-import org.mozilla.gecko.Locales;
-import org.mozilla.gecko.R;
-import org.mozilla.gecko.Telemetry;
-import org.mozilla.gecko.TelemetryContract;
-import org.mozilla.gecko.db.BrowserContract;
-
-import android.app.AlertDialog;
-import android.content.DialogInterface;
-import android.os.AsyncTask;
-import android.os.Bundle;
-import android.preference.Preference;
-import android.preference.PreferenceActivity;
-import android.util.Log;
-import android.view.MenuItem;
-import android.widget.Toast;
-
-/**
- * This activity allows users to modify the settings for the search activity.
- *
- * A note on implementation: At the moment, we don't have tablet-specific designs.
- * Therefore, this implementation uses the old-style PreferenceActivity. When
- * we start optimizing for tablets, we can migrate to Fennec's PreferenceFragment
- * implementation.
- *
- * TODO: Change this to PreferenceFragment when we stop supporting devices older than SDK 11.
- */
-public class SearchPreferenceActivity extends PreferenceActivity {
-
-    private static final String LOG_TAG = "SearchPreferenceActivity";
-
-    public static final String PREF_CLEAR_HISTORY_KEY = "search.not_a_preference.clear_history";
-
-    @Override
-    @SuppressWarnings("deprecation")
-    protected void onCreate(Bundle savedInstanceState) {
-        Locales.initializeLocale(getApplicationContext());
-        super.onCreate(savedInstanceState);
-
-        getPreferenceManager().setSharedPreferencesName(GeckoSharedPrefs.APP_PREFS_NAME);
-
-        if (getActionBar() != null) {
-            getActionBar().setDisplayHomeAsUpEnabled(true);
-        }
-    }
-
-    @Override
-    protected void onPostCreate(Bundle savedInstanceState) {
-        super.onPostCreate(savedInstanceState);
-        setupPrefsScreen();
-    }
-
-    @SuppressWarnings("deprecation")
-    private void setupPrefsScreen() {
-        addPreferencesFromResource(R.xml.search_preferences);
-
-        // Attach click listener to clear history button.
-        final Preference clearHistoryButton = findPreference(PREF_CLEAR_HISTORY_KEY);
-        clearHistoryButton.setOnPreferenceClickListener(new Preference.OnPreferenceClickListener() {
-            @Override
-            public boolean onPreferenceClick(Preference preference) {
-                final AlertDialog.Builder dialogBuilder = new AlertDialog.Builder(SearchPreferenceActivity.this);
-                dialogBuilder.setNegativeButton(android.R.string.cancel, null);
-                dialogBuilder.setPositiveButton(android.R.string.ok, new DialogInterface.OnClickListener() {
-                    @Override
-                    public void onClick(DialogInterface dialog, int which) {
-                        Telemetry.sendUIEvent(TelemetryContract.Event.SANITIZE, TelemetryContract.Method.MENU, "search-history");
-                        clearHistory();
-                    }
-                });
-                dialogBuilder.setMessage(R.string.pref_clearHistory_dialogMessage);
-                dialogBuilder.show();
-                return false;
-            }
-        });
-    }
-
-    private void clearHistory() {
-        final AsyncTask<Void, Void, Boolean> clearHistoryTask = new AsyncTask<Void, Void, Boolean>() {
-            @Override
-            protected Boolean doInBackground(Void... params) {
-                final int numDeleted = getContentResolver().delete(
-                        BrowserContract.SearchHistory.CONTENT_URI, null, null);
-                return numDeleted >= 0;
-            }
-
-            @Override
-            protected void onPostExecute(Boolean success) {
-                if (success) {
-                    getContentResolver().notifyChange(BrowserContract.SearchHistory.CONTENT_URI, null);
-                    Toast.makeText(SearchPreferenceActivity.this, SearchPreferenceActivity.this.getResources()
-                            .getString(R.string.pref_clearHistory_confirmation), Toast.LENGTH_SHORT).show();
-                } else {
-                    Log.e(LOG_TAG, "Error clearing search history.");
-                }
-            }
-        };
-        clearHistoryTask.execute();
-    }
-
-    @Override
-    public boolean onOptionsItemSelected(MenuItem item) {
-        if (item.getItemId() == android.R.id.home) {
-            finish();
-            return true;
-        }
-        return false;
-    }
-}
deleted file mode 100644
--- a/mobile/android/search/java/org/mozilla/search/SearchWidget.java
+++ /dev/null
@@ -1,140 +0,0 @@
-/* -*- Mode: Java; c-basic-offset: 4; tab-width: 4; indent-tabs-mode: nil; -*-
- * This Source Code Form is subject to the terms of the Mozilla Public
- * License, v. 2.0. If a copy of the MPL was not distributed with this
- * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
-
-package org.mozilla.search;
-
-import org.mozilla.gecko.AboutPages;
-import org.mozilla.gecko.AppConstants;
-import org.mozilla.gecko.R;
-import org.mozilla.gecko.Telemetry;
-import org.mozilla.gecko.TelemetryContract;
-
-import android.annotation.TargetApi;
-import android.app.PendingIntent;
-import android.appwidget.AppWidgetManager;
-import android.appwidget.AppWidgetProvider;
-import android.appwidget.AppWidgetProviderInfo;
-import android.content.Context;
-import android.content.Intent;
-import android.net.Uri;
-import android.os.Bundle;
-import android.widget.RemoteViews;
-
-/* Provides a really simple widget with two buttons, one to launch Fennec
- * and one to launch the search activity. All intents are actually sent back
- * here and then forwarded on to start the real activity. */
-public class SearchWidget extends AppWidgetProvider {
-    final private static String LOGTAG = "GeckoSearchWidget";
-
-    final public static String ACTION_LAUNCH_BROWSER = "org.mozilla.widget.LAUNCH_BROWSER";
-    final public static String ACTION_LAUNCH_SEARCH = "org.mozilla.widget.LAUNCH_SEARCH";
-    final public static String ACTION_LAUNCH_NEW_TAB = "org.mozilla.widget.LAUNCH_NEW_TAB";
-
-    @TargetApi(16)
-    @Override
-    public void onUpdate(final Context context, final AppWidgetManager manager, final int[] ids) {
-        for (int id : ids) {
-            final Bundle bundle;
-            if (AppConstants.Versions.feature16Plus) {
-                bundle = manager.getAppWidgetOptions(id);
-            } else {
-                bundle = null;
-            }
-            addView(manager, context, id, bundle);
-        }
-
-        super.onUpdate(context, manager, ids);
-    }
-
-    @TargetApi(16)
-    @Override
-    public void onAppWidgetOptionsChanged(final Context context,
-                                          final AppWidgetManager manager,
-                                          final int id,
-                                          final Bundle options) {
-        addView(manager, context, id, options);
-        if (AppConstants.Versions.feature16Plus) {
-            super.onAppWidgetOptionsChanged(context, manager, id, options);
-        }
-    }
-
-    @Override
-    public void onReceive(final Context context, final Intent intent) {
-        // This will hold the intent to redispatch.
-        final Intent redirect;
-        final String action = intent.getAction();
-        if (action == null) {
-          super.onReceive(context, intent);
-          return;
-        }
-        switch (action) {
-            case ACTION_LAUNCH_BROWSER:
-                redirect = buildRedirectIntent(Intent.ACTION_MAIN,
-                                               context.getPackageName(),
-                                               AppConstants.MOZ_ANDROID_BROWSER_INTENT_CLASS,
-                                               intent);
-                Telemetry.sendUIEvent(TelemetryContract.Event.LAUNCH,
-                                      TelemetryContract.Method.WIDGET, "browser");
-                break;
-            case ACTION_LAUNCH_NEW_TAB:
-                redirect = buildRedirectIntent(Intent.ACTION_VIEW,
-                                               context.getPackageName(),
-                                               AppConstants.MOZ_ANDROID_BROWSER_INTENT_CLASS,
-                                               intent);
-                Telemetry.sendUIEvent(TelemetryContract.Event.LAUNCH,
-                                      TelemetryContract.Method.WIDGET, "new-tab");
-                break;
-            case ACTION_LAUNCH_SEARCH:
-                redirect = buildRedirectIntent(Intent.ACTION_VIEW,
-                                               context.getPackageName(),
-                                               AppConstants.MOZ_ANDROID_SEARCH_INTENT_CLASS,
-                                               intent);
-                Telemetry.sendUIEvent(TelemetryContract.Event.LAUNCH,
-                                      TelemetryContract.Method.WIDGET, "search");
-                break;
-            default:
-                redirect = null;
-        }
-
-        if (redirect != null) {
-            context.startActivity(redirect);
-        }
-
-        super.onReceive(context, intent);
-    }
-
-    // Utility to create the view for this widget and attach any event listeners to it
-    private void addView(final AppWidgetManager manager, final Context context, final int id, final Bundle options) {
-        final RemoteViews views = new RemoteViews(context.getPackageName(), R.layout.search_widget);
-
-        addClickIntent(context, views, R.id.search_button, ACTION_LAUNCH_SEARCH);
-        addClickIntent(context, views, R.id.new_tab_button, ACTION_LAUNCH_NEW_TAB);
-        // Clicking the logo also launches the browser
-        addClickIntent(context, views, R.id.logo_button, ACTION_LAUNCH_BROWSER);
-
-        manager.updateAppWidget(id, views);
-    }
-
-    // Utility for adding a pending intent to be fired when a View is clicked.
-    private void addClickIntent(final Context context, final RemoteViews views, final int viewId, final String action) {
-        final Intent intent = new Intent(context, SearchWidget.class);
-        intent.setAction(action);
-        intent.setData(Uri.parse(AboutPages.HOME));
-        final PendingIntent pendingIntent = PendingIntent.getBroadcast(context, 0, intent, 0);
-        views.setOnClickPendingIntent(viewId, pendingIntent);
-    }
-
-    // Utility for building an intent to be redispatched (i.e. to launch the browser or the search intent).
-    private Intent buildRedirectIntent(final String action, final String pkg, final String className, final Intent source) {
-        final Intent activity = new Intent(action);
-        if (pkg != null && className != null) {
-            activity.setClassName(pkg, className);
-        }
-        activity.setData(source.getData());
-        activity.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
-        return activity;
-    }
-
-}
deleted file mode 100644
--- a/mobile/android/search/java/org/mozilla/search/autocomplete/AutoCompleteAdapter.java
+++ /dev/null
@@ -1,82 +0,0 @@
-/* This Source Code Form is subject to the terms of the Mozilla Public
- * License, v. 2.0. If a copy of the MPL was not distributed with this
- * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
-
-package org.mozilla.search.autocomplete;
-
-import java.util.List;
-
-import org.mozilla.gecko.R;
-import org.mozilla.search.AcceptsSearchQuery;
-import org.mozilla.search.autocomplete.SuggestionsFragment.Suggestion;
-
-import android.content.Context;
-import android.view.LayoutInflater;
-import android.view.View;
-import android.view.ViewGroup;
-import android.widget.ArrayAdapter;
-import android.widget.TextView;
-
-/**
- * The adapter that is used to populate the autocomplete rows.
- */
-class AutoCompleteAdapter extends ArrayAdapter<Suggestion> {
-
-    private final AcceptsSearchQuery searchListener;
-
-    private final LayoutInflater inflater;
-
-    public AutoCompleteAdapter(Context context) {
-        // Uses '0' for the template id since we are overriding getView
-        // and supplying our own view.
-        super(context, 0);
-
-        if (context instanceof AcceptsSearchQuery) {
-            searchListener = (AcceptsSearchQuery) context;
-        } else {
-            throw new ClassCastException(context.toString() + " must implement AcceptsSearchQuery.");
-        }
-
-        // Disable notifying on change. We will notify ourselves in update.
-        setNotifyOnChange(false);
-
-        inflater = LayoutInflater.from(context);
-    }
-
-    @Override
-    public View getView(int position, View convertView, ViewGroup parent) {
-        if (convertView == null) {
-            convertView = inflater.inflate(R.layout.search_suggestions_row, null);
-        }
-
-        final Suggestion suggestion = getItem(position);
-
-        final TextView textView = (TextView) convertView.findViewById(R.id.auto_complete_row_text);
-        textView.setText(suggestion.display);
-
-        final View jumpButton = convertView.findViewById(R.id.auto_complete_row_jump_button);
-        jumpButton.setOnClickListener(new View.OnClickListener() {
-            @Override
-            public void onClick(View v) {
-                searchListener.onSuggest(suggestion.value);
-            }
-        });
-
-        return convertView;
-    }
-
-    /**
-     * Updates adapter content with new list of search suggestions.
-     *
-     * @param suggestions List of search suggestions.
-     */
-    public void update(List<Suggestion> suggestions) {
-        clear();
-        if (suggestions != null) {
-            for (Suggestion s : suggestions) {
-                add(s);
-            }
-        }
-        notifyDataSetChanged();
-    }
-}
deleted file mode 100644
--- a/mobile/android/search/java/org/mozilla/search/autocomplete/SearchBar.java
+++ /dev/null
@@ -1,202 +0,0 @@
-/* This Source Code Form is subject to the terms of the Mozilla Public
- * License, v. 2.0. If a copy of the MPL was not distributed with this
- * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
-
-package org.mozilla.search.autocomplete;
-
-import org.mozilla.gecko.R;
-import org.mozilla.gecko.Telemetry;
-import org.mozilla.gecko.TelemetryContract;
-import org.mozilla.gecko.gfx.BitmapUtils;
-import org.mozilla.gecko.search.SearchEngine;
-
-import android.content.Context;
-import android.graphics.Bitmap;
-import android.graphics.Color;
-import android.graphics.PorterDuff;
-import android.graphics.PorterDuffColorFilter;
-import android.graphics.drawable.BitmapDrawable;
-import android.graphics.drawable.Drawable;
-import android.support.v4.widget.TextViewCompat;
-import android.text.Editable;
-import android.text.TextWatcher;
-import android.util.AttributeSet;
-import android.view.KeyEvent;
-import android.view.LayoutInflater;
-import android.view.MotionEvent;
-import android.view.View;
-import android.view.inputmethod.EditorInfo;
-import android.view.inputmethod.InputMethodManager;
-import android.widget.EditText;
-import android.widget.FrameLayout;
-import android.widget.ImageButton;
-import android.widget.ImageView;
-import android.widget.TextView;
-
-public class SearchBar extends FrameLayout {
-
-    private final EditText editText;
-    private final ImageButton clearButton;
-    private final ImageView engineIcon;
-
-    private final Drawable focusedBackground;
-    private final Drawable defaultBackground;
-
-    private final InputMethodManager inputMethodManager;
-
-    private TextListener listener;
-
-    private boolean active;
-
-    public interface TextListener {
-        public void onChange(String text);
-        public void onSubmit(String text);
-        public void onFocusChange(boolean hasFocus);
-    }
-
-    // Deprecation warnings suppressed to allow building with API level 22
-    @SuppressWarnings("deprecation")
-    public SearchBar(Context context, AttributeSet attrs) {
-        super(context, attrs);
-
-        LayoutInflater.from(context).inflate(R.layout.search_bar, this);
-
-        editText = (EditText) findViewById(R.id.edit_text);
-        editText.addTextChangedListener(new TextWatcher() {
-            @Override
-            public void beforeTextChanged(CharSequence s, int start, int count, int after) {
-            }
-
-            @Override
-            public void onTextChanged(CharSequence s, int start, int before, int count) {
-            }
-
-            @Override
-            public void afterTextChanged(Editable s) {
-                if (listener != null) {
-                    listener.onChange(s.toString());
-                }
-
-                updateClearButtonVisibility();
-            }
-        });
-
-        // Attach a listener for the "search" key on the keyboard.
-        editText.setOnEditorActionListener(new TextView.OnEditorActionListener() {
-            @Override
-            public boolean onEditorAction(TextView v, int actionId, KeyEvent event) {
-                if (listener != null &&
-                    (actionId == EditorInfo.IME_ACTION_UNSPECIFIED || actionId == EditorInfo.IME_ACTION_SEARCH)) {
-                    // The user searched without using search engine suggestions.
-                    Telemetry.sendUIEvent(TelemetryContract.Event.SEARCH, TelemetryContract.Method.ACTIONBAR, "text");
-                    listener.onSubmit(v.getText().toString());
-                    return true;
-                }
-                return false;
-            }
-        });
-
-        editText.setOnFocusChangeListener(new View.OnFocusChangeListener() {
-            @Override
-            public void onFocusChange(View v, boolean hasFocus) {
-                if (listener != null) {
-                    listener.onFocusChange(hasFocus);
-                }
-            }
-        });
-
-        clearButton = (ImageButton) findViewById(R.id.clear_button);
-        clearButton.setOnClickListener(new View.OnClickListener() {
-            @Override
-            public void onClick(View v) {
-                editText.setText("");
-            }
-        });
-        engineIcon = (ImageView) findViewById(R.id.engine_icon);
-
-        focusedBackground = getResources().getDrawable(R.drawable.edit_text_focused);
-        defaultBackground = getResources().getDrawable(R.drawable.edit_text_default);
-
-        inputMethodManager = (InputMethodManager) context.getSystemService(Context.INPUT_METHOD_SERVICE);
-    }
-
-    public void setText(String text) {
-        editText.setText(text);
-
-        // Move cursor to end of search input.
-        editText.setSelection(text.length());
-    }
-
-    public String getText() {
-        return editText.getText().toString();
-    }
-
-    public void setEngine(SearchEngine engine) {
-        final String iconURL = engine.getIconURL();
-        final Bitmap bitmap = BitmapUtils.getBitmapFromDataURI(iconURL);
-        final BitmapDrawable d = new BitmapDrawable(getResources(), bitmap);
-        engineIcon.setImageDrawable(d);
-        engineIcon.setContentDescription(engine.getName());
-
-        // Update the focused background color.
-        int color = BitmapUtils.getDominantColorCustomImplementation(bitmap);
-
-        // BitmapUtils#getDominantColorCustomImplementation ignores black and white pixels,
-        // but it will return white if no dominant color was found. We don't want to create
-        // a white underline for the search bar, so we default to black instead.
-        if (color == Color.WHITE) {
-            color = Color.BLACK;
-        }
-        focusedBackground.setColorFilter(new PorterDuffColorFilter(color, PorterDuff.Mode.MULTIPLY));
-
-        editText.setHint(getResources().getString(R.string.search_bar_hint, engine.getName()));
-    }
-
-    @SuppressWarnings("deprecation")
-    public void setActive(boolean active) {
-        if (this.active == active) {
-            return;
-        }
-        this.active = active;
-
-        updateClearButtonVisibility();
-
-        editText.setFocusable(active);
-        editText.setFocusableInTouchMode(active);
-
-        final int startDrawable = active ? R.drawable.search_icon_active : R.drawable.ic_search_icon;
-        TextViewCompat.setCompoundDrawablesRelativeWithIntrinsicBounds(editText, startDrawable, 0, 0, 0);
-
-        // We can't use a selector drawable because we apply a color filter to the focused
-        // background at run time.
-        // TODO: setBackgroundDrawable is deprecated in API level 16
-        editText.setBackgroundDrawable(active ? focusedBackground : defaultBackground);
-
-        if (active) {
-            editText.requestFocus();
-            inputMethodManager.showSoftInput(editText, InputMethodManager.SHOW_IMPLICIT);
-        } else {
-            editText.clearFocus();
-            inputMethodManager.hideSoftInputFromWindow(editText.getWindowToken(), 0);
-        }
-    }
-
-    private void updateClearButtonVisibility() {
-        // Only show the clear button when there is text in the input.
-        final boolean visible = active && (editText.getText().length() > 0);
-        clearButton.setVisibility(visible ? View.VISIBLE : View.GONE);
-        engineIcon.setVisibility(visible ? View.GONE : View.VISIBLE);
-    }
-
-    public void setTextListener(TextListener listener) {
-        this.listener = listener;
-    }
-
-    @Override
-    public boolean onInterceptTouchEvent(MotionEvent e) {
-        // When the view is active, pass touch events to child views.
-        // Otherwise, intercept touch events to allow click listeners on the view to
-        // fire no matter where the user clicks.
-        return !active;
-    }
-}
deleted file mode 100644
--- a/mobile/android/search/java/org/mozilla/search/autocomplete/SuggestionsFragment.java
+++ /dev/null
@@ -1,263 +0,0 @@
-/* This Source Code Form is subject to the terms of the Mozilla Public
- * License, v. 2.0. If a copy of the MPL was not distributed with this
- * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
-
-package org.mozilla.search.autocomplete;
-
-import java.util.ArrayList;
-import java.util.List;
-
-import android.support.v4.content.ContextCompat;
-import org.mozilla.gecko.R;
-import org.mozilla.gecko.search.SearchEngine;
-import org.mozilla.gecko.SuggestClient;
-import org.mozilla.gecko.Telemetry;
-import org.mozilla.gecko.TelemetryContract;
-import org.mozilla.search.AcceptsSearchQuery;
-import org.mozilla.search.AcceptsSearchQuery.SuggestionAnimation;
-
-import android.content.Context;
-import android.graphics.Rect;
-import android.os.Bundle;
-import android.support.v4.app.Fragment;
-import android.support.v4.app.LoaderManager;
-import android.support.v4.content.AsyncTaskLoader;
-import android.support.v4.content.Loader;
-import android.text.SpannableString;
-import android.text.style.ForegroundColorSpan;
-import android.util.Log;
-import android.view.LayoutInflater;
-import android.view.View;
-import android.view.ViewGroup;
-import android.widget.AdapterView;
-import android.widget.ListView;
-
-/**
- * A fragment to show search suggestions.
- */
-public class SuggestionsFragment extends Fragment {
-
-    private static final String LOG_TAG = "SuggestionsFragment";
-
-    private static final int LOADER_ID_SUGGESTION = 0;
-    private static final String KEY_SEARCH_TERM = "search_term";
-
-    // Timeout for the suggestion client to respond
-    private static final int SUGGESTION_TIMEOUT = 3000;
-
-    // Number of search suggestions to show.
-    private static final int SUGGESTION_MAX = 5;
-
-    public static final String GECKO_SEARCH_TERMS_URL_PARAM = "__searchTerms__";
-
-    private AcceptsSearchQuery searchListener;
-
-    // Suggest client gets setup outside of the normal fragment lifecycle, therefore
-    // clients should ensure that this isn't null before using it.
-    private SuggestClient suggestClient;
-    private SuggestionLoaderCallbacks suggestionLoaderCallbacks;
-
-    private AutoCompleteAdapter autoCompleteAdapter;
-
-    // Holds the list of search suggestions.
-    private ListView suggestionsList;
-
-    public SuggestionsFragment() {
-        // Required empty public constructor
-    }
-
-    @Override
-    public void onAttach(Context context) {
-        super.onAttach(context);
-
-        if (context instanceof AcceptsSearchQuery) {
-            searchListener = (AcceptsSearchQuery) context;
-        } else {
-            throw new ClassCastException(context.toString() + " must implement AcceptsSearchQuery.");
-        }
-
-        suggestionLoaderCallbacks = new SuggestionLoaderCallbacks();
-        autoCompleteAdapter = new AutoCompleteAdapter(context);
-    }
-
-    @Override
-    public void onDetach() {
-        super.onDetach();
-
-        searchListener = null;
-        suggestionLoaderCallbacks = null;
-        autoCompleteAdapter = null;
-        suggestClient = null;
-    }
-
-    @Override
-    public View onCreateView(LayoutInflater inflater, ViewGroup container,
-                             Bundle savedInstanceState) {
-        suggestionsList = (ListView) inflater.inflate(R.layout.search_sugestions, container, false);
-        suggestionsList.setAdapter(autoCompleteAdapter);
-
-        // Attach listener for tapping on a suggestion.
-        suggestionsList.setOnItemClickListener(new AdapterView.OnItemClickListener() {
-            @Override
-            public void onItemClick(AdapterView<?> parent, View view, int position, long id) {
-                final Suggestion suggestion = (Suggestion) suggestionsList.getItemAtPosition(position);
-
-                final Rect startBounds = new Rect();
-                view.getGlobalVisibleRect(startBounds);
-
-                // The user tapped on a suggestion from the search engine.
-                Telemetry.sendUIEvent(TelemetryContract.Event.SEARCH, TelemetryContract.Method.SUGGESTION, position);
-
-                searchListener.onSearch(suggestion.value, new SuggestionAnimation() {
-                    @Override
-                    public Rect getStartBounds() {
-                        return startBounds;
-                    }
-                });
-            }
-        });
-
-        return suggestionsList;
-    }
-
-    @Override
-    public void onDestroyView() {
-        super.onDestroyView();
-
-        if (null != suggestionsList) {
-            suggestionsList.setOnItemClickListener(null);
-            suggestionsList.setAdapter(null);
-            suggestionsList = null;
-        }
-    }
-
-    public void setEngine(SearchEngine engine) {
-        suggestClient = new SuggestClient(getActivity(), engine.getSuggestionTemplate(GECKO_SEARCH_TERMS_URL_PARAM),
-                                          SUGGESTION_TIMEOUT, SUGGESTION_MAX, true);
-    }
-
-    public void loadSuggestions(String query) {
-        final Bundle args = new Bundle();
-        args.putString(KEY_SEARCH_TERM, query);
-        final LoaderManager loaderManager = getLoaderManager();
-
-        // Ensure that we don't try to restart a loader that doesn't exist. This becomes
-        // an issue because SuggestionLoaderCallbacks.onCreateLoader can return null
-        // as a loader if we don't have a suggestClient available yet.
-        if (loaderManager.getLoader(LOADER_ID_SUGGESTION) == null) {
-            loaderManager.initLoader(LOADER_ID_SUGGESTION, args, suggestionLoaderCallbacks);
-        } else {
-            loaderManager.restartLoader(LOADER_ID_SUGGESTION, args, suggestionLoaderCallbacks);
-        }
-    }
-
-    public static class Suggestion {
-
-        public final String value;
-        public final SpannableString display;
-        public final ForegroundColorSpan colorSpan;
-
-        public Suggestion(String value, String searchTerm, int suggestionHighlightColor) {
-            this.value = value;
-
-            display = new SpannableString(value);
-
-            colorSpan = new ForegroundColorSpan(suggestionHighlightColor);
-
-            // Highlight mixed-case matches.
-            final int start = value.toLowerCase().indexOf(searchTerm.toLowerCase());
-            if (start >= 0) {
-                display.setSpan(colorSpan, start, start + searchTerm.length(), 0);
-            }
-        }
-    }
-
-    private class SuggestionLoaderCallbacks implements LoaderManager.LoaderCallbacks<List<Suggestion>> {
-        @Override
-        public Loader<List<Suggestion>> onCreateLoader(int id, Bundle args) {
-            // We drop the user's search if suggestclient isn't ready. This happens if the
-            // user is really fast and starts typing before we can read shared prefs.
-            if (suggestClient != null) {
-                return new SuggestionAsyncLoader(getActivity(), suggestClient, args.getString(KEY_SEARCH_TERM));
-            }
-            Log.e(LOG_TAG, "Autocomplete setup failed; suggestClient not ready yet.");
-            return null;
-        }
-
-        @Override
-        public void onLoadFinished(Loader<List<Suggestion>> loader, List<Suggestion> suggestions) {
-            // Only show the ListView if there are suggestions in it.
-            if (suggestions.size() > 0) {
-                autoCompleteAdapter.update(suggestions);
-                suggestionsList.setVisibility(View.VISIBLE);
-            } else {
-                suggestionsList.setVisibility(View.INVISIBLE);
-            }
-        }
-
-        @Override
-        public void onLoaderReset(Loader<List<Suggestion>> loader) { }
-    }
-
-    private static class SuggestionAsyncLoader extends AsyncTaskLoader<List<Suggestion>> {
-        private final SuggestClient suggestClient;
-        private final String searchTerm;
-        private List<Suggestion> suggestions;
-        private final int suggestionHighlightColor;
-
-        public SuggestionAsyncLoader(Context context, SuggestClient suggestClient, String searchTerm) {
-            super(context);
-            this.suggestClient = suggestClient;
-            this.searchTerm = searchTerm;
-            this.suggestions = null;
-
-            // Color of search term match in search suggestion
-            suggestionHighlightColor = ContextCompat.getColor(context, R.color.suggestion_highlight);
-        }
-
-        @Override
-        public List<Suggestion> loadInBackground() {
-            final List<String> values = suggestClient.query(searchTerm);
-
-            final List<Suggestion> result = new ArrayList<Suggestion>(values.size());
-            for (String value : values) {
-                result.add(new Suggestion(value, searchTerm, suggestionHighlightColor));
-            }
-
-            return result;
-        }
-
-        @Override
-        public void deliverResult(List<Suggestion> suggestions) {
-            this.suggestions = suggestions;
-
-            if (isStarted()) {
-                super.deliverResult(suggestions);
-            }
-        }
-
-        @Override
-        protected void onStartLoading() {
-            if (suggestions != null) {
-                deliverResult(suggestions);
-            }
-
-            if (takeContentChanged() || suggestions == null) {
-                forceLoad();
-            }
-        }
-
-        @Override
-        protected void onStopLoading() {
-            cancelLoad();
-        }
-
-        @Override
-        protected void onReset() {
-            super.onReset();
-
-            onStopLoading();
-            suggestions = null;
-        }
-    }
-}
deleted file mode 100644
--- a/mobile/android/search/java/org/mozilla/search/ui/BackCaptureEditText.java
+++ /dev/null
@@ -1,36 +0,0 @@
-/* This Source Code Form is subject to the terms of the Mozilla Public
- * License, v. 2.0. If a copy of the MPL was not distributed with this
- * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
-
-package org.mozilla.search.ui;
-
-import android.content.Context;
-import android.util.AttributeSet;
-import android.view.KeyEvent;
-import android.widget.EditText;
-
-/**
- * An EditText subclass that loses focus when the keyboard
- * is dismissed.
- */
-public class BackCaptureEditText extends EditText {
-    public BackCaptureEditText(Context context) {
-        super(context);
-    }
-
-    public BackCaptureEditText(Context context, AttributeSet attrs) {
-        super(context, attrs);
-    }
-
-    public BackCaptureEditText(Context context, AttributeSet attrs, int defStyle) {
-        super(context, attrs, defStyle);
-    }
-
-    @Override
-    public boolean onKeyPreIme(int keyCode, KeyEvent event) {
-        if (event.getAction() == KeyEvent.ACTION_UP && keyCode == KeyEvent.KEYCODE_BACK) {
-            clearFocus();
-        }
-        return super.onKeyPreIme(keyCode, event);
-    }
-}
deleted file mode 100644
--- a/mobile/android/search/java/org/mozilla/search/ui/FacetBar.java
+++ /dev/null
@@ -1,124 +0,0 @@
-/* This Source Code Form is subject to the terms of the Mozilla Public
- * License, v. 2.0. If a copy of the MPL was not distributed with this
- * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
-
-package org.mozilla.search.ui;
-
-import org.mozilla.gecko.R;
-
-import android.content.Context;
-import android.graphics.Canvas;
-import android.graphics.Color;
-import android.graphics.Paint;
-import android.util.AttributeSet;
-import android.widget.RadioButton;
-import android.widget.RadioGroup;
-
-public class FacetBar extends RadioGroup {
-
-    // Ensure facets have equal width and match the bar's height. Supplying these
-    // in styles.xml/FacetButtonStyle does not work. See:
-    //   http://stackoverflow.com/questions/24213193/android-ignores-layout-weight-parameter-from-styles-xml
-    private static final RadioGroup.LayoutParams FACET_LAYOUT_PARAMS =
-            new RadioGroup.LayoutParams(0, LayoutParams.MATCH_PARENT, 1.0f);
-
-    // A loud default color to make it obvious that setUnderlineColor should be called.
-    private int underlineColor = Color.RED;
-
-    // Used for assigning unique view ids when facet buttons are being created.
-    private int nextButtonId = 0;
-
-    public FacetBar(Context context, AttributeSet attrs) {
-        super(context, attrs);
-    }
-
-    /**
-     * Add a new button to the facet bar.
-     *
-     * @param facetName The text to be used in the button.
-     */
-    public void addFacet(String facetName) {
-        addFacet(facetName, false);
-    }
-
-    /**
-     * Add a new button to the facet bar.
-     *
-     * @param facetName The text to be used in the button.
-     * @param checked   Whether the button should be checked. If true, the
-     *                  onCheckChange listener *will* be fired.
-     */
-    public void addFacet(String facetName, boolean checked) {
-        final FacetButton button = new FacetButton(getContext(), facetName, underlineColor);
-
-        // The ids are used internally by RadioGroup to manage which button is
-        // currently checked. Since we are programmatically creating the buttons,
-        // we need to manually assign an id.
-        button.setId(nextButtonId++);
-
-        // Ensure the buttons are equally spaced.
-        button.setLayoutParams(FACET_LAYOUT_PARAMS);
-
-        // If true, this will fire the onCheckChange listener.
-        button.setChecked(checked);
-
-        addView(button);
-    }
-
-    /**
-     * Update the brand color for all of the buttons.
-     */
-    public void setUnderlineColor(int underlineColor) {
-        this.underlineColor = underlineColor;
-
-        if (getChildCount() > 0) {
-            for (int i = 0; i < getChildCount(); i++) {
-                ((FacetButton) getChildAt(i)).setUnderlineColor(underlineColor);
-            }
-        }
-    }
-
-    /**
-     * A custom TextView that includes a bottom border. The bottom border
-     * can have a custom color and thickness.
-     */
-    private static class FacetButton extends RadioButton {
-
-        private final Paint underlinePaint = new Paint();
-
-        public FacetButton(Context context, String text, int color) {
-            super(context, null, R.attr.facetButtonStyle);
-
-            setText(text);
-
-            underlinePaint.setStyle(Paint.Style.STROKE);
-            underlinePaint.setStrokeWidth(getResources().getDimension(R.dimen.facet_button_underline_thickness));
-            underlinePaint.setColor(color);
-        }
-
-        @Override
-        public void setChecked(boolean checked) {
-            super.setChecked(checked);
-
-            // Force the button to redraw to update the underline state.
-            invalidate();
-        }
-
-        @Override
-        protected void onDraw(Canvas canvas) {
-            super.onDraw(canvas);
-            if (isChecked()) {
-                // Translate the line upward so that it isn't clipped by the button's boundary.
-                // We divide by 2 since, without offset, the line would be drawn with its
-                // midpoint at the bottom of the button -- half of the stroke going up,
-                // and half of the stroke getting clipped.
-                final float yPos = getHeight() - underlinePaint.getStrokeWidth() / 2;
-                canvas.drawLine(0, yPos, getWidth(), yPos, underlinePaint);
-            }
-        }
-
-        public void setUnderlineColor(int color) {
-            underlinePaint.setColor(color);
-        }
-    }
-}
deleted file mode 100644
--- a/mobile/android/search/manifests/SearchAndroidManifest_activities.xml.in
+++ /dev/null
@@ -1,61 +0,0 @@
-        <activity
-            android:name="@MOZ_ANDROID_SEARCH_INTENT_CLASS@"
-            android:process=":search"
-            android:launchMode="singleTop"
-            android:taskAffinity="@ANDROID_PACKAGE_NAME@.SEARCH"
-            android:icon="@drawable/search_launcher"
-            android:label="@string/search_app_name"
-            android:configChanges="orientation|screenSize"
-            android:theme="@style/AppTheme">
-            <intent-filter>
-                <action android:name="android.intent.action.ASSIST"/>
-
-                <category android:name="android.intent.category.DEFAULT"/>
-            </intent-filter>
-
-            <!-- Pre Lollipop devices display a generic search icon, if none is
-                 provided here. To use this we need to set the resource to 0.
-                 For Lollipop and later the search launcher icon ist used.
-                 To retrieve the resource value the Bundle.getInt() method is
-                 used, so we use integer resources instead of drawables, because
-                 setting a drawable referenced to 0 results in errors when used
-                 as a real drawable resource somewhere else. -->
-            <meta-data
-                android:name="com.android.systemui.action_assist_icon"
-                android:resource="@integer/search_assist_launch_res"/>
-        </activity>
-
-        <!-- Basic launcher widget. -->
-        <receiver android:name="org.mozilla.search.SearchWidget"
-                  android:label="@string/search_widget_name">
-
-            <intent-filter>
-                <action android:name="android.appwidget.action.APPWIDGET_UPDATE" />
-            </intent-filter>
-
-            <intent-filter>
-                <action android:name="org.mozilla.widget.LAUNCH_BROWSER"/>
-            </intent-filter>
-
-            <intent-filter>
-                <action android:name="org.mozilla.widget.LAUNCH_SEARCH"/>
-            </intent-filter>
-
-            <intent-filter>
-                <action android:name="org.mozilla.widget.LAUNCH_NEW_TAB"/>
-            </intent-filter>
-
-            <meta-data android:name="android.appwidget.provider" android:resource="@xml/search_widget_info" />
-        </receiver>
-
-        <activity
-            android:name="org.mozilla.search.SearchPreferenceActivity"
-            android:process=":search"
-            android:logo="@drawable/search_launcher"
-            android:label="@string/search_pref_title"
-            android:parentActivityName="@MOZ_ANDROID_SEARCH_INTENT_CLASS@"
-            android:theme="@style/SettingsTheme" >
-            <meta-data
-                android:name="android.support.PARENT_ACTIVITY"
-                android:value="@MOZ_ANDROID_SEARCH_INTENT_CLASS@"/>
-        </activity>
deleted file mode 100644
--- a/mobile/android/search/manifests/SearchAndroidManifest_permissions.xml.in
+++ /dev/null
@@ -1,3 +0,0 @@
-    <uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" />
-    <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
-    <uses-permission android:name="android.permission.INTERNET" />
deleted file mode 100644
deleted file mode 100644
--- a/mobile/android/search/search_activity_sources.mozbuild
+++ /dev/null
@@ -1,20 +0,0 @@
-# -*- Mode: python; indent-tabs-mode: nil; tab-width: 40 -*-
-# vim: set filetype=python:
-# This Source Code Form is subject to the terms of the Mozilla Public
-# License, v. 2.0. If a copy of the MPL was not distributed with this
-# file, You can obtain one at http://mozilla.org/MPL/2.0/.
-
-search_activity_sources = [
-    'java/org/mozilla/search/AcceptsSearchQuery.java',
-    'java/org/mozilla/search/autocomplete/AutoCompleteAdapter.java',
-    'java/org/mozilla/search/autocomplete/SearchBar.java',
-    'java/org/mozilla/search/autocomplete/SuggestionsFragment.java',
-    'java/org/mozilla/search/Constants.java',
-    'java/org/mozilla/search/PostSearchFragment.java',
-    'java/org/mozilla/search/PreSearchFragment.java',
-    'java/org/mozilla/search/SearchActivity.java',
-    'java/org/mozilla/search/SearchPreferenceActivity.java',
-    'java/org/mozilla/search/SearchWidget.java',
-    'java/org/mozilla/search/ui/BackCaptureEditText.java',
-    'java/org/mozilla/search/ui/FacetBar.java',
-]
deleted file mode 100644
--- a/mobile/android/search/strings/search_strings.xml.in
+++ /dev/null
@@ -1,20 +0,0 @@
-    <string name="search_plus_content_description">&search_plus_content_description;</string>
-
-    <string name="search_app_name">&search_app_name;</string>
-    <string name="search_bar_hint">&search_bar_hint;</string>
-
-    <string name="search_empty_title">&search_empty_title2;</string>
-    <string name="search_empty_message">&search_empty_message;</string>
-
-    <string name="search_pref_title">&search_pref_title;</string>
-    <string name="search_pref_button_content_description">&search_pref_button_content_description;</string>
-
-    <string name="pref_clearHistory_confirmation">&pref_clearHistory_confirmation;</string>
-    <string name="pref_clearHistory_dialogMessage">&pref_clearHistory_dialogMessage;</string>
-    <string name="pref_clearHistory_title">&pref_clearHistory_title;</string>
-
-    <string name="search_widget_name">&search_app_name;</string>
-    <string name="search_widget_button_label">&search_widget_button_label;</string>
-
-    <string name="network_error_title">&network_error_title;</string>
-    <string name="network_error_message">&network_error_message;</string>
--- a/old-configure.in
+++ b/old-configure.in
@@ -4510,17 +4510,16 @@ AC_SUBST(MOZ_UPDATER)
 AC_SUBST(MOZ_ANGLE_RENDERER)
 AC_SUBST(MOZ_D3D_CPU_SUFFIX)
 AC_SUBST(MOZ_HAS_WINSDK_WITH_D3D)
 AC_SUBST(MOZ_D3DCOMPILER_VISTA_DLL)
 AC_SUBST(MOZ_D3DCOMPILER_VISTA_DLL_PATH)
 
 AC_SUBST(MOZ_ANDROID_APPLICATION_CLASS)
 AC_SUBST(MOZ_ANDROID_BROWSER_INTENT_CLASS)
-AC_SUBST(MOZ_ANDROID_SEARCH_INTENT_CLASS)
 AC_SUBST(MOZ_EXCLUDE_HYPHENATION_DICTIONARIES)
 AC_SUBST(ENABLE_STRIP)
 AC_SUBST(PKG_SKIP_STRIP)
 AC_SUBST(STRIP_FLAGS)
 AC_SUBST(USE_ELF_HACK)
 AC_SUBST(INCREMENTAL_LINKER)
 
 AC_SUBST(MOZ_FIX_LINK_PATHS)