Get the view to be used as qsb bar from the launcher directly.

This will allow more control over the qsb visuals and behaviour in GEL.
Depends on ag/339203

Future changes:
- revert ag/344333 since we won't need the normal qsb to support hotword
  anymore
- Dragging icons over the Drop target bar (to remove/uninstall them or
  get App info) doesn't currently work in GEL. There might be future
  changes needed to fix that.

Change-Id: Ic498f0abee5ad99ef1644ff94f174b61f8e1f5f0
diff --git a/src/com/android/launcher3/Launcher.java b/src/com/android/launcher3/Launcher.java
index d91fee8..85bcdc0 100644
--- a/src/com/android/launcher3/Launcher.java
+++ b/src/com/android/launcher3/Launcher.java
@@ -245,6 +245,7 @@
     private AppsCustomizeTabHost mAppsCustomizeTabHost;
     private AppsCustomizePagedView mAppsCustomizeContent;
     private boolean mAutoAdvanceRunning = false;
+    private View mQsbBar;
 
     private Bundle mSavedState;
     // We set the state in both onCreate and then onNewIntent in some cases, which causes both
@@ -413,8 +414,8 @@
 
         checkForLocaleChange();
         setContentView(R.layout.launcher);
-        grid.layout(this);
         setupViews();
+        grid.layout(this);
         showFirstRunWorkspaceCling();
 
         registerContentObservers();
@@ -3247,7 +3248,14 @@
         }
     }
 
-    private boolean updateGlobalSearchIcon() {
+    public View getQsbBar() {
+        if (mQsbBar == null) {
+            mQsbBar = mInflater.inflate(R.layout.qsb_bar, mSearchDropTargetBar);
+        }
+        return mQsbBar;
+    }
+
+    protected boolean updateGlobalSearchIcon() {
         final View searchButtonContainer = findViewById(R.id.search_button_container);
         final ImageView searchButton = (ImageView) findViewById(R.id.search_button);
         final View voiceButtonContainer = findViewById(R.id.voice_button_container);
@@ -3282,14 +3290,14 @@
         }
     }
 
-    private void updateGlobalSearchIcon(Drawable.ConstantState d) {
+    protected void updateGlobalSearchIcon(Drawable.ConstantState d) {
         final View searchButtonContainer = findViewById(R.id.search_button_container);
         final View searchButton = (ImageView) findViewById(R.id.search_button);
         updateButtonWithDrawable(R.id.search_button, d);
         invalidatePressedFocusedStates(searchButtonContainer, searchButton);
     }
 
-    private boolean updateVoiceSearchIcon(boolean searchVisible) {
+    protected boolean updateVoiceSearchIcon(boolean searchVisible) {
         final View voiceButtonContainer = findViewById(R.id.voice_button_container);
         final View voiceButton = findViewById(R.id.voice_button);
 
@@ -3335,7 +3343,7 @@
         }
     }
 
-    private void updateVoiceSearchIcon(Drawable.ConstantState d) {
+    protected void updateVoiceSearchIcon(Drawable.ConstantState d) {
         final View voiceButtonContainer = findViewById(R.id.voice_button_container);
         final View voiceButton = findViewById(R.id.voice_button);
         updateButtonWithDrawable(R.id.voice_button, d);