Search code examples
androidandroid-studioandroid-layoutoperating-systemandroid-source

How to remove google search bar of home screen from android source code of AOSP


I have installed android open source project [AOSP 10] on my system and buid it and have run the emulator. It is showing the default google search bar on the top of the home screen. I want to remove that google search bar from there to make the home screen clear. For removing that I have modified one file but I am not sure about which file I have to modified to remove that section.

I have modified an AndroidManifest.xml file which is at the directory "Android_AOSP/packages/apps/QuickSearchBox/AndroidManifest.xml", but that file have removed only the search icon but the background layout is still showing there. Before the editing the following code the above search layout was same as the below google search layout.

I have just commented one section of the following code.

<?xml version="1.0" encoding="utf-8"?>
<!-- Copyright (C) 2009 The Android Open Source Project

     Licensed under the Apache License, Version 2.0 (the "License");
     you may not use this file except in compliance with the License.
     You may obtain a copy of the License at

          http://www.apache.org/licenses/LICENSE-2.0

     Unless required by applicable law or agreed to in writing, software
     distributed under the License is distributed on an "AS IS" BASIS,
     WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
     See the License for the specific language governing permissions and
     limitations under the License.
-->

<manifest xmlns:android="http://schemas.android.com/apk/res/android"
      package="com.android.quicksearchbox" >

    <original-package android:name="com.android.quicksearchbox" />

    <uses-sdk android:minSdkVersion="8" android:targetSdkVersion="28" />

    <uses-permission android:name="android.permission.GLOBAL_SEARCH" />

    <!-- Permissions needed by the default corpora. We request these instead of just relying on
         GLOBAL_SEARCH so that we can use the default corpora when not in the system
         partition. -->
    <uses-permission android:name="android.permission.READ_CONTACTS" />
    <uses-permission android:name="com.android.browser.permission.READ_HISTORY_BOOKMARKS"/>

    <!-- Permissions used by GoogleSearch. -->
    <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
    <uses-permission android:name="android.permission.INTERNET" />
    <uses-permission android:name="android.permission.WRITE_SETTINGS" />

    <application android:label="@string/app_name"
                 android:icon="@mipmap/search_app_icon"
                 android:name=".QsbApplicationWrapper"
                 android:theme="@style/Theme.QuickSearchBox"
                 android:hardwareAccelerated="true">
        <uses-library android:name="org.apache.http.legacy" android:required="false" />
<!--
        <activity android:name=".SearchActivity"
                  android:label="@string/app_name"
                  android:launchMode="singleTask"
                  android:theme="@style/Theme.QuickSearchBox.Search">
 -->                 
            <!-- Show app icon in Launcher. -->
<!--
            <intent-filter>
                <action android:name="android.intent.action.MAIN" />
                <category android:name="android.intent.category.LAUNCHER" />
            </intent-filter>
-->            <!-- Handle global search. -->
<!--            <intent-filter>
                <action android:name="android.search.action.GLOBAL_SEARCH" />
                <category android:name="android.intent.category.DEFAULT" />
            </intent-filter>
            <intent-filter>
                <action android:name="android.search.action.GLOBAL_SEARCH" />
                <category android:name="android.intent.category.DEFAULT" />
            </intent-filter>
            <meta-data android:name="com.android.launcher.toolbar_icon" android:resource="@drawable/ic_google_logo_normal" />
        </activity>

-->
        <receiver android:name=".SearchWidgetProvider"
                  android:label="@string/app_name">
            <intent-filter>
                <action android:name="android.appwidget.action.APPWIDGET_UPDATE" />
            </intent-filter>
            <meta-data android:name="android.appwidget.provider" android:resource="@xml/search_widget_info" />
        </receiver>

        <activity android:name=".google.GoogleSearch"
                android:label="@string/google_search_label"
                android:icon="@mipmap/google_icon"
                android:theme="@android:style/Theme.NoDisplay"
                android:excludeFromRecents="true">
            <intent-filter>
                <action android:name="android.intent.action.WEB_SEARCH" />
                <category android:name="android.intent.category.DEFAULT" />
            </intent-filter>
            <meta-data android:name="android.app.searchable"
                android:resource="@xml/google_searchable" />
        </activity>

        <provider android:name=".google.GoogleSuggestionProvider"
            android:label="@string/google_search_label"
            android:authorities="com.android.quicksearchbox.google"
            android:exported="true" />

    </application>
</manifest>

I have changed the selected code only showing in the given image file. And the changes happened after the build again which are showing in the emulator. I want to fully remove the above search layout from the home screen but it is not happening. Before editing the code it were looking same like the below search layout. I have also tried by commenting all the code written inside the manifest tag section. But it not doing any changes except the showing changes. And if I delete this file then it will start giving the error. I have tried by deleting the full 'QuickSearchBox' folder but after doing that no any changes happening in that section.

Check the code and layout changes in the given image. I only have commented the selected code and it showing changes in the emulator


Solution

  • The way I used to remove the default home screen google search box was wrong.

    I have find the main solution of removing it without making much changes in the code. Follow the following steps to remove it.

    Step 1 : Go to the following directory inside your AOSP source directory

    Path : packages/apps/Launcher3/src/com/android/launcher3/config/

    Step 2 : Open the file named " BaseFlags.java "

    Step 3 : Find the following line of code and make change as following from " true " to " false "

    // Enable moving the QSB on the 0th screen of the workspace
    
    public static final boolean QSB_ON_FIRST_SCREEN = false;    // For show 'home screen search bar' make it true. // By default it was true
    

    Step 4 : Save the file.

    Step 5 : Make the source code and check the result. Google search bar get removed.