Merge \"leanback: SearchOrbView should not show when no listener is set\" into nyc-dev
am: 2cb2e5ee7f

Change-Id: I1106a0a0e88beb4cbc49c0d8984ecb53e5ca0fbd
diff --git a/v17/leanback/src/android/support/v17/leanback/widget/SearchOrbView.java b/v17/leanback/src/android/support/v17/leanback/widget/SearchOrbView.java
index 10b8727..2f315f7 100644
--- a/v17/leanback/src/android/support/v17/leanback/widget/SearchOrbView.java
+++ b/v17/leanback/src/android/support/v17/leanback/widget/SearchOrbView.java
@@ -277,11 +277,6 @@
      */
     public void setOnOrbClickedListener(OnClickListener listener) {
         mListener = listener;
-        if (null != listener) {
-            setVisibility(View.VISIBLE);
-        } else {
-            setVisibility(View.INVISIBLE);
-        }
     }
 
     /**
diff --git a/v17/leanback/src/android/support/v17/leanback/widget/TitleView.java b/v17/leanback/src/android/support/v17/leanback/widget/TitleView.java
index f9baf71..574d1c7 100644
--- a/v17/leanback/src/android/support/v17/leanback/widget/TitleView.java
+++ b/v17/leanback/src/android/support/v17/leanback/widget/TitleView.java
@@ -36,6 +36,7 @@
     private TextView mTextView;
     private SearchOrbView mSearchOrbView;
     private int flags = FULL_VIEW_VISIBLE;
+    private boolean mHasSearchListener = false;
 
     private final TitleViewAdapter mTitleViewAdapter = new TitleViewAdapter() {
         @Override
@@ -146,7 +147,9 @@
      * Sets the listener to be called when the search affordance is clicked.
      */
     public void setOnSearchClickedListener(View.OnClickListener listener) {
+        mHasSearchListener = listener != null;
         mSearchOrbView.setOnOrbClickedListener(listener);
+        updateSearchOrbViewVisiblity();
     }
 
     /**
@@ -195,8 +198,11 @@
             mBadgeView.setVisibility(View.GONE);
             mTextView.setVisibility(View.GONE);
         }
+        updateSearchOrbViewVisiblity();
+    }
 
-        int visibility = (flags & SEARCH_VIEW_VISIBLE) == SEARCH_VIEW_VISIBLE
+    private void updateSearchOrbViewVisiblity() {
+        int visibility = mHasSearchListener && (flags & SEARCH_VIEW_VISIBLE) == SEARCH_VIEW_VISIBLE
                 ? View.VISIBLE : View.INVISIBLE;
         mSearchOrbView.setVisibility(visibility);
     }