diff --git a/v17/leanback/res/values/themes.xml b/v17/leanback/res/values/themes.xml
index ea0efdd..9567dbe 100644
--- a/v17/leanback/res/values/themes.xml
+++ b/v17/leanback/res/values/themes.xml
@@ -56,6 +56,7 @@
 
         <item name="defaultBrandColor">@color/lb_default_brand_color</item>
         <item name="defaultSearchColor">@color/lb_default_search_color</item>
+        <item name="defaultSearchBrightColor">@null</item>
         <item name="defaultSearchIcon">@drawable/lb_ic_in_app_search</item>
     </style>
 
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 ad92fbf..901b7f8 100644
--- a/v17/leanback/src/android/support/v17/leanback/widget/SearchOrbView.java
+++ b/v17/leanback/src/android/support/v17/leanback/widget/SearchOrbView.java
@@ -19,6 +19,7 @@
 import android.animation.ArgbEvaluator;
 import android.animation.ValueAnimator;
 import android.content.Context;
+import android.content.res.Resources;
 import android.content.res.TypedArray;
 import android.graphics.Color;
 import android.graphics.Rect;
@@ -70,6 +71,8 @@
     public SearchOrbView(Context context, AttributeSet attrs, int defStyleAttr) {
         super(context, attrs, defStyleAttr);
 
+        final Resources res = context.getResources();
+
         LayoutInflater inflater = (LayoutInflater) context
                 .getSystemService(Context.LAYOUT_INFLATER_SERVICE);
         View root = inflater.inflate(R.layout.lb_search_orb, this, true);
@@ -87,10 +90,15 @@
 
         TypedArray a = context.obtainStyledAttributes(attrs, R.styleable.lbSearchOrbView,
                 defStyleAttr, 0);
+
         Drawable img = a.getDrawable(R.styleable.lbSearchOrbView_searchOrbIcon);
+        if (img == null) {
+            img = res.getDrawable(R.drawable.lb_ic_in_app_search);
+        }
         setOrbIcon(img);
 
-        int color = a.getColor(R.styleable.lbSearchOrbView_searchOrbColor, 0);
+        int defColor = res.getColor(R.color.lb_default_search_color);
+        int color = a.getColor(R.styleable.lbSearchOrbView_searchOrbColor, defColor);
         int brightColor = a.getColor(
                 R.styleable.lbSearchOrbView_searchOrbBrightColor, getBrightColor(color));
         setOrbColor(color, brightColor);
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 d38e394..90eea00 100644
--- a/v17/leanback/src/android/support/v17/leanback/widget/TitleView.java
+++ b/v17/leanback/src/android/support/v17/leanback/widget/TitleView.java
@@ -41,11 +41,11 @@
     }
 
     public TitleView(Context context, AttributeSet attrs) {
-        this(context, attrs, R.style.Widget_Leanback_Title);
+        this(context, attrs, R.attr.browseTitleViewStyle);
     }
 
-    public TitleView(Context context, AttributeSet attrs, int defStyle) {
-        super(context, attrs, defStyle);
+    public TitleView(Context context, AttributeSet attrs, int defStyleAttr) {
+        super(context, attrs, defStyleAttr);
 
         LayoutInflater inflater = LayoutInflater.from(context);
         View rootView = inflater.inflate(R.layout.lb_title_view, this);
@@ -54,7 +54,8 @@
         mTextView = (TextView) rootView.findViewById(R.id.browse_title);
         mSearchOrbView = (SearchOrbView) rootView.findViewById(R.id.browse_orb);
 
-        TypedArray a = context.obtainStyledAttributes(attrs, R.styleable.lbTitleView);
+        TypedArray a = context.obtainStyledAttributes(attrs, R.styleable.lbTitleView,
+                defStyleAttr, 0);
         int color = a.getColor(R.styleable.lbTitleView_searchAffordanceColor, 0);
         a.recycle();
         mSearchOrbView.setOrbColor(color);
