Remove all the extra accessor methods added by javac in support-leanback.

Change private methods to be package protected to avoid extra methods
that get added to be able to access them from inner classes.

This CL saves 469 methods in our jar.

Bug: 31075707
Change-Id: I68c8152d060c9f35c72a2d78c608a9bccd12c86e
diff --git a/v17/leanback/api21/android/support/v17/leanback/transition/FadeAndShortSlide.java b/v17/leanback/api21/android/support/v17/leanback/transition/FadeAndShortSlide.java
index 224d062..7377dda 100644
--- a/v17/leanback/api21/android/support/v17/leanback/transition/FadeAndShortSlide.java
+++ b/v17/leanback/api21/android/support/v17/leanback/transition/FadeAndShortSlide.java
@@ -49,6 +49,9 @@
 
     private static abstract class CalculateSlide {
 
+        CalculateSlide() {
+        }
+
         /** Returns the translation X value for view when it goes out of the scene */
         float getGoneX(FadeAndShortSlide t, ViewGroup sceneRoot, View view, int[] position) {
             return view.getTranslationX();
diff --git a/v17/leanback/api21/android/support/v17/leanback/transition/TranslationAnimationCreator.java b/v17/leanback/api21/android/support/v17/leanback/transition/TranslationAnimationCreator.java
index 46068da..b015d18 100644
--- a/v17/leanback/api21/android/support/v17/leanback/transition/TranslationAnimationCreator.java
+++ b/v17/leanback/api21/android/support/v17/leanback/transition/TranslationAnimationCreator.java
@@ -83,7 +83,7 @@
         private final float mTerminalX;
         private final float mTerminalY;
 
-        private TransitionPositionListener(View movingView, View viewInHierarchy,
+        TransitionPositionListener(View movingView, View viewInHierarchy,
                 int startX, int startY, float terminalX, float terminalY) {
             mMovingView = movingView;
             mViewInHierarchy = viewInHierarchy;
diff --git a/v17/leanback/kitkat/android/support/v17/leanback/transition/SlideKitkat.java b/v17/leanback/kitkat/android/support/v17/leanback/transition/SlideKitkat.java
index a1f2d63..ae6d195 100644
--- a/v17/leanback/kitkat/android/support/v17/leanback/transition/SlideKitkat.java
+++ b/v17/leanback/kitkat/android/support/v17/leanback/transition/SlideKitkat.java
@@ -64,6 +64,9 @@
     }
 
     private static abstract class CalculateSlideHorizontal implements CalculateSlide {
+        CalculateSlideHorizontal() {
+        }
+
         @Override
         public float getHere(View view) {
             return view.getTranslationX();
@@ -76,6 +79,9 @@
     }
 
     private static abstract class CalculateSlideVertical implements CalculateSlide {
+        CalculateSlideVertical() {
+        }
+
         @Override
         public float getHere(View view) {
             return view.getTranslationY();
diff --git a/v17/leanback/src/android/support/v17/leanback/app/BackgroundManager.java b/v17/leanback/src/android/support/v17/leanback/app/BackgroundManager.java
index 1b10741..a8b7fa7 100644
--- a/v17/leanback/src/android/support/v17/leanback/app/BackgroundManager.java
+++ b/v17/leanback/src/android/support/v17/leanback/app/BackgroundManager.java
@@ -88,10 +88,10 @@
         public boolean isResumed();
     }
 
-    private static final String TAG = "BackgroundManager";
-    private static final boolean DEBUG = false;
+    static final String TAG = "BackgroundManager";
+    static final boolean DEBUG = false;
 
-    private static final int FULL_ALPHA = 255;
+    static final int FULL_ALPHA = 255;
     private static final int DIM_ALPHA_ON_SOLID = (int) (0.8f * FULL_ALPHA);
     private static final int CHANGE_BG_DELAY_MS = 500;
     private static final int FADE_DURATION = 500;
@@ -106,8 +106,8 @@
     private static final String WINDOW_NAME = "BackgroundManager";
     private static final String FRAGMENT_TAG = BackgroundManager.class.getCanonicalName();
 
-    private Context mContext;
-    private Handler mHandler;
+    Context mContext;
+    Handler mHandler;
     private Window mWindow;
     private WindowManager mWindowManager;
     private View mBgView;
@@ -117,7 +117,7 @@
 
     private int mHeightPx;
     private int mWidthPx;
-    private Drawable mBackgroundDrawable;
+    Drawable mBackgroundDrawable;
     private int mBackgroundColor;
     private boolean mAttached;
     private long mLastSetTime;
@@ -205,7 +205,7 @@
         }
     }
 
-    private static class DrawableWrapper {
+    static class DrawableWrapper {
         private int mAlpha = FULL_ALPHA;
         private Drawable mDrawable;
         private ColorFilter mColorFilter;
@@ -439,9 +439,9 @@
         return result;
     }
 
-    private TranslucentLayerDrawable mLayerDrawable;
+    TranslucentLayerDrawable mLayerDrawable;
     private Drawable mDimDrawable;
-    private ChangeBackgroundRunnable mChangeRunnable;
+    ChangeBackgroundRunnable mChangeRunnable;
     private boolean mChangeRunnablePending;
 
     private final Animator.AnimatorListener mAnimationListener = new Animator.AnimatorListener() {
@@ -690,17 +690,17 @@
         mFragmentState = fragment;
     }
 
-    private DrawableWrapper getImageInWrapper() {
+    DrawableWrapper getImageInWrapper() {
         return mLayerDrawable == null ? null :
                 mLayerDrawable.findWrapperById(R.id.background_imagein);
     }
 
-    private DrawableWrapper getImageOutWrapper() {
+    DrawableWrapper getImageOutWrapper() {
         return mLayerDrawable == null ? null :
                 mLayerDrawable.findWrapperById(R.id.background_imageout);
     }
 
-    private DrawableWrapper getDimWrapper() {
+    DrawableWrapper getDimWrapper() {
         return mLayerDrawable == null ? null :
                 mLayerDrawable.findWrapperById(R.id.background_dim);
     }
@@ -880,11 +880,11 @@
         releaseBackgroundBitmap();
     }
 
-    private void releaseBackgroundBitmap() {
+    void releaseBackgroundBitmap() {
         mBackgroundDrawable = null;
     }
 
-    private void setBackgroundDrawable(Drawable drawable) {
+    void setBackgroundDrawable(Drawable drawable) {
         mBackgroundDrawable = drawable;
         mService.setDrawable(mBackgroundDrawable);
     }
@@ -911,7 +911,7 @@
         return ContextCompat.getDrawable(mContext, R.color.lb_background_protection);
     }
 
-    private void postChangeRunnable() {
+    void postChangeRunnable() {
         if (mChangeRunnable == null || !mChangeRunnablePending) {
             return;
         }
@@ -1076,7 +1076,7 @@
         setDrawableInternal(bitmapDrawable);
     }
 
-    private void applyBackgroundChanges() {
+    void applyBackgroundChanges() {
         if (!mAttached) {
             return;
         }
@@ -1129,7 +1129,7 @@
         return mBackgroundDrawable;
     }
 
-    private boolean sameDrawable(Drawable first, Drawable second) {
+    boolean sameDrawable(Drawable first, Drawable second) {
         if (first == null || second == null) {
             return false;
         }
@@ -1148,7 +1148,7 @@
      * Task which changes the background.
      */
     class ChangeBackgroundRunnable implements Runnable {
-        private Drawable mDrawable;
+        Drawable mDrawable;
 
         ChangeBackgroundRunnable(Drawable drawable) {
             mDrawable = drawable;
@@ -1188,7 +1188,7 @@
         }
     }
 
-    private static Drawable createEmptyDrawable(Context context) {
+    static Drawable createEmptyDrawable(Context context) {
         Bitmap bitmap = null;
         return new BitmapDrawable(context.getResources(), bitmap);
     }
diff --git a/v17/leanback/src/android/support/v17/leanback/app/BaseFragment.java b/v17/leanback/src/android/support/v17/leanback/app/BaseFragment.java
index d298e20..0f6aae3 100644
--- a/v17/leanback/src/android/support/v17/leanback/app/BaseFragment.java
+++ b/v17/leanback/src/android/support/v17/leanback/app/BaseFragment.java
@@ -81,8 +81,8 @@
 
     final StateMachine mEnterTransitionStates;
 
-    private Object mEntranceTransition;
-    private final ProgressBarManager mProgressBarManager = new ProgressBarManager();
+    Object mEntranceTransition;
+    final ProgressBarManager mProgressBarManager = new ProgressBarManager();
 
     BaseFragment() {
         mEnterTransitionStates = new StateMachine();
diff --git a/v17/leanback/src/android/support/v17/leanback/app/BaseRowFragment.java b/v17/leanback/src/android/support/v17/leanback/app/BaseRowFragment.java
index 2ddea53..c9489d1 100644
--- a/v17/leanback/src/android/support/v17/leanback/app/BaseRowFragment.java
+++ b/v17/leanback/src/android/support/v17/leanback/app/BaseRowFragment.java
@@ -33,10 +33,10 @@
 abstract class BaseRowFragment extends Fragment {
     private static final String CURRENT_SELECTED_POSITION = "currentSelectedPosition";
     private ObjectAdapter mAdapter;
-    private VerticalGridView mVerticalGridView;
+    VerticalGridView mVerticalGridView;
     private PresenterSelector mPresenterSelector;
-    private ItemBridgeAdapter mBridgeAdapter;
-    private int mSelectedPosition = -1;
+    ItemBridgeAdapter mBridgeAdapter;
+    int mSelectedPosition = -1;
     private boolean mPendingTransitionPrepare;
     private LateSelectionObserver mLateSelectionObserver = new LateSelectionObserver();
 
@@ -90,6 +90,9 @@
     private class LateSelectionObserver extends RecyclerView.AdapterDataObserver {
         boolean mIsLateSelection = false;
 
+        LateSelectionObserver() {
+        }
+
         @Override
         public void onChanged() {
             performLateSelection();
diff --git a/v17/leanback/src/android/support/v17/leanback/app/BaseRowSupportFragment.java b/v17/leanback/src/android/support/v17/leanback/app/BaseRowSupportFragment.java
index 847eb57..6fc741d 100644
--- a/v17/leanback/src/android/support/v17/leanback/app/BaseRowSupportFragment.java
+++ b/v17/leanback/src/android/support/v17/leanback/app/BaseRowSupportFragment.java
@@ -35,10 +35,10 @@
 abstract class BaseRowSupportFragment extends Fragment {
     private static final String CURRENT_SELECTED_POSITION = "currentSelectedPosition";
     private ObjectAdapter mAdapter;
-    private VerticalGridView mVerticalGridView;
+    VerticalGridView mVerticalGridView;
     private PresenterSelector mPresenterSelector;
-    private ItemBridgeAdapter mBridgeAdapter;
-    private int mSelectedPosition = -1;
+    ItemBridgeAdapter mBridgeAdapter;
+    int mSelectedPosition = -1;
     private boolean mPendingTransitionPrepare;
     private LateSelectionObserver mLateSelectionObserver = new LateSelectionObserver();
 
@@ -92,6 +92,9 @@
     private class LateSelectionObserver extends RecyclerView.AdapterDataObserver {
         boolean mIsLateSelection = false;
 
+        LateSelectionObserver() {
+        }
+
         @Override
         public void onChanged() {
             performLateSelection();
diff --git a/v17/leanback/src/android/support/v17/leanback/app/BaseSupportFragment.java b/v17/leanback/src/android/support/v17/leanback/app/BaseSupportFragment.java
index 5322195..8a818e0 100644
--- a/v17/leanback/src/android/support/v17/leanback/app/BaseSupportFragment.java
+++ b/v17/leanback/src/android/support/v17/leanback/app/BaseSupportFragment.java
@@ -83,8 +83,8 @@
 
     final StateMachine mEnterTransitionStates;
 
-    private Object mEntranceTransition;
-    private final ProgressBarManager mProgressBarManager = new ProgressBarManager();
+    Object mEntranceTransition;
+    final ProgressBarManager mProgressBarManager = new ProgressBarManager();
 
     BaseSupportFragment() {
         mEnterTransitionStates = new StateMachine();
diff --git a/v17/leanback/src/android/support/v17/leanback/app/BrowseFragment.java b/v17/leanback/src/android/support/v17/leanback/app/BrowseFragment.java
index fa3aae3..1a18b2d 100644
--- a/v17/leanback/src/android/support/v17/leanback/app/BrowseFragment.java
+++ b/v17/leanback/src/android/support/v17/leanback/app/BrowseFragment.java
@@ -253,6 +253,9 @@
         boolean mShowTitleView = true;
         boolean mDataReady = false;
 
+        FragmentHostImpl() {
+        }
+
         @Override
         public void notifyViewCreated(MainFragmentAdapter fragmentAdapter) {
             performPendingStates();
@@ -320,7 +323,7 @@
     public static class MainFragmentAdapter<T extends Fragment> {
         private boolean mScalingEnabled;
         private final T mFragment;
-        private FragmentHostImpl mFragmentHost;
+        FragmentHostImpl mFragmentHost;
 
         public MainFragmentAdapter(T fragment) {
             this.mFragment = fragment;
@@ -592,11 +595,11 @@
         }
     }
 
-    private static final String TAG = "BrowseFragment";
+    static final String TAG = "BrowseFragment";
 
     private static final String LB_HEADERS_BACKSTACK = "lbHeadersBackStack_";
 
-    private static boolean DEBUG = false;
+    static boolean DEBUG = false;
 
     /** The headers fragment is enabled and shown by default. */
     public static final int HEADERS_ENABLED = 1;
@@ -609,9 +612,9 @@
 
     private MainFragmentAdapterRegistry mMainFragmentAdapterRegistry
             = new MainFragmentAdapterRegistry();
-    private MainFragmentAdapter mMainFragmentAdapter;
-    private Fragment mMainFragment;
-    private HeadersFragment mHeadersFragment;
+    MainFragmentAdapter mMainFragmentAdapter;
+    Fragment mMainFragment;
+    HeadersFragment mHeadersFragment;
     private MainFragmentRowsAdapter mMainFragmentRowsAdapter;
 
     private ObjectAdapter mAdapter;
@@ -622,31 +625,31 @@
     private int mBrandColor = Color.TRANSPARENT;
     private boolean mBrandColorSet;
 
-    private BrowseFrameLayout mBrowseFrame;
+    BrowseFrameLayout mBrowseFrame;
     private ScaleFrameLayout mScaleFrameLayout;
-    private boolean mHeadersBackStackEnabled = true;
-    private String mWithHeadersBackStackName;
-    private boolean mShowingHeaders = true;
-    private boolean mCanShowHeaders = true;
+    boolean mHeadersBackStackEnabled = true;
+    String mWithHeadersBackStackName;
+    boolean mShowingHeaders = true;
+    boolean mCanShowHeaders = true;
     private int mContainerListMarginStart;
     private int mContainerListAlignTop;
     private boolean mMainFragmentScaleEnabled = true;
-    private OnItemViewSelectedListener mExternalOnItemViewSelectedListener;
+    OnItemViewSelectedListener mExternalOnItemViewSelectedListener;
     private OnItemViewClickedListener mOnItemViewClickedListener;
     private int mSelectedPosition = -1;
     private float mScaleFactor;
-    private boolean mIsPageRow;
+    boolean mIsPageRow;
 
     private PresenterSelector mHeaderPresenterSelector;
     private final SetSelectionRunnable mSetSelectionRunnable = new SetSelectionRunnable();
 
     // transition related:
-    private Object mSceneWithHeaders;
-    private Object mSceneWithoutHeaders;
+    Object mSceneWithHeaders;
+    Object mSceneWithoutHeaders;
     private Object mSceneAfterEntranceTransition;
-    private Object mHeadersTransition;
-    private BackStackListener mBackStackChangedListener;
-    private BrowseTransitionListener mBrowseTransitionListener;
+    Object mHeadersTransition;
+    BackStackListener mBackStackChangedListener;
+    BrowseTransitionListener mBrowseTransitionListener;
 
     private static final String ARG_TITLE = BrowseFragment.class.getCanonicalName() + ".title";
     private static final String ARG_HEADERS_STATE =
@@ -892,7 +895,7 @@
         mMainFragmentScaleEnabled = enable;
     }
 
-    private void startHeadersTransitionInternal(final boolean withHeaders) {
+    void startHeadersTransitionInternal(final boolean withHeaders) {
         if (getFragmentManager().isDestroyed()) {
             return;
         }
@@ -980,7 +983,7 @@
         }
     };
 
-    private final boolean isHeadersDataReady() {
+    final boolean isHeadersDataReady() {
         return mAdapter != null && mAdapter.size() != 0;
     }
 
@@ -1207,7 +1210,7 @@
                 && (!mIsPageRow || mMainFragmentAdapter.mFragmentHost.mDataReady);
     }
 
-    private void createHeadersTransition() {
+    void createHeadersTransition() {
         mHeadersTransition = TransitionHelper.loadTransition(getActivity(),
                 mShowingHeaders ?
                 R.transition.lb_browse_headers_in : R.transition.lb_browse_headers_out);
@@ -1332,7 +1335,7 @@
         containerList.setLayoutParams(lp);
     }
 
-    private void showHeaders(boolean show) {
+    void showHeaders(boolean show) {
         if (DEBUG) Log.v(TAG, "showHeaders " + show);
         mHeadersFragment.setHeadersEnabled(show);
         setHeadersOnScreen(show);
@@ -1395,14 +1398,14 @@
         }
     };
 
-    private void onRowSelected(int position) {
+    void onRowSelected(int position) {
         if (position != mSelectedPosition) {
             mSetSelectionRunnable.post(
                     position, SetSelectionRunnable.TYPE_INTERNAL_SYNC, true);
         }
     }
 
-    private void setSelection(int position, boolean smooth) {
+    void setSelection(int position, boolean smooth) {
         if (position == NO_POSITION) {
             return;
         }
diff --git a/v17/leanback/src/android/support/v17/leanback/app/BrowseSupportFragment.java b/v17/leanback/src/android/support/v17/leanback/app/BrowseSupportFragment.java
index 53d53a3..11485c8 100644
--- a/v17/leanback/src/android/support/v17/leanback/app/BrowseSupportFragment.java
+++ b/v17/leanback/src/android/support/v17/leanback/app/BrowseSupportFragment.java
@@ -255,6 +255,9 @@
         boolean mShowTitleView = true;
         boolean mDataReady = false;
 
+        FragmentHostImpl() {
+        }
+
         @Override
         public void notifyViewCreated(MainFragmentAdapter fragmentAdapter) {
             performPendingStates();
@@ -322,7 +325,7 @@
     public static class MainFragmentAdapter<T extends Fragment> {
         private boolean mScalingEnabled;
         private final T mFragment;
-        private FragmentHostImpl mFragmentHost;
+        FragmentHostImpl mFragmentHost;
 
         public MainFragmentAdapter(T fragment) {
             this.mFragment = fragment;
@@ -594,11 +597,11 @@
         }
     }
 
-    private static final String TAG = "BrowseSupportFragment";
+    static final String TAG = "BrowseSupportFragment";
 
     private static final String LB_HEADERS_BACKSTACK = "lbHeadersBackStack_";
 
-    private static boolean DEBUG = false;
+    static boolean DEBUG = false;
 
     /** The headers fragment is enabled and shown by default. */
     public static final int HEADERS_ENABLED = 1;
@@ -611,9 +614,9 @@
 
     private MainFragmentAdapterRegistry mMainFragmentAdapterRegistry
             = new MainFragmentAdapterRegistry();
-    private MainFragmentAdapter mMainFragmentAdapter;
-    private Fragment mMainFragment;
-    private HeadersSupportFragment mHeadersSupportFragment;
+    MainFragmentAdapter mMainFragmentAdapter;
+    Fragment mMainFragment;
+    HeadersSupportFragment mHeadersSupportFragment;
     private MainFragmentRowsAdapter mMainFragmentRowsAdapter;
 
     private ObjectAdapter mAdapter;
@@ -624,31 +627,31 @@
     private int mBrandColor = Color.TRANSPARENT;
     private boolean mBrandColorSet;
 
-    private BrowseFrameLayout mBrowseFrame;
+    BrowseFrameLayout mBrowseFrame;
     private ScaleFrameLayout mScaleFrameLayout;
-    private boolean mHeadersBackStackEnabled = true;
-    private String mWithHeadersBackStackName;
-    private boolean mShowingHeaders = true;
-    private boolean mCanShowHeaders = true;
+    boolean mHeadersBackStackEnabled = true;
+    String mWithHeadersBackStackName;
+    boolean mShowingHeaders = true;
+    boolean mCanShowHeaders = true;
     private int mContainerListMarginStart;
     private int mContainerListAlignTop;
     private boolean mMainFragmentScaleEnabled = true;
-    private OnItemViewSelectedListener mExternalOnItemViewSelectedListener;
+    OnItemViewSelectedListener mExternalOnItemViewSelectedListener;
     private OnItemViewClickedListener mOnItemViewClickedListener;
     private int mSelectedPosition = -1;
     private float mScaleFactor;
-    private boolean mIsPageRow;
+    boolean mIsPageRow;
 
     private PresenterSelector mHeaderPresenterSelector;
     private final SetSelectionRunnable mSetSelectionRunnable = new SetSelectionRunnable();
 
     // transition related:
-    private Object mSceneWithHeaders;
-    private Object mSceneWithoutHeaders;
+    Object mSceneWithHeaders;
+    Object mSceneWithoutHeaders;
     private Object mSceneAfterEntranceTransition;
-    private Object mHeadersTransition;
-    private BackStackListener mBackStackChangedListener;
-    private BrowseTransitionListener mBrowseTransitionListener;
+    Object mHeadersTransition;
+    BackStackListener mBackStackChangedListener;
+    BrowseTransitionListener mBrowseTransitionListener;
 
     private static final String ARG_TITLE = BrowseSupportFragment.class.getCanonicalName() + ".title";
     private static final String ARG_HEADERS_STATE =
@@ -894,7 +897,7 @@
         mMainFragmentScaleEnabled = enable;
     }
 
-    private void startHeadersTransitionInternal(final boolean withHeaders) {
+    void startHeadersTransitionInternal(final boolean withHeaders) {
         if (getFragmentManager().isDestroyed()) {
             return;
         }
@@ -982,7 +985,7 @@
         }
     };
 
-    private final boolean isHeadersDataReady() {
+    final boolean isHeadersDataReady() {
         return mAdapter != null && mAdapter.size() != 0;
     }
 
@@ -1209,7 +1212,7 @@
                 && (!mIsPageRow || mMainFragmentAdapter.mFragmentHost.mDataReady);
     }
 
-    private void createHeadersTransition() {
+    void createHeadersTransition() {
         mHeadersTransition = TransitionHelper.loadTransition(getActivity(),
                 mShowingHeaders ?
                 R.transition.lb_browse_headers_in : R.transition.lb_browse_headers_out);
@@ -1334,7 +1337,7 @@
         containerList.setLayoutParams(lp);
     }
 
-    private void showHeaders(boolean show) {
+    void showHeaders(boolean show) {
         if (DEBUG) Log.v(TAG, "showHeaders " + show);
         mHeadersSupportFragment.setHeadersEnabled(show);
         setHeadersOnScreen(show);
@@ -1397,14 +1400,14 @@
         }
     };
 
-    private void onRowSelected(int position) {
+    void onRowSelected(int position) {
         if (position != mSelectedPosition) {
             mSetSelectionRunnable.post(
                     position, SetSelectionRunnable.TYPE_INTERNAL_SYNC, true);
         }
     }
 
-    private void setSelection(int position, boolean smooth) {
+    void setSelection(int position, boolean smooth) {
         if (position == NO_POSITION) {
             return;
         }
diff --git a/v17/leanback/src/android/support/v17/leanback/app/DetailsFragment.java b/v17/leanback/src/android/support/v17/leanback/app/DetailsFragment.java
index 1875683..ee733a6 100644
--- a/v17/leanback/src/android/support/v17/leanback/app/DetailsFragment.java
+++ b/v17/leanback/src/android/support/v17/leanback/app/DetailsFragment.java
@@ -69,13 +69,16 @@
  * </p>
  */
 public class DetailsFragment extends BaseFragment {
-    private static final String TAG = "DetailsFragment";
-    private static boolean DEBUG = false;
+    static final String TAG = "DetailsFragment";
+    static boolean DEBUG = false;
 
     private class SetSelectionRunnable implements Runnable {
         int mPosition;
         boolean mSmooth = true;
 
+        SetSelectionRunnable() {
+        }
+
         @Override
         public void run() {
             if (mRowsFragment == null) {
@@ -85,11 +88,11 @@
         }
     }
 
-    private RowsFragment mRowsFragment;
+    RowsFragment mRowsFragment;
 
     private ObjectAdapter mAdapter;
     private int mContainerListAlignTop;
-    private BaseOnItemViewSelectedListener mExternalOnItemViewSelectedListener;
+    BaseOnItemViewSelectedListener mExternalOnItemViewSelectedListener;
     private BaseOnItemViewClickedListener mOnItemViewClickedListener;
 
     private Object mSceneAfterEntranceTransition;
@@ -228,7 +231,7 @@
      * that setup should only change the Presenter behavior that is meaningful in DetailsFragment.  For
      * example how a row is aligned in details Fragment.   The default implementation invokes
      * {@link #setupDetailsOverviewRowPresenter(FullWidthDetailsOverviewRowPresenter)}
-     * 
+     *
      */
     protected void setupPresenter(Presenter rowPresenter) {
         if (rowPresenter instanceof FullWidthDetailsOverviewRowPresenter) {
@@ -310,7 +313,7 @@
         }
     }
 
-    private void onRowSelected(int selectedPosition, int selectedSubPosition) {
+    void onRowSelected(int selectedPosition, int selectedSubPosition) {
         ObjectAdapter adapter = getAdapter();
         if (adapter == null || adapter.size() == 0 ||
                 (selectedPosition == 0 && selectedSubPosition == 0)) {
diff --git a/v17/leanback/src/android/support/v17/leanback/app/DetailsSupportFragment.java b/v17/leanback/src/android/support/v17/leanback/app/DetailsSupportFragment.java
index 8f69db2..af23da9 100644
--- a/v17/leanback/src/android/support/v17/leanback/app/DetailsSupportFragment.java
+++ b/v17/leanback/src/android/support/v17/leanback/app/DetailsSupportFragment.java
@@ -71,13 +71,16 @@
  * </p>
  */
 public class DetailsSupportFragment extends BaseSupportFragment {
-    private static final String TAG = "DetailsSupportFragment";
-    private static boolean DEBUG = false;
+    static final String TAG = "DetailsSupportFragment";
+    static boolean DEBUG = false;
 
     private class SetSelectionRunnable implements Runnable {
         int mPosition;
         boolean mSmooth = true;
 
+        SetSelectionRunnable() {
+        }
+
         @Override
         public void run() {
             if (mRowsSupportFragment == null) {
@@ -87,11 +90,11 @@
         }
     }
 
-    private RowsSupportFragment mRowsSupportFragment;
+    RowsSupportFragment mRowsSupportFragment;
 
     private ObjectAdapter mAdapter;
     private int mContainerListAlignTop;
-    private BaseOnItemViewSelectedListener mExternalOnItemViewSelectedListener;
+    BaseOnItemViewSelectedListener mExternalOnItemViewSelectedListener;
     private BaseOnItemViewClickedListener mOnItemViewClickedListener;
 
     private Object mSceneAfterEntranceTransition;
@@ -230,7 +233,7 @@
      * that setup should only change the Presenter behavior that is meaningful in DetailsSupportFragment.  For
      * example how a row is aligned in details Fragment.   The default implementation invokes
      * {@link #setupDetailsOverviewRowPresenter(FullWidthDetailsOverviewRowPresenter)}
-     * 
+     *
      */
     protected void setupPresenter(Presenter rowPresenter) {
         if (rowPresenter instanceof FullWidthDetailsOverviewRowPresenter) {
@@ -312,7 +315,7 @@
         }
     }
 
-    private void onRowSelected(int selectedPosition, int selectedSubPosition) {
+    void onRowSelected(int selectedPosition, int selectedSubPosition) {
         ObjectAdapter adapter = getAdapter();
         if (adapter == null || adapter.size() == 0 ||
                 (selectedPosition == 0 && selectedSubPosition == 0)) {
diff --git a/v17/leanback/src/android/support/v17/leanback/app/GuidedStepFragment.java b/v17/leanback/src/android/support/v17/leanback/app/GuidedStepFragment.java
index 732e39d..fa0478d 100644
--- a/v17/leanback/src/android/support/v17/leanback/app/GuidedStepFragment.java
+++ b/v17/leanback/src/android/support/v17/leanback/app/GuidedStepFragment.java
@@ -248,7 +248,7 @@
 
     private ContextThemeWrapper mThemeWrapper;
     private GuidanceStylist mGuidanceStylist;
-    private GuidedActionsStylist mActionsStylist;
+    GuidedActionsStylist mActionsStylist;
     private GuidedActionsStylist mButtonActionsStylist;
     private GuidedActionAdapter mAdapter;
     private GuidedActionAdapter mSubAdapter;
@@ -1360,7 +1360,7 @@
         return 0;
     }
 
-    private void runImeAnimations(boolean entering) {
+    void runImeAnimations(boolean entering) {
         ArrayList<Animator> animators = new ArrayList<Animator>();
         if (entering) {
             mGuidanceStylist.onImeAppearing(animators);
diff --git a/v17/leanback/src/android/support/v17/leanback/app/GuidedStepSupportFragment.java b/v17/leanback/src/android/support/v17/leanback/app/GuidedStepSupportFragment.java
index 30ada02..8174ed2 100644
--- a/v17/leanback/src/android/support/v17/leanback/app/GuidedStepSupportFragment.java
+++ b/v17/leanback/src/android/support/v17/leanback/app/GuidedStepSupportFragment.java
@@ -250,7 +250,7 @@
 
     private ContextThemeWrapper mThemeWrapper;
     private GuidanceStylist mGuidanceStylist;
-    private GuidedActionsStylist mActionsStylist;
+    GuidedActionsStylist mActionsStylist;
     private GuidedActionsStylist mButtonActionsStylist;
     private GuidedActionAdapter mAdapter;
     private GuidedActionAdapter mSubAdapter;
@@ -1362,7 +1362,7 @@
         return 0;
     }
 
-    private void runImeAnimations(boolean entering) {
+    void runImeAnimations(boolean entering) {
         ArrayList<Animator> animators = new ArrayList<Animator>();
         if (entering) {
             mGuidanceStylist.onImeAppearing(animators);
diff --git a/v17/leanback/src/android/support/v17/leanback/app/HeadersFragment.java b/v17/leanback/src/android/support/v17/leanback/app/HeadersFragment.java
index d3e76a5..18f96fe 100644
--- a/v17/leanback/src/android/support/v17/leanback/app/HeadersFragment.java
+++ b/v17/leanback/src/android/support/v17/leanback/app/HeadersFragment.java
@@ -70,7 +70,7 @@
     }
 
     private OnHeaderViewSelectedListener mOnHeaderViewSelectedListener;
-    private OnHeaderClickedListener mOnHeaderClickedListener;
+    OnHeaderClickedListener mOnHeaderClickedListener;
     private boolean mHeadersEnabled = true;
     private boolean mHeadersGone = false;
     private int mBackgroundColor;
@@ -137,7 +137,7 @@
 
     };
 
-    private static OnLayoutChangeListener sLayoutChangeListener = new OnLayoutChangeListener() {
+    static OnLayoutChangeListener sLayoutChangeListener = new OnLayoutChangeListener() {
         @Override
         public void onLayoutChange(View v, int left, int top, int right, int bottom,
             int oldLeft, int oldTop, int oldRight, int oldBottom) {
@@ -214,7 +214,7 @@
 
     // Wrapper needed because of conflict between RecyclerView's use of alpha
     // for ADD animations, and RowHeaderPresenter's use of alpha for selected level.
-    private final ItemBridgeAdapter.Wrapper mWrapper = new ItemBridgeAdapter.Wrapper() {
+    final ItemBridgeAdapter.Wrapper mWrapper = new ItemBridgeAdapter.Wrapper() {
         @Override
         public void wrap(View wrapper, View wrapped) {
             ((FrameLayout) wrapper).addView(wrapped);
diff --git a/v17/leanback/src/android/support/v17/leanback/app/HeadersSupportFragment.java b/v17/leanback/src/android/support/v17/leanback/app/HeadersSupportFragment.java
index 9e01e70..8937e08 100644
--- a/v17/leanback/src/android/support/v17/leanback/app/HeadersSupportFragment.java
+++ b/v17/leanback/src/android/support/v17/leanback/app/HeadersSupportFragment.java
@@ -72,7 +72,7 @@
     }
 
     private OnHeaderViewSelectedListener mOnHeaderViewSelectedListener;
-    private OnHeaderClickedListener mOnHeaderClickedListener;
+    OnHeaderClickedListener mOnHeaderClickedListener;
     private boolean mHeadersEnabled = true;
     private boolean mHeadersGone = false;
     private int mBackgroundColor;
@@ -139,7 +139,7 @@
 
     };
 
-    private static OnLayoutChangeListener sLayoutChangeListener = new OnLayoutChangeListener() {
+    static OnLayoutChangeListener sLayoutChangeListener = new OnLayoutChangeListener() {
         @Override
         public void onLayoutChange(View v, int left, int top, int right, int bottom,
             int oldLeft, int oldTop, int oldRight, int oldBottom) {
@@ -216,7 +216,7 @@
 
     // Wrapper needed because of conflict between RecyclerView's use of alpha
     // for ADD animations, and RowHeaderPresenter's use of alpha for selected level.
-    private final ItemBridgeAdapter.Wrapper mWrapper = new ItemBridgeAdapter.Wrapper() {
+    final ItemBridgeAdapter.Wrapper mWrapper = new ItemBridgeAdapter.Wrapper() {
         @Override
         public void wrap(View wrapper, View wrapped) {
             ((FrameLayout) wrapper).addView(wrapped);
diff --git a/v17/leanback/src/android/support/v17/leanback/app/ListRowDataAdapter.java b/v17/leanback/src/android/support/v17/leanback/app/ListRowDataAdapter.java
index e107460..59a9b1b 100644
--- a/v17/leanback/src/android/support/v17/leanback/app/ListRowDataAdapter.java
+++ b/v17/leanback/src/android/support/v17/leanback/app/ListRowDataAdapter.java
@@ -24,7 +24,7 @@
     public static final int ON_CHANGED = 16;
 
     private final ObjectAdapter mAdapter;
-    private int mLastVisibleRowIndex;
+    int mLastVisibleRowIndex;
 
     public ListRowDataAdapter(ObjectAdapter adapter) {
         super(adapter.getPresenterSelector());
@@ -43,7 +43,7 @@
         }
     }
 
-    private void initialize() {
+    void initialize() {
         int i = mAdapter.size() - 1;
         while (i >= 0) {
             Row item = (Row) mAdapter.get(i);
@@ -65,7 +65,7 @@
         return mAdapter.get(index);
     }
 
-    private void doNotify(int eventType, int positionStart, int itemCount) {
+    void doNotify(int eventType, int positionStart, int itemCount) {
         switch (eventType) {
             case ON_ITEM_RANGE_CHANGED:
                 notifyItemRangeChanged(positionStart, itemCount);
@@ -85,6 +85,9 @@
 
     private class SimpleDataObserver extends DataObserver {
 
+        SimpleDataObserver() {
+        }
+
         @Override
         public void onItemRangeChanged(int positionStart, int itemCount) {
             if (positionStart <= mLastVisibleRowIndex) {
@@ -148,6 +151,9 @@
      */
     private class QueueBasedDataObserver extends DataObserver {
 
+        QueueBasedDataObserver() {
+        }
+
         @Override
         public void onChanged() {
             initialize();
diff --git a/v17/leanback/src/android/support/v17/leanback/app/MediaControllerGlue.java b/v17/leanback/src/android/support/v17/leanback/app/MediaControllerGlue.java
index 2f04229..27ccd06 100644
--- a/v17/leanback/src/android/support/v17/leanback/app/MediaControllerGlue.java
+++ b/v17/leanback/src/android/support/v17/leanback/app/MediaControllerGlue.java
@@ -16,10 +16,10 @@
  * {@link android.support.v4.media.session.MediaControllerCompat}.
  */
 public abstract class MediaControllerGlue extends PlaybackControlGlue {
-    private static final String TAG = "MediaControllerGlue";
-    private static final boolean DEBUG = false;
+    static final String TAG = "MediaControllerGlue";
+    static final boolean DEBUG = false;
 
-    private MediaControllerCompat mMediaController;
+    MediaControllerCompat mMediaController;
 
     private final MediaControllerCompat.Callback mCallback = new MediaControllerCompat.Callback() {
         @Override
diff --git a/v17/leanback/src/android/support/v17/leanback/app/OnboardingFragment.java b/v17/leanback/src/android/support/v17/leanback/app/OnboardingFragment.java
index bfd0f14..16d3ed1 100644
--- a/v17/leanback/src/android/support/v17/leanback/app/OnboardingFragment.java
+++ b/v17/leanback/src/android/support/v17/leanback/app/OnboardingFragment.java
@@ -168,19 +168,19 @@
 
     private ContextThemeWrapper mThemeWrapper;
 
-    private PagingIndicator mPageIndicator;
-    private View mStartButton;
+    PagingIndicator mPageIndicator;
+    View mStartButton;
     private ImageView mLogoView;
-    private TextView mTitleView;
-    private TextView mDescriptionView;
+    TextView mTitleView;
+    TextView mDescriptionView;
 
-    private boolean mIsLtr;
+    boolean mIsLtr;
 
     // No need to save/restore the logo resource ID, because the logo animation will not appear when
     // the fragment is restored.
     private int mLogoResourceId;
-    private boolean mEnterTransitionFinished;
-    private int mCurrentPageIndex;
+    boolean mEnterTransitionFinished;
+    int mCurrentPageIndex;
 
     private AnimatorSet mAnimator;
 
@@ -235,13 +235,13 @@
         }
     };
 
-    private void moveToPreviousPage() {
+    void moveToPreviousPage() {
         if (mCurrentPageIndex > 0) {
             --mCurrentPageIndex;
             onPageChangedInternal(mCurrentPageIndex + 1);
         }
     }
-    private void moveToNextPage() {
+    void moveToNextPage() {
         if (mCurrentPageIndex < getPageCount() - 1) {
             ++mCurrentPageIndex;
             onPageChangedInternal(mCurrentPageIndex - 1);
@@ -365,7 +365,7 @@
         return null;
     }
 
-    private boolean startLogoAnimation() {
+    boolean startLogoAnimation() {
         Animator animator = null;
         if (mLogoResourceId != 0) {
             mLogoView.setVisibility(View.VISIBLE);
@@ -449,7 +449,7 @@
         mDescriptionView.setText(getPageDescription(mCurrentPageIndex));
     }
 
-    private void startEnterAnimation() {
+    void startEnterAnimation() {
         mEnterTransitionFinished = true;
         initializeViews(getView());
         List<Animator> animators = new ArrayList<>();
diff --git a/v17/leanback/src/android/support/v17/leanback/app/OnboardingSupportFragment.java b/v17/leanback/src/android/support/v17/leanback/app/OnboardingSupportFragment.java
index d873f61..076b61e 100644
--- a/v17/leanback/src/android/support/v17/leanback/app/OnboardingSupportFragment.java
+++ b/v17/leanback/src/android/support/v17/leanback/app/OnboardingSupportFragment.java
@@ -170,19 +170,19 @@
 
     private ContextThemeWrapper mThemeWrapper;
 
-    private PagingIndicator mPageIndicator;
-    private View mStartButton;
+    PagingIndicator mPageIndicator;
+    View mStartButton;
     private ImageView mLogoView;
-    private TextView mTitleView;
-    private TextView mDescriptionView;
+    TextView mTitleView;
+    TextView mDescriptionView;
 
-    private boolean mIsLtr;
+    boolean mIsLtr;
 
     // No need to save/restore the logo resource ID, because the logo animation will not appear when
     // the fragment is restored.
     private int mLogoResourceId;
-    private boolean mEnterTransitionFinished;
-    private int mCurrentPageIndex;
+    boolean mEnterTransitionFinished;
+    int mCurrentPageIndex;
 
     private AnimatorSet mAnimator;
 
@@ -237,13 +237,13 @@
         }
     };
 
-    private void moveToPreviousPage() {
+    void moveToPreviousPage() {
         if (mCurrentPageIndex > 0) {
             --mCurrentPageIndex;
             onPageChangedInternal(mCurrentPageIndex + 1);
         }
     }
-    private void moveToNextPage() {
+    void moveToNextPage() {
         if (mCurrentPageIndex < getPageCount() - 1) {
             ++mCurrentPageIndex;
             onPageChangedInternal(mCurrentPageIndex - 1);
@@ -367,7 +367,7 @@
         return null;
     }
 
-    private boolean startLogoAnimation() {
+    boolean startLogoAnimation() {
         Animator animator = null;
         if (mLogoResourceId != 0) {
             mLogoView.setVisibility(View.VISIBLE);
@@ -451,7 +451,7 @@
         mDescriptionView.setText(getPageDescription(mCurrentPageIndex));
     }
 
-    private void startEnterAnimation() {
+    void startEnterAnimation() {
         mEnterTransitionFinished = true;
         initializeViews(getView());
         List<Animator> animators = new ArrayList<>();
diff --git a/v17/leanback/src/android/support/v17/leanback/app/PlaybackControlGlue.java b/v17/leanback/src/android/support/v17/leanback/app/PlaybackControlGlue.java
index 2a2df3c..004f6f0 100644
--- a/v17/leanback/src/android/support/v17/leanback/app/PlaybackControlGlue.java
+++ b/v17/leanback/src/android/support/v17/leanback/app/PlaybackControlGlue.java
@@ -155,10 +155,10 @@
      */
     public static final int PLAYBACK_SPEED_FAST_L4 = 14;
 
-    private static final String TAG = "PlaybackControlGlue";
-    private static final boolean DEBUG = false;
+    static final String TAG = "PlaybackControlGlue";
+    static final boolean DEBUG = false;
 
-    private static final int MSG_UPDATE_PLAYBACK_STATE = 100;
+    static final int MSG_UPDATE_PLAYBACK_STATE = 100;
     private static final int UPDATE_PLAYBACK_STATE_DELAY_MS = 2000;
     private static final int NUMBER_OF_SEEK_SPEEDS = PLAYBACK_SPEED_FAST_L4 -
             PLAYBACK_SPEED_FAST_L0 + 1;
@@ -174,7 +174,7 @@
     private PlaybackControlsRow.SkipPreviousAction mSkipPreviousAction;
     private PlaybackControlsRow.FastForwardAction mFastForwardAction;
     private PlaybackControlsRow.RewindAction mRewindAction;
-    private OnItemViewClickedListener mExternalOnItemViewClickedListener;
+    OnItemViewClickedListener mExternalOnItemViewClickedListener;
     private int mPlaybackSpeed = PLAYBACK_SPEED_NORMAL;
     private boolean mFadeWhenPlaying = true;
 
@@ -483,7 +483,7 @@
     /**
      * Called when the given action is invoked, either by click or keyevent.
      */
-    private boolean dispatchAction(Action action, KeyEvent keyEvent) {
+    boolean dispatchAction(Action action, KeyEvent keyEvent) {
         boolean handled = false;
         if (action == mPlayPauseAction) {
             boolean canPlay = keyEvent == null ||
@@ -589,7 +589,7 @@
         onRowChanged(mControlsRow);
     }
 
-    private void updatePlaybackState() {
+    void updatePlaybackState() {
         if (hasValidMedia()) {
             mPlaybackSpeed = getCurrentSpeedId();
             updatePlaybackState(mPlaybackSpeed);
diff --git a/v17/leanback/src/android/support/v17/leanback/app/PlaybackControlSupportGlue.java b/v17/leanback/src/android/support/v17/leanback/app/PlaybackControlSupportGlue.java
index 9adbbb9..1e1eab5 100644
--- a/v17/leanback/src/android/support/v17/leanback/app/PlaybackControlSupportGlue.java
+++ b/v17/leanback/src/android/support/v17/leanback/app/PlaybackControlSupportGlue.java
@@ -157,10 +157,10 @@
      */
     public static final int PLAYBACK_SPEED_FAST_L4 = 14;
 
-    private static final String TAG = "PlaybackControlSupportGlue";
-    private static final boolean DEBUG = false;
+    static final String TAG = "PlaybackControlSupportGlue";
+    static final boolean DEBUG = false;
 
-    private static final int MSG_UPDATE_PLAYBACK_STATE = 100;
+    static final int MSG_UPDATE_PLAYBACK_STATE = 100;
     private static final int UPDATE_PLAYBACK_STATE_DELAY_MS = 2000;
     private static final int NUMBER_OF_SEEK_SPEEDS = PLAYBACK_SPEED_FAST_L4 -
             PLAYBACK_SPEED_FAST_L0 + 1;
@@ -176,7 +176,7 @@
     private PlaybackControlsRow.SkipPreviousAction mSkipPreviousAction;
     private PlaybackControlsRow.FastForwardAction mFastForwardAction;
     private PlaybackControlsRow.RewindAction mRewindAction;
-    private OnItemViewClickedListener mExternalOnItemViewClickedListener;
+    OnItemViewClickedListener mExternalOnItemViewClickedListener;
     private int mPlaybackSpeed = PLAYBACK_SPEED_NORMAL;
     private boolean mFadeWhenPlaying = true;
 
@@ -485,7 +485,7 @@
     /**
      * Called when the given action is invoked, either by click or keyevent.
      */
-    private boolean dispatchAction(Action action, KeyEvent keyEvent) {
+    boolean dispatchAction(Action action, KeyEvent keyEvent) {
         boolean handled = false;
         if (action == mPlayPauseAction) {
             boolean canPlay = keyEvent == null ||
@@ -591,7 +591,7 @@
         onRowChanged(mControlsRow);
     }
 
-    private void updatePlaybackState() {
+    void updatePlaybackState() {
         if (hasValidMedia()) {
             mPlaybackSpeed = getCurrentSpeedId();
             updatePlaybackState(mPlaybackSpeed);
diff --git a/v17/leanback/src/android/support/v17/leanback/app/PlaybackOverlayFragment.java b/v17/leanback/src/android/support/v17/leanback/app/PlaybackOverlayFragment.java
index eaabd72..59e22d7 100644
--- a/v17/leanback/src/android/support/v17/leanback/app/PlaybackOverlayFragment.java
+++ b/v17/leanback/src/android/support/v17/leanback/app/PlaybackOverlayFragment.java
@@ -102,16 +102,16 @@
         public boolean handleInputEvent(InputEvent event);
     }
 
-    private static final String TAG = "PlaybackOverlayFragment";
-    private static final boolean DEBUG = false;
+    static final String TAG = "PlaybackOverlayFragment";
+    static final boolean DEBUG = false;
     private static final int ANIMATION_MULTIPLIER = 1;
 
-    private static int START_FADE_OUT = 1;
+    static int START_FADE_OUT = 1;
 
     // Fading status
-    private static final int IDLE = 0;
+    static final int IDLE = 0;
     private static final int IN = 1;
-    private static final int OUT = 2;
+    static final int OUT = 2;
 
     private int mPaddingTop;
     private int mPaddingBottom;
@@ -121,18 +121,18 @@
     private int mBgLightColor;
     private int mShowTimeMs;
     private int mMajorFadeTranslateY, mMinorFadeTranslateY;
-    private int mAnimationTranslateY;
-    private OnFadeCompleteListener mFadeCompleteListener;
+    int mAnimationTranslateY;
+    OnFadeCompleteListener mFadeCompleteListener;
     private InputEventHandler mInputEventHandler;
-    private boolean mFadingEnabled = true;
-    private int mFadingStatus = IDLE;
-    private int mBgAlpha;
+    boolean mFadingEnabled = true;
+    int mFadingStatus = IDLE;
+    int mBgAlpha;
     private ValueAnimator mBgFadeInAnimator, mBgFadeOutAnimator;
     private ValueAnimator mControlRowFadeInAnimator, mControlRowFadeOutAnimator;
     private ValueAnimator mDescriptionFadeInAnimator, mDescriptionFadeOutAnimator;
     private ValueAnimator mOtherRowFadeInAnimator, mOtherRowFadeOutAnimator;
     private boolean mTranslateAnimationEnabled;
-    private boolean mResetControlsToPrimaryActionsPending;
+    boolean mResetControlsToPrimaryActionsPending;
     private RecyclerView.ItemAnimator mItemAnimator;
 
     private final Animator.AnimatorListener mFadeListener =
@@ -195,20 +195,20 @@
         }
     };
 
-    private void setBgAlpha(int alpha) {
+    void setBgAlpha(int alpha) {
         mBgAlpha = alpha;
         if (mRootView != null) {
             mRootView.getBackground().setAlpha(alpha);
         }
     }
 
-    private void enableVerticalGridAnimations(boolean enable) {
+    void enableVerticalGridAnimations(boolean enable) {
         if (getVerticalGridView() != null) {
             getVerticalGridView().setAnimateChildLayout(enable);
         }
     }
 
-    private void resetControlsToPrimaryActions(ItemBridgeAdapter.ViewHolder vh) {
+    void resetControlsToPrimaryActions(ItemBridgeAdapter.ViewHolder vh) {
         if (vh == null && getVerticalGridView() != null) {
             vh = (ItemBridgeAdapter.ViewHolder) getVerticalGridView().findViewHolderForPosition(0);
         }
@@ -310,7 +310,7 @@
         return mFadingStatus == IDLE && mBgAlpha == 0;
     }
 
-    private boolean onInterceptInputEvent(InputEvent event) {
+    boolean onInterceptInputEvent(InputEvent event) {
         final boolean controlsHidden = areControlsHidden();
         if (DEBUG) Log.v(TAG, "onInterceptInputEvent hidden " + controlsHidden + " " + event);
         boolean consumeEvent = false;
@@ -367,7 +367,7 @@
         getVerticalGridView().setOnKeyInterceptListener(mOnKeyInterceptListener);
     }
 
-    private void startFadeTimer() {
+    void startFadeTimer() {
         if (mHandler != null) {
             mHandler.removeMessages(START_FADE_OUT);
             mHandler.sendEmptyMessageDelayed(START_FADE_OUT, mShowTimeMs);
@@ -400,7 +400,7 @@
     private TimeInterpolator mLogDecelerateInterpolator = new LogDecelerateInterpolator(100,0);
     private TimeInterpolator mLogAccelerateInterpolator = new LogAccelerateInterpolator(100,0);
 
-    private View getControlRowView() {
+    View getControlRowView() {
         if (getVerticalGridView() == null) {
             return null;
         }
@@ -522,7 +522,7 @@
         mDescriptionFadeOutAnimator.addUpdateListener(listener);
     }
 
-    private void fade(boolean fadeIn) {
+    void fade(boolean fadeIn) {
         if (DEBUG) Log.v(TAG, "fade " + fadeIn);
         if (getView() == null) {
             return;
@@ -679,7 +679,7 @@
         }
     }
 
-    private void updateControlsBottomSpace(ItemBridgeAdapter.ViewHolder vh) {
+    void updateControlsBottomSpace(ItemBridgeAdapter.ViewHolder vh) {
         // Add extra space between rows 0 and 1
         if (vh == null && getVerticalGridView() != null) {
             vh = (ItemBridgeAdapter.ViewHolder)
diff --git a/v17/leanback/src/android/support/v17/leanback/app/PlaybackOverlaySupportFragment.java b/v17/leanback/src/android/support/v17/leanback/app/PlaybackOverlaySupportFragment.java
index d35614c..eb2a8c3 100644
--- a/v17/leanback/src/android/support/v17/leanback/app/PlaybackOverlaySupportFragment.java
+++ b/v17/leanback/src/android/support/v17/leanback/app/PlaybackOverlaySupportFragment.java
@@ -104,16 +104,16 @@
         public boolean handleInputEvent(InputEvent event);
     }
 
-    private static final String TAG = "PlaybackOverlaySupportFragment";
-    private static final boolean DEBUG = false;
+    static final String TAG = "PlaybackOverlaySupportFragment";
+    static final boolean DEBUG = false;
     private static final int ANIMATION_MULTIPLIER = 1;
 
-    private static int START_FADE_OUT = 1;
+    static int START_FADE_OUT = 1;
 
     // Fading status
-    private static final int IDLE = 0;
+    static final int IDLE = 0;
     private static final int IN = 1;
-    private static final int OUT = 2;
+    static final int OUT = 2;
 
     private int mPaddingTop;
     private int mPaddingBottom;
@@ -123,18 +123,18 @@
     private int mBgLightColor;
     private int mShowTimeMs;
     private int mMajorFadeTranslateY, mMinorFadeTranslateY;
-    private int mAnimationTranslateY;
-    private OnFadeCompleteListener mFadeCompleteListener;
+    int mAnimationTranslateY;
+    OnFadeCompleteListener mFadeCompleteListener;
     private InputEventHandler mInputEventHandler;
-    private boolean mFadingEnabled = true;
-    private int mFadingStatus = IDLE;
-    private int mBgAlpha;
+    boolean mFadingEnabled = true;
+    int mFadingStatus = IDLE;
+    int mBgAlpha;
     private ValueAnimator mBgFadeInAnimator, mBgFadeOutAnimator;
     private ValueAnimator mControlRowFadeInAnimator, mControlRowFadeOutAnimator;
     private ValueAnimator mDescriptionFadeInAnimator, mDescriptionFadeOutAnimator;
     private ValueAnimator mOtherRowFadeInAnimator, mOtherRowFadeOutAnimator;
     private boolean mTranslateAnimationEnabled;
-    private boolean mResetControlsToPrimaryActionsPending;
+    boolean mResetControlsToPrimaryActionsPending;
     private RecyclerView.ItemAnimator mItemAnimator;
 
     private final Animator.AnimatorListener mFadeListener =
@@ -197,20 +197,20 @@
         }
     };
 
-    private void setBgAlpha(int alpha) {
+    void setBgAlpha(int alpha) {
         mBgAlpha = alpha;
         if (mRootView != null) {
             mRootView.getBackground().setAlpha(alpha);
         }
     }
 
-    private void enableVerticalGridAnimations(boolean enable) {
+    void enableVerticalGridAnimations(boolean enable) {
         if (getVerticalGridView() != null) {
             getVerticalGridView().setAnimateChildLayout(enable);
         }
     }
 
-    private void resetControlsToPrimaryActions(ItemBridgeAdapter.ViewHolder vh) {
+    void resetControlsToPrimaryActions(ItemBridgeAdapter.ViewHolder vh) {
         if (vh == null && getVerticalGridView() != null) {
             vh = (ItemBridgeAdapter.ViewHolder) getVerticalGridView().findViewHolderForPosition(0);
         }
@@ -312,7 +312,7 @@
         return mFadingStatus == IDLE && mBgAlpha == 0;
     }
 
-    private boolean onInterceptInputEvent(InputEvent event) {
+    boolean onInterceptInputEvent(InputEvent event) {
         final boolean controlsHidden = areControlsHidden();
         if (DEBUG) Log.v(TAG, "onInterceptInputEvent hidden " + controlsHidden + " " + event);
         boolean consumeEvent = false;
@@ -369,7 +369,7 @@
         getVerticalGridView().setOnKeyInterceptListener(mOnKeyInterceptListener);
     }
 
-    private void startFadeTimer() {
+    void startFadeTimer() {
         if (mHandler != null) {
             mHandler.removeMessages(START_FADE_OUT);
             mHandler.sendEmptyMessageDelayed(START_FADE_OUT, mShowTimeMs);
@@ -402,7 +402,7 @@
     private TimeInterpolator mLogDecelerateInterpolator = new LogDecelerateInterpolator(100,0);
     private TimeInterpolator mLogAccelerateInterpolator = new LogAccelerateInterpolator(100,0);
 
-    private View getControlRowView() {
+    View getControlRowView() {
         if (getVerticalGridView() == null) {
             return null;
         }
@@ -524,7 +524,7 @@
         mDescriptionFadeOutAnimator.addUpdateListener(listener);
     }
 
-    private void fade(boolean fadeIn) {
+    void fade(boolean fadeIn) {
         if (DEBUG) Log.v(TAG, "fade " + fadeIn);
         if (getView() == null) {
             return;
@@ -681,7 +681,7 @@
         }
     }
 
-    private void updateControlsBottomSpace(ItemBridgeAdapter.ViewHolder vh) {
+    void updateControlsBottomSpace(ItemBridgeAdapter.ViewHolder vh) {
         // Add extra space between rows 0 and 1
         if (vh == null && getVerticalGridView() != null) {
             vh = (ItemBridgeAdapter.ViewHolder)
diff --git a/v17/leanback/src/android/support/v17/leanback/app/ProgressBarManager.java b/v17/leanback/src/android/support/v17/leanback/app/ProgressBarManager.java
index e05ca0c..c9a2b87 100644
--- a/v17/leanback/src/android/support/v17/leanback/app/ProgressBarManager.java
+++ b/v17/leanback/src/android/support/v17/leanback/app/ProgressBarManager.java
@@ -18,12 +18,12 @@
     private static final long DEFAULT_PROGRESS_BAR_DELAY = 1000;
 
     private long mInitialDelay = DEFAULT_PROGRESS_BAR_DELAY;
-    private ViewGroup rootView;
-    private View mProgressBarView;
+    ViewGroup rootView;
+    View mProgressBarView;
     private Handler mHandler = new Handler();
-    private boolean mEnableProgressBar = true;
-    private boolean mUserProvidedProgressBar;
-    private boolean mIsShowing;
+    boolean mEnableProgressBar = true;
+    boolean mUserProvidedProgressBar;
+    boolean mIsShowing;
 
     private Runnable runnable = new Runnable() {
         @Override
diff --git a/v17/leanback/src/android/support/v17/leanback/app/RowsFragment.java b/v17/leanback/src/android/support/v17/leanback/app/RowsFragment.java
index 6a667d6..7b93115 100644
--- a/v17/leanback/src/android/support/v17/leanback/app/RowsFragment.java
+++ b/v17/leanback/src/android/support/v17/leanback/app/RowsFragment.java
@@ -131,18 +131,18 @@
 
     }
 
-    private static final String TAG = "RowsFragment";
-    private static final boolean DEBUG = false;
+    static final String TAG = "RowsFragment";
+    static final boolean DEBUG = false;
 
-    private ItemBridgeAdapter.ViewHolder mSelectedViewHolder;
+    ItemBridgeAdapter.ViewHolder mSelectedViewHolder;
     private int mSubPosition;
-    private boolean mExpand = true;
-    private boolean mViewsCreated;
+    boolean mExpand = true;
+    boolean mViewsCreated;
     private int mAlignedTop;
-    private boolean mAfterEntranceTransition = true;
+    boolean mAfterEntranceTransition = true;
 
-    private BaseOnItemViewSelectedListener mOnItemViewSelectedListener;
-    private BaseOnItemViewClickedListener mOnItemViewClickedListener;
+    BaseOnItemViewSelectedListener mOnItemViewSelectedListener;
+    BaseOnItemViewClickedListener mOnItemViewClickedListener;
 
     // Select animation and interpolator are not intended to be
     // exposed at this moment. They might be synced with vertical scroll
@@ -153,7 +153,7 @@
     private RecyclerView.RecycledViewPool mRecycledViewPool;
     private ArrayList<Presenter> mPresenterMapper;
 
-    private ItemBridgeAdapter.AdapterListener mExternalAdapterListener;
+    ItemBridgeAdapter.AdapterListener mExternalAdapterListener;
 
     @Override
     protected VerticalGridView findGridViewFromRoot(View view) {
@@ -311,11 +311,11 @@
         mExternalAdapterListener = listener;
     }
 
-    private static void setRowViewExpanded(ItemBridgeAdapter.ViewHolder vh, boolean expanded) {
+    static void setRowViewExpanded(ItemBridgeAdapter.ViewHolder vh, boolean expanded) {
         ((RowPresenter) vh.getPresenter()).setRowViewExpanded(vh.getViewHolder(), expanded);
     }
 
-    private static void setRowViewSelected(ItemBridgeAdapter.ViewHolder vh, boolean selected,
+    static void setRowViewSelected(ItemBridgeAdapter.ViewHolder vh, boolean selected,
             boolean immediate) {
         RowViewHolderExtra extra = (RowViewHolderExtra) vh.getExtraObject();
         extra.animateSelect(selected, immediate);
@@ -396,7 +396,7 @@
         }
     };
 
-    private void setupSharedViewPool(ItemBridgeAdapter.ViewHolder bridgeVh) {
+    void setupSharedViewPool(ItemBridgeAdapter.ViewHolder bridgeVh) {
         RowPresenter rowPresenter = (RowPresenter) bridgeVh.getPresenter();
         RowPresenter.ViewHolder rowVh = rowPresenter.getRowViewHolder(bridgeVh.getViewHolder());
 
diff --git a/v17/leanback/src/android/support/v17/leanback/app/RowsSupportFragment.java b/v17/leanback/src/android/support/v17/leanback/app/RowsSupportFragment.java
index ed79a36..4086658 100644
--- a/v17/leanback/src/android/support/v17/leanback/app/RowsSupportFragment.java
+++ b/v17/leanback/src/android/support/v17/leanback/app/RowsSupportFragment.java
@@ -133,18 +133,18 @@
 
     }
 
-    private static final String TAG = "RowsSupportFragment";
-    private static final boolean DEBUG = false;
+    static final String TAG = "RowsSupportFragment";
+    static final boolean DEBUG = false;
 
-    private ItemBridgeAdapter.ViewHolder mSelectedViewHolder;
+    ItemBridgeAdapter.ViewHolder mSelectedViewHolder;
     private int mSubPosition;
-    private boolean mExpand = true;
-    private boolean mViewsCreated;
+    boolean mExpand = true;
+    boolean mViewsCreated;
     private int mAlignedTop;
-    private boolean mAfterEntranceTransition = true;
+    boolean mAfterEntranceTransition = true;
 
-    private BaseOnItemViewSelectedListener mOnItemViewSelectedListener;
-    private BaseOnItemViewClickedListener mOnItemViewClickedListener;
+    BaseOnItemViewSelectedListener mOnItemViewSelectedListener;
+    BaseOnItemViewClickedListener mOnItemViewClickedListener;
 
     // Select animation and interpolator are not intended to be
     // exposed at this moment. They might be synced with vertical scroll
@@ -155,7 +155,7 @@
     private RecyclerView.RecycledViewPool mRecycledViewPool;
     private ArrayList<Presenter> mPresenterMapper;
 
-    private ItemBridgeAdapter.AdapterListener mExternalAdapterListener;
+    ItemBridgeAdapter.AdapterListener mExternalAdapterListener;
 
     @Override
     protected VerticalGridView findGridViewFromRoot(View view) {
@@ -313,11 +313,11 @@
         mExternalAdapterListener = listener;
     }
 
-    private static void setRowViewExpanded(ItemBridgeAdapter.ViewHolder vh, boolean expanded) {
+    static void setRowViewExpanded(ItemBridgeAdapter.ViewHolder vh, boolean expanded) {
         ((RowPresenter) vh.getPresenter()).setRowViewExpanded(vh.getViewHolder(), expanded);
     }
 
-    private static void setRowViewSelected(ItemBridgeAdapter.ViewHolder vh, boolean selected,
+    static void setRowViewSelected(ItemBridgeAdapter.ViewHolder vh, boolean selected,
             boolean immediate) {
         RowViewHolderExtra extra = (RowViewHolderExtra) vh.getExtraObject();
         extra.animateSelect(selected, immediate);
@@ -398,7 +398,7 @@
         }
     };
 
-    private void setupSharedViewPool(ItemBridgeAdapter.ViewHolder bridgeVh) {
+    void setupSharedViewPool(ItemBridgeAdapter.ViewHolder bridgeVh) {
         RowPresenter rowPresenter = (RowPresenter) bridgeVh.getPresenter();
         RowPresenter.ViewHolder rowVh = rowPresenter.getRowViewHolder(bridgeVh.getViewHolder());
 
diff --git a/v17/leanback/src/android/support/v17/leanback/app/SearchFragment.java b/v17/leanback/src/android/support/v17/leanback/app/SearchFragment.java
index 01ba0bf..70393c4 100644
--- a/v17/leanback/src/android/support/v17/leanback/app/SearchFragment.java
+++ b/v17/leanback/src/android/support/v17/leanback/app/SearchFragment.java
@@ -65,20 +65,20 @@
  * </p>
  */
 public class SearchFragment extends Fragment {
-    private static final String TAG = SearchFragment.class.getSimpleName();
-    private static final boolean DEBUG = false;
+    static final String TAG = SearchFragment.class.getSimpleName();
+    static final boolean DEBUG = false;
 
     private static final String EXTRA_LEANBACK_BADGE_PRESENT = "LEANBACK_BADGE_PRESENT";
     private static final String ARG_PREFIX = SearchFragment.class.getCanonicalName();
     private static final String ARG_QUERY =  ARG_PREFIX + ".query";
     private static final String ARG_TITLE = ARG_PREFIX  + ".title";
 
-    private static final long SPEECH_RECOGNITION_DELAY_MS = 300;
+    static final long SPEECH_RECOGNITION_DELAY_MS = 300;
 
-    private static final int RESULTS_CHANGED = 0x1;
-    private static final int QUERY_COMPLETE = 0x2;
+    static final int RESULTS_CHANGED = 0x1;
+    static final int QUERY_COMPLETE = 0x2;
 
-    private static final int AUDIO_PERMISSION_REQUEST_CODE = 0;
+    static final int AUDIO_PERMISSION_REQUEST_CODE = 0;
 
     /**
      * Search API to be provided by the application.
@@ -119,7 +119,7 @@
         public boolean onQueryTextSubmit(String query);
     }
 
-    private final DataObserver mAdapterObserver = new DataObserver() {
+    final DataObserver mAdapterObserver = new DataObserver() {
         @Override
         public void onChanged() {
             // onChanged() may be called multiple times e.g. the provider add
@@ -129,9 +129,9 @@
         }
     };
 
-    private final Handler mHandler = new Handler();
+    final Handler mHandler = new Handler();
 
-    private final Runnable mResultsChangedCallback = new Runnable() {
+    final Runnable mResultsChangedCallback = new Runnable() {
         @Override
         public void run() {
             if (DEBUG) Log.v(TAG, "results changed, new size " + mResultAdapter.size());
@@ -194,7 +194,7 @@
         }
     };
 
-    private final Runnable mStartRecognitionRunnable = new Runnable() {
+    final Runnable mStartRecognitionRunnable = new Runnable() {
         @Override
         public void run() {
             mAutoStartRecognition = false;
@@ -202,14 +202,14 @@
         }
     };
 
-    private RowsFragment mRowsFragment;
-    private SearchBar mSearchBar;
-    private SearchResultProvider mProvider;
-    private String mPendingQuery = null;
+    RowsFragment mRowsFragment;
+    SearchBar mSearchBar;
+    SearchResultProvider mProvider;
+    String mPendingQuery = null;
 
-    private OnItemViewSelectedListener mOnItemViewSelectedListener;
+    OnItemViewSelectedListener mOnItemViewSelectedListener;
     private OnItemViewClickedListener mOnItemViewClickedListener;
-    private ObjectAdapter mResultAdapter;
+    ObjectAdapter mResultAdapter;
     private SpeechRecognitionCallback mSpeechRecognitionCallback;
 
     private String mTitle;
@@ -218,8 +218,8 @@
 
     private SpeechRecognizer mSpeechRecognizer;
 
-    private int mStatus;
-    private boolean mAutoStartRecognition = true;
+    int mStatus;
+    boolean mAutoStartRecognition = true;
 
     private boolean mIsPaused;
     private boolean mPendingStartRecognitionWhenPaused;
@@ -613,33 +613,33 @@
         return recognizerIntent;
     }
 
-    private void retrieveResults(String searchQuery) {
+    void retrieveResults(String searchQuery) {
         if (DEBUG) Log.v(TAG, "retrieveResults " + searchQuery);
         if (mProvider.onQueryTextChange(searchQuery)) {
             mStatus &= ~QUERY_COMPLETE;
         }
     }
 
-    private void submitQuery(String query) {
+    void submitQuery(String query) {
         queryComplete();
         if (null != mProvider) {
             mProvider.onQueryTextSubmit(query);
         }
     }
 
-    private void queryComplete() {
+    void queryComplete() {
         if (DEBUG) Log.v(TAG, "queryComplete");
         mStatus |= QUERY_COMPLETE;
         focusOnResults();
     }
 
-    private void updateSearchBarVisibility() {
+    void updateSearchBarVisibility() {
         int position = mRowsFragment != null ? mRowsFragment.getSelectedPosition() : -1;
         mSearchBar.setVisibility(position <=0 || mResultAdapter == null
                 || mResultAdapter.size() == 0 ? View.VISIBLE : View.GONE);
     }
 
-    private void updateSearchBarNextFocusId() {
+    void updateSearchBarNextFocusId() {
         if (mSearchBar == null || mResultAdapter == null) {
             return;
         }
@@ -649,7 +649,7 @@
         mSearchBar.setNextFocusDownId(viewId);
     }
 
-    private void updateFocus() {
+    void updateFocus() {
         if (mResultAdapter != null && mResultAdapter.size() > 0 &&
                 mRowsFragment != null && mRowsFragment.getAdapter() == mResultAdapter) {
             focusOnResults();
@@ -674,14 +674,14 @@
         mHandler.post(mSetSearchResultProvider);
     }
 
-    private void releaseAdapter() {
+    void releaseAdapter() {
         if (mResultAdapter != null) {
             mResultAdapter.unregisterObserver(mAdapterObserver);
             mResultAdapter = null;
         }
     }
 
-    private void executePendingQuery() {
+    void executePendingQuery() {
         if (null != mPendingQuery && null != mResultAdapter) {
             String query = mPendingQuery;
             mPendingQuery = null;
diff --git a/v17/leanback/src/android/support/v17/leanback/app/SearchSupportFragment.java b/v17/leanback/src/android/support/v17/leanback/app/SearchSupportFragment.java
index 27c4099..7b9582c 100644
--- a/v17/leanback/src/android/support/v17/leanback/app/SearchSupportFragment.java
+++ b/v17/leanback/src/android/support/v17/leanback/app/SearchSupportFragment.java
@@ -67,20 +67,20 @@
  * </p>
  */
 public class SearchSupportFragment extends Fragment {
-    private static final String TAG = SearchSupportFragment.class.getSimpleName();
-    private static final boolean DEBUG = false;
+    static final String TAG = SearchSupportFragment.class.getSimpleName();
+    static final boolean DEBUG = false;
 
     private static final String EXTRA_LEANBACK_BADGE_PRESENT = "LEANBACK_BADGE_PRESENT";
     private static final String ARG_PREFIX = SearchSupportFragment.class.getCanonicalName();
     private static final String ARG_QUERY =  ARG_PREFIX + ".query";
     private static final String ARG_TITLE = ARG_PREFIX  + ".title";
 
-    private static final long SPEECH_RECOGNITION_DELAY_MS = 300;
+    static final long SPEECH_RECOGNITION_DELAY_MS = 300;
 
-    private static final int RESULTS_CHANGED = 0x1;
-    private static final int QUERY_COMPLETE = 0x2;
+    static final int RESULTS_CHANGED = 0x1;
+    static final int QUERY_COMPLETE = 0x2;
 
-    private static final int AUDIO_PERMISSION_REQUEST_CODE = 0;
+    static final int AUDIO_PERMISSION_REQUEST_CODE = 0;
 
     /**
      * Search API to be provided by the application.
@@ -121,7 +121,7 @@
         public boolean onQueryTextSubmit(String query);
     }
 
-    private final DataObserver mAdapterObserver = new DataObserver() {
+    final DataObserver mAdapterObserver = new DataObserver() {
         @Override
         public void onChanged() {
             // onChanged() may be called multiple times e.g. the provider add
@@ -131,9 +131,9 @@
         }
     };
 
-    private final Handler mHandler = new Handler();
+    final Handler mHandler = new Handler();
 
-    private final Runnable mResultsChangedCallback = new Runnable() {
+    final Runnable mResultsChangedCallback = new Runnable() {
         @Override
         public void run() {
             if (DEBUG) Log.v(TAG, "results changed, new size " + mResultAdapter.size());
@@ -196,7 +196,7 @@
         }
     };
 
-    private final Runnable mStartRecognitionRunnable = new Runnable() {
+    final Runnable mStartRecognitionRunnable = new Runnable() {
         @Override
         public void run() {
             mAutoStartRecognition = false;
@@ -204,14 +204,14 @@
         }
     };
 
-    private RowsSupportFragment mRowsSupportFragment;
-    private SearchBar mSearchBar;
-    private SearchResultProvider mProvider;
-    private String mPendingQuery = null;
+    RowsSupportFragment mRowsSupportFragment;
+    SearchBar mSearchBar;
+    SearchResultProvider mProvider;
+    String mPendingQuery = null;
 
-    private OnItemViewSelectedListener mOnItemViewSelectedListener;
+    OnItemViewSelectedListener mOnItemViewSelectedListener;
     private OnItemViewClickedListener mOnItemViewClickedListener;
-    private ObjectAdapter mResultAdapter;
+    ObjectAdapter mResultAdapter;
     private SpeechRecognitionCallback mSpeechRecognitionCallback;
 
     private String mTitle;
@@ -220,8 +220,8 @@
 
     private SpeechRecognizer mSpeechRecognizer;
 
-    private int mStatus;
-    private boolean mAutoStartRecognition = true;
+    int mStatus;
+    boolean mAutoStartRecognition = true;
 
     private boolean mIsPaused;
     private boolean mPendingStartRecognitionWhenPaused;
@@ -615,33 +615,33 @@
         return recognizerIntent;
     }
 
-    private void retrieveResults(String searchQuery) {
+    void retrieveResults(String searchQuery) {
         if (DEBUG) Log.v(TAG, "retrieveResults " + searchQuery);
         if (mProvider.onQueryTextChange(searchQuery)) {
             mStatus &= ~QUERY_COMPLETE;
         }
     }
 
-    private void submitQuery(String query) {
+    void submitQuery(String query) {
         queryComplete();
         if (null != mProvider) {
             mProvider.onQueryTextSubmit(query);
         }
     }
 
-    private void queryComplete() {
+    void queryComplete() {
         if (DEBUG) Log.v(TAG, "queryComplete");
         mStatus |= QUERY_COMPLETE;
         focusOnResults();
     }
 
-    private void updateSearchBarVisibility() {
+    void updateSearchBarVisibility() {
         int position = mRowsSupportFragment != null ? mRowsSupportFragment.getSelectedPosition() : -1;
         mSearchBar.setVisibility(position <=0 || mResultAdapter == null
                 || mResultAdapter.size() == 0 ? View.VISIBLE : View.GONE);
     }
 
-    private void updateSearchBarNextFocusId() {
+    void updateSearchBarNextFocusId() {
         if (mSearchBar == null || mResultAdapter == null) {
             return;
         }
@@ -651,7 +651,7 @@
         mSearchBar.setNextFocusDownId(viewId);
     }
 
-    private void updateFocus() {
+    void updateFocus() {
         if (mResultAdapter != null && mResultAdapter.size() > 0 &&
                 mRowsSupportFragment != null && mRowsSupportFragment.getAdapter() == mResultAdapter) {
             focusOnResults();
@@ -676,14 +676,14 @@
         mHandler.post(mSetSearchResultProvider);
     }
 
-    private void releaseAdapter() {
+    void releaseAdapter() {
         if (mResultAdapter != null) {
             mResultAdapter.unregisterObserver(mAdapterObserver);
             mResultAdapter = null;
         }
     }
 
-    private void executePendingQuery() {
+    void executePendingQuery() {
         if (null != mPendingQuery && null != mResultAdapter) {
             String query = mPendingQuery;
             mPendingQuery = null;
diff --git a/v17/leanback/src/android/support/v17/leanback/app/VerticalGridFragment.java b/v17/leanback/src/android/support/v17/leanback/app/VerticalGridFragment.java
index c02fd69..b8f3df2 100644
--- a/v17/leanback/src/android/support/v17/leanback/app/VerticalGridFragment.java
+++ b/v17/leanback/src/android/support/v17/leanback/app/VerticalGridFragment.java
@@ -37,13 +37,13 @@
  * an {@link ObjectAdapter}.
  */
 public class VerticalGridFragment extends BaseFragment {
-    private static final String TAG = "VerticalGridFragment";
-    private static boolean DEBUG = false;
+    static final String TAG = "VerticalGridFragment";
+    static boolean DEBUG = false;
 
     private ObjectAdapter mAdapter;
     private VerticalGridPresenter mGridPresenter;
-    private VerticalGridPresenter.ViewHolder mGridViewHolder;
-    private OnItemViewSelectedListener mOnItemViewSelectedListener;
+    VerticalGridPresenter.ViewHolder mGridViewHolder;
+    OnItemViewSelectedListener mOnItemViewSelectedListener;
     private OnItemViewClickedListener mOnItemViewClickedListener;
     private Object mSceneAfterEntranceTransition;
     private int mSelectedPosition = -1;
@@ -116,14 +116,14 @@
         mOnItemViewSelectedListener = listener;
     }
 
-    private void gridOnItemSelected(int position) {
+    void gridOnItemSelected(int position) {
         if (position != mSelectedPosition) {
             mSelectedPosition = position;
             showOrHideTitle();
         }
     }
 
-    private void showOrHideTitle() {
+    void showOrHideTitle() {
         if (mGridViewHolder.getGridView().findViewHolderForAdapterPosition(mSelectedPosition)
                 == null) {
             return;
diff --git a/v17/leanback/src/android/support/v17/leanback/app/VerticalGridSupportFragment.java b/v17/leanback/src/android/support/v17/leanback/app/VerticalGridSupportFragment.java
index 3bf5e12..309de0c 100644
--- a/v17/leanback/src/android/support/v17/leanback/app/VerticalGridSupportFragment.java
+++ b/v17/leanback/src/android/support/v17/leanback/app/VerticalGridSupportFragment.java
@@ -39,13 +39,13 @@
  * an {@link ObjectAdapter}.
  */
 public class VerticalGridSupportFragment extends BaseSupportFragment {
-    private static final String TAG = "VerticalGridSupportFragment";
-    private static boolean DEBUG = false;
+    static final String TAG = "VerticalGridSupportFragment";
+    static boolean DEBUG = false;
 
     private ObjectAdapter mAdapter;
     private VerticalGridPresenter mGridPresenter;
-    private VerticalGridPresenter.ViewHolder mGridViewHolder;
-    private OnItemViewSelectedListener mOnItemViewSelectedListener;
+    VerticalGridPresenter.ViewHolder mGridViewHolder;
+    OnItemViewSelectedListener mOnItemViewSelectedListener;
     private OnItemViewClickedListener mOnItemViewClickedListener;
     private Object mSceneAfterEntranceTransition;
     private int mSelectedPosition = -1;
@@ -118,14 +118,14 @@
         mOnItemViewSelectedListener = listener;
     }
 
-    private void gridOnItemSelected(int position) {
+    void gridOnItemSelected(int position) {
         if (position != mSelectedPosition) {
             mSelectedPosition = position;
             showOrHideTitle();
         }
     }
 
-    private void showOrHideTitle() {
+    void showOrHideTitle() {
         if (mGridViewHolder.getGridView().findViewHolderForAdapterPosition(mSelectedPosition)
                 == null) {
             return;
diff --git a/v17/leanback/src/android/support/v17/leanback/os/TraceHelper.java b/v17/leanback/src/android/support/v17/leanback/os/TraceHelper.java
index 09a082d..272d26f 100644
--- a/v17/leanback/src/android/support/v17/leanback/os/TraceHelper.java
+++ b/v17/leanback/src/android/support/v17/leanback/os/TraceHelper.java
@@ -33,6 +33,9 @@
     }
 
     private static final class TraceHelperStubImpl implements TraceHelperVersionImpl {
+        TraceHelperStubImpl() {
+        }
+
         @Override
         public void beginSection(String section) {
         }
@@ -43,6 +46,9 @@
     }
 
     private static final class TraceHelperJbmr2Impl implements TraceHelperVersionImpl {
+        TraceHelperJbmr2Impl() {
+        }
+
         @Override
         public void beginSection(String section) {
             TraceHelperJbmr2.beginSection(section);
diff --git a/v17/leanback/src/android/support/v17/leanback/transition/TransitionHelper.java b/v17/leanback/src/android/support/v17/leanback/transition/TransitionHelper.java
index 7437227..eabb646 100644
--- a/v17/leanback/src/android/support/v17/leanback/transition/TransitionHelper.java
+++ b/v17/leanback/src/android/support/v17/leanback/transition/TransitionHelper.java
@@ -162,6 +162,9 @@
 
         private static class TransitionStub {
             ArrayList<TransitionListener> mTransitionListeners;
+
+            TransitionStub() {
+            }
         }
 
         @Override
diff --git a/v17/leanback/src/android/support/v17/leanback/util/StateMachine.java b/v17/leanback/src/android/support/v17/leanback/util/StateMachine.java
index 4155af6..4b219cb 100644
--- a/v17/leanback/src/android/support/v17/leanback/util/StateMachine.java
+++ b/v17/leanback/src/android/support/v17/leanback/util/StateMachine.java
@@ -46,7 +46,7 @@
     public static class State {
 
         private int mStatus;
-        private ArrayList<State> mPriorStates;
+        ArrayList<State> mPriorStates;
 
         /**
          * Run State, Subclass may override.
diff --git a/v17/leanback/src/android/support/v17/leanback/widget/AbstractDetailsDescriptionPresenter.java b/v17/leanback/src/android/support/v17/leanback/widget/AbstractDetailsDescriptionPresenter.java
index 88469bb..f603536 100644
--- a/v17/leanback/src/android/support/v17/leanback/widget/AbstractDetailsDescriptionPresenter.java
+++ b/v17/leanback/src/android/support/v17/leanback/widget/AbstractDetailsDescriptionPresenter.java
@@ -37,20 +37,20 @@
      * The ViewHolder for the {@link AbstractDetailsDescriptionPresenter}.
      */
     public static class ViewHolder extends Presenter.ViewHolder {
-        private final TextView mTitle;
-        private final TextView mSubtitle;
-        private final TextView mBody;
-        private final int mTitleMargin;
-        private final int mUnderTitleBaselineMargin;
-        private final int mUnderSubtitleBaselineMargin;
-        private final int mTitleLineSpacing;
-        private final int mBodyLineSpacing;
-        private final int mBodyMaxLines;
-        private final int mBodyMinLines;
-        private final FontMetricsInt mTitleFontMetricsInt;
-        private final FontMetricsInt mSubtitleFontMetricsInt;
-        private final FontMetricsInt mBodyFontMetricsInt;
-        private final int mTitleMaxLines;
+        final TextView mTitle;
+        final TextView mSubtitle;
+        final TextView mBody;
+        final int mTitleMargin;
+        final int mUnderTitleBaselineMargin;
+        final int mUnderSubtitleBaselineMargin;
+        final int mTitleLineSpacing;
+        final int mBodyLineSpacing;
+        final int mBodyMaxLines;
+        final int mBodyMinLines;
+        final FontMetricsInt mTitleFontMetricsInt;
+        final FontMetricsInt mSubtitleFontMetricsInt;
+        final FontMetricsInt mBodyFontMetricsInt;
+        final int mTitleMaxLines;
         private ViewTreeObserver.OnPreDrawListener mPreDrawListener;
 
         public ViewHolder(final View view) {
diff --git a/v17/leanback/src/android/support/v17/leanback/widget/AbstractMediaItemPresenter.java b/v17/leanback/src/android/support/v17/leanback/widget/AbstractMediaItemPresenter.java
index 25fddb6..87652dc 100644
--- a/v17/leanback/src/android/support/v17/leanback/widget/AbstractMediaItemPresenter.java
+++ b/v17/leanback/src/android/support/v17/leanback/widget/AbstractMediaItemPresenter.java
@@ -153,22 +153,22 @@
      */
     public static class ViewHolder extends RowPresenter.ViewHolder {
 
-        private final View mMediaRowView;
-        private final View mSelectorView;
+        final View mMediaRowView;
+        final View mSelectorView;
         private final View mMediaItemDetailsView;
-        private final ViewFlipper mMediaItemNumberViewFlipper;
-        private final TextView mMediaItemNumberView;
-        private final View mMediaItemPausedView;
+        final ViewFlipper mMediaItemNumberViewFlipper;
+        final TextView mMediaItemNumberView;
+        final View mMediaItemPausedView;
 
-        private final View mMediaItemPlayingView;
+        final View mMediaItemPlayingView;
         private final TextView mMediaItemNameView;
         private final TextView mMediaItemDurationView;
         private final View mMediaItemRowSeparator;
         private final ViewGroup mMediaItemActionsContainer;
         private final List<Presenter.ViewHolder> mActionViewHolders;
-        private MultiActionsProvider.MultiAction[] mMediaItemRowActions;
+        MultiActionsProvider.MultiAction[] mMediaItemRowActions;
         AbstractMediaItemPresenter mRowPresenter;
-        private ValueAnimator mFocusViewAnimator;
+        ValueAnimator mFocusViewAnimator;
 
         public ViewHolder(View view) {
             super(view);
@@ -582,7 +582,7 @@
      * @param isDetails Whether the changed-focused view is for a media item details (true) or
      *                  an action (false).
      */
-    private static ValueAnimator updateSelector(final View selectorView,
+    static ValueAnimator updateSelector(final View selectorView,
             View focusChangedView, ValueAnimator layoutAnimator, boolean isDetails) {
         int animationDuration = focusChangedView.getContext().getResources()
                 .getInteger(android.R.integer.config_shortAnimTime);
diff --git a/v17/leanback/src/android/support/v17/leanback/widget/BackgroundHelper.java b/v17/leanback/src/android/support/v17/leanback/widget/BackgroundHelper.java
index 2df10a8..d5e1418 100644
--- a/v17/leanback/src/android/support/v17/leanback/widget/BackgroundHelper.java
+++ b/v17/leanback/src/android/support/v17/leanback/widget/BackgroundHelper.java
@@ -34,6 +34,9 @@
     }
 
     private static final class BackgroundHelperStubImpl implements BackgroundHelperVersionImpl {
+        BackgroundHelperStubImpl() {
+        }
+
         @Override
         public void setBackgroundPreservingAlpha(View view, Drawable drawable) {
             // Cannot query drawable alpha
@@ -42,6 +45,9 @@
     }
 
     private static final class BackgroundHelperKitkatImpl implements BackgroundHelperVersionImpl {
+        BackgroundHelperKitkatImpl() {
+        }
+
         @Override
         public void setBackgroundPreservingAlpha(View view, Drawable drawable) {
             BackgroundHelperKitkat.setBackgroundPreservingAlpha(view, drawable);
diff --git a/v17/leanback/src/android/support/v17/leanback/widget/BaseCardView.java b/v17/leanback/src/android/support/v17/leanback/widget/BaseCardView.java
index 40127dc..20308c5 100644
--- a/v17/leanback/src/android/support/v17/leanback/widget/BaseCardView.java
+++ b/v17/leanback/src/android/support/v17/leanback/widget/BaseCardView.java
@@ -115,8 +115,8 @@
     private int mExtraVisibility;
 
     private ArrayList<View> mMainViewList;
-    private ArrayList<View> mInfoViewList;
-    private ArrayList<View> mExtraViewList;
+    ArrayList<View> mInfoViewList;
+    ArrayList<View> mExtraViewList;
 
     private int mMeasuredWidth;
     private int mMeasuredHeight;
@@ -125,9 +125,9 @@
     private final int mActivatedAnimDuration;
     private final int mSelectedAnimDuration;
 
-    private float mInfoOffset;
-    private float mInfoVisFraction;
-    private float mInfoAlpha = 1.0f;
+    float mInfoOffset;
+    float mInfoVisFraction;
+    float mInfoAlpha = 1.0f;
     private Animation mAnim;
 
     private final static int[] LB_PRESSED_STATE_SET = new int[]{
@@ -649,7 +649,7 @@
     // This animation changes the Y offset of the info and extra views,
     // so that they animate UP to make the extra info area visible when a
     // card is selected.
-    private void animateInfoOffset(boolean shown) {
+    void animateInfoOffset(boolean shown) {
         cancelAnimations();
 
         int extraHeight = 0;
diff --git a/v17/leanback/src/android/support/v17/leanback/widget/BaseGridView.java b/v17/leanback/src/android/support/v17/leanback/widget/BaseGridView.java
index 013060f..79d37b5 100644
--- a/v17/leanback/src/android/support/v17/leanback/widget/BaseGridView.java
+++ b/v17/leanback/src/android/support/v17/leanback/widget/BaseGridView.java
@@ -187,7 +187,7 @@
     private OnTouchInterceptListener mOnTouchInterceptListener;
     private OnMotionInterceptListener mOnMotionInterceptListener;
     private OnKeyInterceptListener mOnKeyInterceptListener;
-    private RecyclerView.RecyclerListener mChainedRecyclerListener;
+    RecyclerView.RecyclerListener mChainedRecyclerListener;
     private OnUnhandledKeyListener mOnUnhandledKeyListener;
 
     public BaseGridView(Context context, AttributeSet attrs, int defStyle) {
@@ -328,7 +328,7 @@
      * Returns the offset percent for window alignment in addition to
      * {@link #getWindowAlignmentOffset()}.
      *
-     * @return Percentage to offset. E.g., 40 means 40% of the width from the 
+     * @return Percentage to offset. E.g., 40 means 40% of the width from the
      *         low edge, or {@link #WINDOW_ALIGN_OFFSET_PERCENT_DISABLED} if
      *         disabled. Default value is 50.
      */
diff --git a/v17/leanback/src/android/support/v17/leanback/widget/ControlBarPresenter.java b/v17/leanback/src/android/support/v17/leanback/widget/ControlBarPresenter.java
index e3f9ab8..f79f02f 100644
--- a/v17/leanback/src/android/support/v17/leanback/widget/ControlBarPresenter.java
+++ b/v17/leanback/src/android/support/v17/leanback/widget/ControlBarPresenter.java
@@ -30,7 +30,7 @@
  */
 class ControlBarPresenter extends Presenter {
 
-    private static final int MAX_CONTROLS = 7;
+    static final int MAX_CONTROLS = 7;
 
     /**
      * The data type expected by this presenter.
@@ -181,8 +181,8 @@
         }
     }
 
-    private OnControlClickedListener mOnControlClickedListener;
-    private OnControlSelectedListener mOnControlSelectedListener;
+    OnControlClickedListener mOnControlClickedListener;
+    OnControlSelectedListener mOnControlSelectedListener;
     private int mLayoutResourceId;
     private static int sChildMarginDefault;
     private static int sControlIconWidth;
diff --git a/v17/leanback/src/android/support/v17/leanback/widget/DetailsOverviewRowPresenter.java b/v17/leanback/src/android/support/v17/leanback/widget/DetailsOverviewRowPresenter.java
index 34c2004..88d7195 100644
--- a/v17/leanback/src/android/support/v17/leanback/widget/DetailsOverviewRowPresenter.java
+++ b/v17/leanback/src/android/support/v17/leanback/widget/DetailsOverviewRowPresenter.java
@@ -65,8 +65,8 @@
 @Deprecated
 public class DetailsOverviewRowPresenter extends RowPresenter {
 
-    private static final String TAG = "DetailsOverviewRowPresenter";
-    private static final boolean DEBUG = false;
+    static final String TAG = "DetailsOverviewRowPresenter";
+    static final boolean DEBUG = false;
 
     private static final int MORE_ACTIONS_FADE_MS = 100;
     private static final long DEFAULT_TIMEOUT = 5000;
@@ -227,7 +227,7 @@
             return (view.getRight() - view.getLeft()) / 2;
         }
 
-        private void checkFirstAndLastPosition(boolean fromScroll) {
+        void checkFirstAndLastPosition(boolean fromScroll) {
             RecyclerView.ViewHolder viewHolder;
 
             viewHolder = mActionsRow.findViewHolderForPosition(mNumItems - 1);
@@ -289,8 +289,8 @@
         }
     }
 
-    private final Presenter mDetailsPresenter;
-    private OnActionClickedListener mActionClickedListener;
+    final Presenter mDetailsPresenter;
+    OnActionClickedListener mActionClickedListener;
 
     private int mBackgroundColor = Color.TRANSPARENT;
     private boolean mBackgroundColorSet;
@@ -460,7 +460,7 @@
         return (height > 0 ? height : 0);
     }
 
-    private void bindImageDrawable(ViewHolder vh) {
+    void bindImageDrawable(ViewHolder vh) {
         DetailsOverviewRow row = (DetailsOverviewRow) vh.getRow();
 
         ViewGroup.MarginLayoutParams layoutParams =
diff --git a/v17/leanback/src/android/support/v17/leanback/widget/DetailsOverviewSharedElementHelper.java b/v17/leanback/src/android/support/v17/leanback/widget/DetailsOverviewSharedElementHelper.java
index cac7d9e..937d328 100644
--- a/v17/leanback/src/android/support/v17/leanback/widget/DetailsOverviewSharedElementHelper.java
+++ b/v17/leanback/src/android/support/v17/leanback/widget/DetailsOverviewSharedElementHelper.java
@@ -36,15 +36,15 @@
 
 final class DetailsOverviewSharedElementHelper extends SharedElementCallback {
 
-    private static final String TAG = "DetailsOverviewSharedElementHelper";
-    private static final boolean DEBUG = false;
+    static final String TAG = "DetailsOverviewSharedElementHelper";
+    static final boolean DEBUG = false;
 
-    private ViewHolder mViewHolder;
-    private Activity mActivityToRunTransition;
-    private boolean mStartedPostpone;
-    private String mSharedElementName;
-    private int mRightPanelWidth;
-    private int mRightPanelHeight;
+    ViewHolder mViewHolder;
+    Activity mActivityToRunTransition;
+    boolean mStartedPostpone;
+    String mSharedElementName;
+    int mRightPanelWidth;
+    int mRightPanelHeight;
 
     private ScaleType mSavedScaleType;
     private Matrix mSavedMatrix;
@@ -255,7 +255,7 @@
         });
     }
 
-    private void startPostponedEnterTransition() {
+    void startPostponedEnterTransition() {
         if (!mStartedPostpone) {
             if (DEBUG) {
                 Log.d(TAG, "startPostponedEnterTransition " + mActivityToRunTransition);
diff --git a/v17/leanback/src/android/support/v17/leanback/widget/FocusHighlightHelper.java b/v17/leanback/src/android/support/v17/leanback/widget/FocusHighlightHelper.java
index 87bbbd4..0990327 100644
--- a/v17/leanback/src/android/support/v17/leanback/widget/FocusHighlightHelper.java
+++ b/v17/leanback/src/android/support/v17/leanback/widget/FocusHighlightHelper.java
@@ -35,7 +35,7 @@
         return zoomIndex == ZOOM_FACTOR_NONE || getResId(zoomIndex) > 0;
     }
 
-    private static int getResId(int zoomIndex) {
+    static int getResId(int zoomIndex) {
         switch (zoomIndex) {
             case ZOOM_FACTOR_SMALL:
                 return R.fraction.lb_focus_zoom_factor_small;
@@ -209,7 +209,7 @@
         private static boolean sInitialized;
         private static float sSelectScale;
         private static int sDuration;
-        private BaseGridView mGridView;
+        BaseGridView mGridView;
 
         HeaderItemFocusHighlight(BaseGridView gridView) {
             mGridView = gridView;
diff --git a/v17/leanback/src/android/support/v17/leanback/widget/ForegroundHelper.java b/v17/leanback/src/android/support/v17/leanback/widget/ForegroundHelper.java
index c9bed58..252a317 100644
--- a/v17/leanback/src/android/support/v17/leanback/widget/ForegroundHelper.java
+++ b/v17/leanback/src/android/support/v17/leanback/widget/ForegroundHelper.java
@@ -24,6 +24,9 @@
      * Implementation used on api 23 (and above).
      */
     private static final class ForegroundHelperApi23Impl implements ForegroundHelperVersionImpl {
+        ForegroundHelperApi23Impl() {
+        }
+
         @Override
         public void setForeground(View view, Drawable drawable) {
             ForegroundHelperApi23.setForeground(view, drawable);
@@ -39,6 +42,9 @@
      * Stub implementation
      */
     private static final class ForegroundHelperStubImpl implements ForegroundHelperVersionImpl {
+        ForegroundHelperStubImpl() {
+        }
+
         @Override
         public void setForeground(View view, Drawable drawable) {
         }
diff --git a/v17/leanback/src/android/support/v17/leanback/widget/FullWidthDetailsOverviewRowPresenter.java b/v17/leanback/src/android/support/v17/leanback/widget/FullWidthDetailsOverviewRowPresenter.java
index 7c9d5db..4b02418 100644
--- a/v17/leanback/src/android/support/v17/leanback/widget/FullWidthDetailsOverviewRowPresenter.java
+++ b/v17/leanback/src/android/support/v17/leanback/widget/FullWidthDetailsOverviewRowPresenter.java
@@ -71,11 +71,11 @@
  */
 public class FullWidthDetailsOverviewRowPresenter extends RowPresenter {
 
-    private static final String TAG = "FullWidthDetailsOverviewRowPresenter";
-    private static final boolean DEBUG = false;
+    static final String TAG = "FullWidthDetailsOverviewRowPresenter";
+    static final boolean DEBUG = false;
 
     private static Rect sTmpRect = new Rect();
-    private static final Handler sHandler = new Handler();
+    static final Handler sHandler = new Handler();
 
     /**
      * This is the default state corresponding to layout file.  The view takes full width
@@ -290,7 +290,7 @@
             return (view.getRight() - view.getLeft()) / 2;
         }
 
-        private void checkFirstAndLastPosition(boolean fromScroll) {
+        void checkFirstAndLastPosition(boolean fromScroll) {
             RecyclerView.ViewHolder viewHolder;
 
             viewHolder = mActionsRow.findViewHolderForPosition(mNumItems - 1);
@@ -383,9 +383,9 @@
 
     protected int mInitialState = STATE_HALF;
 
-    private final Presenter mDetailsPresenter;
-    private final DetailsOverviewLogoPresenter mDetailsOverviewLogoPresenter;
-    private OnActionClickedListener mActionClickedListener;
+    final Presenter mDetailsPresenter;
+    final DetailsOverviewLogoPresenter mDetailsOverviewLogoPresenter;
+    OnActionClickedListener mActionClickedListener;
 
     private int mBackgroundColor = Color.TRANSPARENT;
     private int mActionsBackgroundColor = Color.TRANSPARENT;
diff --git a/v17/leanback/src/android/support/v17/leanback/widget/FullWidthDetailsOverviewSharedElementHelper.java b/v17/leanback/src/android/support/v17/leanback/widget/FullWidthDetailsOverviewSharedElementHelper.java
index a9fe9ec..9fd8815 100644
--- a/v17/leanback/src/android/support/v17/leanback/widget/FullWidthDetailsOverviewSharedElementHelper.java
+++ b/v17/leanback/src/android/support/v17/leanback/widget/FullWidthDetailsOverviewSharedElementHelper.java
@@ -46,15 +46,15 @@
 public class FullWidthDetailsOverviewSharedElementHelper extends
         FullWidthDetailsOverviewRowPresenter.Listener {
 
-    private static final String TAG = "FullWidthDetailsOverviewSharedElementHelper";
-    private static final boolean DEBUG = false;
+    static final String TAG = "FullWidthDetailsOverviewSharedElementHelper";
+    static final boolean DEBUG = false;
 
     private static final long DEFAULT_TIMEOUT = 5000;
 
-    private ViewHolder mViewHolder;
-    private Activity mActivityToRunTransition;
+    ViewHolder mViewHolder;
+    Activity mActivityToRunTransition;
     private boolean mStartedPostpone;
-    private String mSharedElementName;
+    String mSharedElementName;
     private boolean mAutoStartSharedElementTransition = true;
 
     public void setSharedElementEnterTransition(Activity activity, String sharedElementName) {
@@ -174,7 +174,7 @@
         });
     }
 
-    private void startPostponedEnterTransitionInternal() {
+    void startPostponedEnterTransitionInternal() {
         if (!mStartedPostpone && mViewHolder != null) {
             if (DEBUG) {
                 Log.d(TAG, "startPostponedEnterTransition " + mActivityToRunTransition);
diff --git a/v17/leanback/src/android/support/v17/leanback/widget/GridLayoutManager.java b/v17/leanback/src/android/support/v17/leanback/widget/GridLayoutManager.java
index 1c6c4b0..0a21ddd 100644
--- a/v17/leanback/src/android/support/v17/leanback/widget/GridLayoutManager.java
+++ b/v17/leanback/src/android/support/v17/leanback/widget/GridLayoutManager.java
@@ -58,10 +58,10 @@
     final static class LayoutParams extends RecyclerView.LayoutParams {
 
         // For placement
-        private int mLeftInset;
-        private int mTopInset;
-        private int mRightInset;
-        private int mBottomInset;
+        int mLeftInset;
+        int mTopInset;
+        int mRightInset;
+        int mBottomInset;
 
         // For alignment
         private int mAlignX;
@@ -366,20 +366,20 @@
     };
 
     private static final String TAG = "GridLayoutManager";
-    private static final boolean DEBUG = false;
-    private static final boolean TRACE = false;
+    static final boolean DEBUG = false;
+    static final boolean TRACE = false;
 
     // maximum pending movement in one direction.
-    private final static int MAX_PENDING_MOVES = 10;
+    final static int MAX_PENDING_MOVES = 10;
     // minimal milliseconds to scroll window size in major direction,  we put a cap to prevent the
     // effect smooth scrolling too over to bind an item view then drag the item view back.
-    private final static int MIN_MS_SMOOTH_SCROLL_MAIN_SCREEN = 30;
+    final static int MIN_MS_SMOOTH_SCROLL_MAIN_SCREEN = 30;
 
-    private String getTag() {
+    String getTag() {
         return TAG + ":" + mBaseGridView.getId();
     }
 
-    private final BaseGridView mBaseGridView;
+    final BaseGridView mBaseGridView;
 
     /**
      * Note on conventions in the presence of RTL layout directions:
@@ -408,47 +408,47 @@
     /**
      * The orientation of a "row".
      */
-    private int mOrientation = HORIZONTAL;
+    int mOrientation = HORIZONTAL;
     private OrientationHelper mOrientationHelper = OrientationHelper.createHorizontalHelper(this);
 
-    private RecyclerView.State mState;
-    private RecyclerView.Recycler mRecycler;
+    RecyclerView.State mState;
+    RecyclerView.Recycler mRecycler;
 
     private static final Rect sTempRect = new Rect();
 
-    private boolean mInLayout;
+    boolean mInLayout;
     private boolean mInScroll;
-    private boolean mInFastRelayout;
+    boolean mInFastRelayout;
     /**
      * During full layout pass, when GridView had focus: onLayoutChildren will
      * skip non-focusable child and adjust mFocusPosition.
      */
-    private boolean mInLayoutSearchFocus;
-    private boolean mInSelection = false;
+    boolean mInLayoutSearchFocus;
+    boolean mInSelection = false;
 
     private OnChildSelectedListener mChildSelectedListener = null;
 
     private ArrayList<OnChildViewHolderSelectedListener> mChildViewHolderSelectedListeners = null;
 
-    private OnChildLaidOutListener mChildLaidOutListener = null;
+    OnChildLaidOutListener mChildLaidOutListener = null;
 
     /**
      * The focused position, it's not the currently visually aligned position
      * but it is the final position that we intend to focus on. If there are
      * multiple setSelection() called, mFocusPosition saves last value.
      */
-    private int mFocusPosition = NO_POSITION;
+    int mFocusPosition = NO_POSITION;
 
     /**
      * A view can have multiple alignment position,  this is the index of which
      * alignment is used,  by default is 0.
      */
-    private int mSubFocusPosition = 0;
+    int mSubFocusPosition = 0;
 
     /**
      * LinearSmoothScroller that consume pending DPAD movements.
      */
-    private PendingMoveSmoothScroller mPendingMoveSmoothScroller;
+    PendingMoveSmoothScroller mPendingMoveSmoothScroller;
 
     /**
      * The offset to be applied to mFocusPosition, due to adapter change, on the next
@@ -477,13 +477,13 @@
     /**
      * override child visibility
      */
-    private int mChildVisibility = -1;
+    int mChildVisibility = -1;
 
     /**
      * The scroll offsets of the viewport relative to the entire view.
      */
     private int mScrollOffsetPrimary;
-    private int mScrollOffsetSecondary;
+    int mScrollOffsetSecondary;
 
     /**
      * User-specified row height/column width.  Can be WRAP_CONTENT.
@@ -536,7 +536,7 @@
     /**
      * The number of rows in the grid.
      */
-    private int mNumRows;
+    int mNumRows;
     /**
      * Number of rows requested, can be 0 to be determined by parent size and
      * rowHeight.
@@ -555,7 +555,7 @@
     /**
      * Defines how item view is aligned in the window.
      */
-    private final WindowAlignment mWindowAlignment = new WindowAlignment();
+    final WindowAlignment mWindowAlignment = new WindowAlignment();
 
     /**
      * Defines how item view is aligned.
@@ -612,12 +612,12 @@
     /**
      * Temporary variable: an int array of length=2.
      */
-    private static int[] sTwoInts = new int[2];
+    static int[] sTwoInts = new int[2];
 
     /**
      * Set to true for RTL layout in horizontal orientation
      */
-    private boolean mReverseFlowPrimary = false;
+    boolean mReverseFlowPrimary = false;
 
     /**
      * Set to true for RTL layout in vertical orientation
@@ -858,7 +858,7 @@
         return params.getViewPosition();
     }
 
-    private int getSubPositionByView(View view, View childView) {
+    int getSubPositionByView(View view, View childView) {
         if (view == null || childView == null) {
             return 0;
         }
@@ -887,7 +887,7 @@
         return getPositionByView(getChildAt(index));
     }
 
-    private void dispatchChildSelected() {
+    void dispatchChildSelected() {
         if (mChildSelectedListener == null && !hasOnChildViewHolderSelectedListener()) {
             return;
         }
@@ -1019,15 +1019,15 @@
         outBounds.bottom -= params.mBottomInset;
     }
 
-    private int getViewMin(View v) {
+    int getViewMin(View v) {
         return mOrientationHelper.getDecoratedStart(v);
     }
 
-    private int getViewMax(View v) {
+    int getViewMax(View v) {
         return mOrientationHelper.getDecoratedEnd(v);
     }
 
-    private int getViewPrimarySize(View view) {
+    int getViewPrimarySize(View view) {
         getDecoratedBoundsWithMargins(view, sTempRect);
         return mOrientation == HORIZONTAL ? sTempRect.width() : sTempRect.height();
     }
@@ -1142,7 +1142,7 @@
         return mRowSizeSecondary[rowIndex];
     }
 
-    private int getRowStartSecondary(int rowIndex) {
+    int getRowStartSecondary(int rowIndex) {
         int start = 0;
         // Iterate from left to right, which is a different index traversal
         // in RTL flow
@@ -1402,7 +1402,7 @@
         leaveContext();
     }
 
-    private void measureChild(View child) {
+    void measureChild(View child) {
         if (TRACE) TraceHelper.beginSection("measureChild");
         final LayoutParams lp = (LayoutParams) child.getLayoutParams();
         calculateItemDecorationsForChild(child, sTempRect);
@@ -1434,9 +1434,9 @@
     }
 
     /**
-     * Get facet from the ViewHolder or the viewType. 
+     * Get facet from the ViewHolder or the viewType.
      */
-    private <E> E getFacet(RecyclerView.ViewHolder vh, Class<? extends E> facetClass) {
+    <E> E getFacet(RecyclerView.ViewHolder vh, Class<? extends E> facetClass) {
         E facet = null;
         if (vh instanceof FacetProvider) {
             facet = (E) ((FacetProvider) vh).getFacet(facetClass);
@@ -1594,7 +1594,7 @@
         }
     };
 
-    private void layoutChild(int rowIndex, View v, int start, int end, int startSecondary) {
+    void layoutChild(int rowIndex, View v, int start, int end, int startSecondary) {
         if (TRACE) TraceHelper.beginSection("layoutChild");
         int sizeSecondary = mOrientation == HORIZONTAL ? getDecoratedMeasuredHeightWithMargin(v)
                 : getDecoratedMeasuredWidthWithMargin(v);
@@ -1711,7 +1711,7 @@
     /**
      * Fast layout when there is no structure change, adapter change, etc.
      * It will layout all views was layout requested or updated, until hit a view
-     * with different size,  then it break and detachAndScrap all views after that. 
+     * with different size,  then it break and detachAndScrap all views after that.
      */
     private void fastRelayout() {
         boolean invalidateAfter = false;
@@ -2088,7 +2088,7 @@
         return dy;
     }
 
-    private void updateScrollMax() {
+    void updateScrollMax() {
         int highVisiblePos = (!mReverseFlowPrimary) ? mGrid.getLastVisibleIndex()
                 : mGrid.getFirstVisibleIndex();
         int highMaxPos = (!mReverseFlowPrimary) ? mState.getItemCount() - 1 : 0;
@@ -2120,7 +2120,7 @@
         }
     }
 
-    private void updateScrollMin() {
+    void updateScrollMin() {
         int lowVisiblePos = (!mReverseFlowPrimary) ? mGrid.getFirstVisibleIndex()
                 : mGrid.getLastVisibleIndex();
         int lowMinPos = (!mReverseFlowPrimary) ? 0 : mState.getItemCount() - 1;
@@ -2243,7 +2243,7 @@
         }
     }
 
-    private void scrollToSelection(int position, int subposition,
+    void scrollToSelection(int position, int subposition,
             boolean smooth, int primaryScrollExtra) {
         if (TRACE) TraceHelper.beginSection("scrollToSelection");
         mPrimaryScrollExtra = primaryScrollExtra;
@@ -2505,7 +2505,7 @@
     /**
      * Scroll to a given child view and change mFocusPosition.
      */
-    private void scrollToView(View view, boolean smooth) {
+    void scrollToView(View view, boolean smooth) {
         scrollToView(view, view == null ? null : view.findFocus(), smooth);
     }
 
@@ -2542,7 +2542,7 @@
         }
     }
 
-    private boolean getScrollPosition(View view, View childView, int[] deltas) {
+    boolean getScrollPosition(View view, View childView, int[] deltas) {
         switch (mFocusScrollStrategy) {
         case BaseGridView.FOCUS_SCROLL_ALIGNED:
         default:
@@ -2967,12 +2967,12 @@
         return true;
     }
 
-    private boolean hasCreatedLastItem() {
+    boolean hasCreatedLastItem() {
         int count = getItemCount();
         return count == 0 || mBaseGridView.findViewHolderForAdapterPosition(count - 1) != null;
     }
 
-    private boolean hasCreatedFirstItem() {
+    boolean hasCreatedFirstItem() {
         int count = getItemCount();
         return count == 0 || mBaseGridView.findViewHolderForAdapterPosition(0) != null;
     }
@@ -3285,7 +3285,7 @@
      * Stops when moves are all consumed or reach first/last visible item.
      * Returning remaining moves.
      */
-    private int processSelectionMoves(boolean preventScroll, int moves) {
+    int processSelectionMoves(boolean preventScroll, int moves) {
         if (mGrid == null) {
             return moves;
         }
diff --git a/v17/leanback/src/android/support/v17/leanback/widget/GuidedAction.java b/v17/leanback/src/android/support/v17/leanback/widget/GuidedAction.java
index 22ac504..62ff2d7 100644
--- a/v17/leanback/src/android/support/v17/leanback/widget/GuidedAction.java
+++ b/v17/leanback/src/android/support/v17/leanback/widget/GuidedAction.java
@@ -575,28 +575,28 @@
 
     }
 
-    private static final int PF_CHECKED = 0x00000001;
-    private static final int PF_MULTI_lINE_DESCRIPTION = 0x00000002;
-    private static final int PF_HAS_NEXT = 0x00000004;
-    private static final int PF_INFO_ONLY = 0x00000008;
-    private static final int PF_ENABLED = 0x00000010;
-    private static final int PF_FOCUSABLE = 0x00000020;
-    private static final int PF_AUTORESTORE = 0x00000040;
-    private int mActionFlags;
+    static final int PF_CHECKED = 0x00000001;
+    static final int PF_MULTI_lINE_DESCRIPTION = 0x00000002;
+    static final int PF_HAS_NEXT = 0x00000004;
+    static final int PF_INFO_ONLY = 0x00000008;
+    static final int PF_ENABLED = 0x00000010;
+    static final int PF_FOCUSABLE = 0x00000020;
+    static final int PF_AUTORESTORE = 0x00000040;
+    int mActionFlags;
 
     private CharSequence mEditTitle;
     private CharSequence mEditDescription;
-    private int mEditable;
-    private int mInputType;
-    private int mDescriptionInputType;
-    private int mEditInputType;
-    private int mDescriptionEditInputType;
+    int mEditable;
+    int mInputType;
+    int mDescriptionInputType;
+    int mEditInputType;
+    int mDescriptionEditInputType;
 
-    private int mCheckSetId;
+    int mCheckSetId;
 
-    private List<GuidedAction> mSubActions;
+    List<GuidedAction> mSubActions;
 
-    private Intent mIntent;
+    Intent mIntent;
 
     protected GuidedAction() {
         super(0);
diff --git a/v17/leanback/src/android/support/v17/leanback/widget/GuidedActionAdapter.java b/v17/leanback/src/android/support/v17/leanback/widget/GuidedActionAdapter.java
index 04a0674..7cdf91b 100644
--- a/v17/leanback/src/android/support/v17/leanback/widget/GuidedActionAdapter.java
+++ b/v17/leanback/src/android/support/v17/leanback/widget/GuidedActionAdapter.java
@@ -44,11 +44,11 @@
  * @hide
  */
 public class GuidedActionAdapter extends RecyclerView.Adapter {
-    private static final String TAG = "GuidedActionAdapter";
-    private static final boolean DEBUG = false;
+    static final String TAG = "GuidedActionAdapter";
+    static final boolean DEBUG = false;
 
-    private static final String TAG_EDIT = "EditableAction";
-    private static final boolean DEBUG_EDIT = false;
+    static final String TAG_EDIT = "EditableAction";
+    static final boolean DEBUG_EDIT = false;
 
     /**
      * Object listening for click events within a {@link GuidedActionAdapter}.
@@ -105,7 +105,7 @@
     private final ActionEditListener mActionEditListener;
     private final List<GuidedAction> mActions;
     private ClickListener mClickListener;
-    private final GuidedActionsStylist mStylist;
+    final GuidedActionsStylist mStylist;
     private final View.OnClickListener mOnClickListener = new View.OnClickListener() {
         @Override
         public void onClick(View v) {
@@ -227,7 +227,7 @@
         return mStylist.getItemViewType(mActions.get(position));
     }
 
-    private RecyclerView getRecyclerView() {
+    RecyclerView getRecyclerView() {
         return mIsSubAdapter ? mStylist.getSubActionsGridView() : mStylist.getActionsGridView();
     }
 
@@ -390,6 +390,9 @@
 
         private boolean mKeyPressed = false;
 
+        ActionOnKeyListener() {
+        }
+
         /**
          * Now only handles KEYCODE_ENTER and KEYCODE_NUMPAD_ENTER key event.
          */
@@ -454,6 +457,9 @@
     private class ActionEditListener implements OnEditorActionListener,
             ImeKeyMonitor.ImeKeyListener {
 
+        ActionEditListener() {
+        }
+
         @Override
         public boolean onEditorAction(TextView v, int actionId, KeyEvent event) {
             if (DEBUG_EDIT) Log.v(TAG_EDIT, "IME action: " + actionId);
diff --git a/v17/leanback/src/android/support/v17/leanback/widget/GuidedActionsStylist.java b/v17/leanback/src/android/support/v17/leanback/widget/GuidedActionsStylist.java
index 94288a0..9daaa57 100644
--- a/v17/leanback/src/android/support/v17/leanback/widget/GuidedActionsStylist.java
+++ b/v17/leanback/src/android/support/v17/leanback/widget/GuidedActionsStylist.java
@@ -163,15 +163,15 @@
      */
     public static class ViewHolder extends RecyclerView.ViewHolder implements FacetProvider {
 
-        private GuidedAction mAction;
+        GuidedAction mAction;
         private View mContentView;
-        private TextView mTitleView;
-        private TextView mDescriptionView;
-        private View mActivatorView;
-        private ImageView mIconView;
-        private ImageView mCheckmarkView;
-        private ImageView mChevronView;
-        private int mEditingMode = EDITING_NONE;
+        TextView mTitleView;
+        TextView mDescriptionView;
+        View mActivatorView;
+        ImageView mIconView;
+        ImageView mCheckmarkView;
+        ImageView mChevronView;
+        int mEditingMode = EDITING_NONE;
         private final boolean mIsSubAction;
 
         final AccessibilityDelegate mDelegate = new AccessibilityDelegate() {
@@ -362,9 +362,9 @@
 
     private static String TAG = "GuidedActionsStylist";
 
-    private ViewGroup mMainView;
+    ViewGroup mMainView;
     private VerticalGridView mActionsGridView;
-    private VerticalGridView mSubActionsGridView;
+    VerticalGridView mSubActionsGridView;
     private View mSubActionsBackground;
     private View mBgView;
     private View mContentView;
@@ -386,7 +386,7 @@
     private EditListener mEditListener;
 
     private GuidedAction mExpandedAction = null;
-    private Object mExpandTransition;
+    Object mExpandTransition;
 
     /**
      * Creates a view appropriate for displaying a list of GuidedActions, using the provided
diff --git a/v17/leanback/src/android/support/v17/leanback/widget/GuidedDatePickerAction.java b/v17/leanback/src/android/support/v17/leanback/widget/GuidedDatePickerAction.java
index 9b9f29f..d655e85 100644
--- a/v17/leanback/src/android/support/v17/leanback/widget/GuidedDatePickerAction.java
+++ b/v17/leanback/src/android/support/v17/leanback/widget/GuidedDatePickerAction.java
@@ -125,10 +125,10 @@
         }
     }
 
-    private String mDatePickerFormat;
-    private long mDate;
-    private long mMinDate = Long.MIN_VALUE;
-    private long mMaxDate = Long.MAX_VALUE;
+    String mDatePickerFormat;
+    long mDate;
+    long mMinDate = Long.MIN_VALUE;
+    long mMaxDate = Long.MAX_VALUE;
 
     /**
      * Returns format of date Picker or null if not specified.  The format is a case insensitive
diff --git a/v17/leanback/src/android/support/v17/leanback/widget/ItemBridgeAdapter.java b/v17/leanback/src/android/support/v17/leanback/widget/ItemBridgeAdapter.java
index 57e8bfe..d2d3356 100644
--- a/v17/leanback/src/android/support/v17/leanback/widget/ItemBridgeAdapter.java
+++ b/v17/leanback/src/android/support/v17/leanback/widget/ItemBridgeAdapter.java
@@ -25,8 +25,8 @@
  * party Presenters.
  */
 public class ItemBridgeAdapter extends RecyclerView.Adapter implements FacetProviderAdapter {
-    private static final String TAG = "ItemBridgeAdapter";
-    private static final boolean DEBUG = false;
+    static final String TAG = "ItemBridgeAdapter";
+    static final boolean DEBUG = false;
 
     /**
      * Interface for listening to ViewHolder operations.
@@ -56,9 +56,9 @@
     }
 
     private ObjectAdapter mAdapter;
-    private Wrapper mWrapper;
+    Wrapper mWrapper;
     private PresenterSelector mPresenterSelector;
-    private FocusHighlightHandler mFocusHighlight;
+    FocusHighlightHandler mFocusHighlight;
     private AdapterListener mAdapterListener;
     private ArrayList<Presenter> mPresenters = new ArrayList<Presenter>();
 
diff --git a/v17/leanback/src/android/support/v17/leanback/widget/ListRowPresenter.java b/v17/leanback/src/android/support/v17/leanback/widget/ListRowPresenter.java
index 94acd99..1a0b6de 100644
--- a/v17/leanback/src/android/support/v17/leanback/widget/ListRowPresenter.java
+++ b/v17/leanback/src/android/support/v17/leanback/widget/ListRowPresenter.java
@@ -132,7 +132,7 @@
 
         private int mItemPosition;
         private boolean mSmoothScroll = true;
-        private Presenter.ViewHolderTask mItemTask;
+        Presenter.ViewHolderTask mItemTask;
 
         public SelectItemViewHolderTask(int itemPosition) {
             setItemPosition(itemPosition);
@@ -280,7 +280,7 @@
     private boolean mRoundedCornersEnabled = true;
     private boolean mKeepChildForeground = true;
     private HashMap<Presenter, Integer> mRecycledPoolSize = new HashMap<Presenter, Integer>();
-    private ShadowOverlayHelper mShadowOverlayHelper;
+    ShadowOverlayHelper mShadowOverlayHelper;
     private ItemBridgeAdapter.Wrapper mShadowOverlayWrapper;
 
     private static int sSelectedRowTopPadding;
@@ -484,7 +484,7 @@
     /*
      * Perform operations when a child of horizontal grid view is selected.
      */
-    private void selectChildView(ViewHolder rowViewHolder, View view, boolean fireEvent) {
+    void selectChildView(ViewHolder rowViewHolder, View view, boolean fireEvent) {
         if (view != null) {
             if (rowViewHolder.mSelected) {
                 ItemBridgeAdapter.ViewHolder ibh = (ItemBridgeAdapter.ViewHolder)
diff --git a/v17/leanback/src/android/support/v17/leanback/widget/ObjectAdapter.java b/v17/leanback/src/android/support/v17/leanback/widget/ObjectAdapter.java
index c464814..026d9a0 100644
--- a/v17/leanback/src/android/support/v17/leanback/widget/ObjectAdapter.java
+++ b/v17/leanback/src/android/support/v17/leanback/widget/ObjectAdapter.java
@@ -72,6 +72,9 @@
 
     private static final class DataObservable extends Observable<DataObserver> {
 
+        DataObservable() {
+        }
+
         public void notifyChanged() {
             for (int i = mObservers.size() - 1; i >= 0; i--) {
                 mObservers.get(i).onChanged();
diff --git a/v17/leanback/src/android/support/v17/leanback/widget/PagingIndicator.java b/v17/leanback/src/android/support/v17/leanback/widget/PagingIndicator.java
index 94ab8d8..2c984a7 100644
--- a/v17/leanback/src/android/support/v17/leanback/widget/PagingIndicator.java
+++ b/v17/leanback/src/android/support/v17/leanback/widget/PagingIndicator.java
@@ -88,12 +88,12 @@
     };
 
     // attribute
-    private boolean mIsLtr;
-    private final int mDotDiameter;
-    private final int mDotRadius;
+    boolean mIsLtr;
+    final int mDotDiameter;
+    final int mDotRadius;
     private final int mDotGap;
-    private final int mArrowDiameter;
-    private final int mArrowRadius;
+    final int mArrowDiameter;
+    final int mArrowRadius;
     private final int mArrowGap;
     private final int mShadowRadius;
     private Dot[] mDots;
@@ -103,7 +103,7 @@
     private int[] mDotSelectedPrevX;
     // X position when the dot is located to the right of the selected dot.
     private int[] mDotSelectedNextX;
-    private int mDotCenterY;
+    int mDotCenterY;
 
     // state
     private int mPageCount;
@@ -112,15 +112,15 @@
 
     // drawing
     @ColorInt
-    private final int mDotFgSelectColor;
-    private final Paint mBgPaint;
-    private final Paint mFgPaint;
+    final int mDotFgSelectColor;
+    final Paint mBgPaint;
+    final Paint mFgPaint;
     private final AnimatorSet mShowAnimator;
     private final AnimatorSet mHideAnimator;
     private final AnimatorSet mAnimator = new AnimatorSet();
-    private Bitmap mArrow;
-    private final Rect mArrowRect;
-    private final float mArrowToBgRatio;
+    Bitmap mArrow;
+    final Rect mArrowRect;
+    final float mArrowToBgRatio;
 
     public PagingIndicator(Context context) {
         this(context, null, 0);
diff --git a/v17/leanback/src/android/support/v17/leanback/widget/PlaybackControlsPresenter.java b/v17/leanback/src/android/support/v17/leanback/widget/PlaybackControlsPresenter.java
index 17225f8..da6c98d 100644
--- a/v17/leanback/src/android/support/v17/leanback/widget/PlaybackControlsPresenter.java
+++ b/v17/leanback/src/android/support/v17/leanback/widget/PlaybackControlsPresenter.java
@@ -179,7 +179,7 @@
         }
     }
 
-    private static void formatTime(int seconds, StringBuilder sb) {
+    static void formatTime(int seconds, StringBuilder sb) {
         int minutes = seconds / 60;
         int hours = minutes / 60;
         seconds -= minutes * 60;
diff --git a/v17/leanback/src/android/support/v17/leanback/widget/PlaybackControlsRow.java b/v17/leanback/src/android/support/v17/leanback/widget/PlaybackControlsRow.java
index 642beef..098cf60 100644
--- a/v17/leanback/src/android/support/v17/leanback/widget/PlaybackControlsRow.java
+++ b/v17/leanback/src/android/support/v17/leanback/widget/PlaybackControlsRow.java
@@ -587,7 +587,7 @@
         }
     }
 
-    private static Bitmap createBitmap(Bitmap bitmap, int color) {
+    static Bitmap createBitmap(Bitmap bitmap, int color) {
         Bitmap dst = bitmap.copy(bitmap.getConfig(), true);
         Canvas canvas = new Canvas(dst);
         Paint paint = new Paint();
@@ -596,7 +596,7 @@
         return dst;
     }
 
-    private static int getIconHighlightColor(Context context) {
+    static int getIconHighlightColor(Context context) {
         TypedValue outValue = new TypedValue();
         if (context.getTheme().resolveAttribute(R.attr.playbackControlsIconHighlightColor,
                 outValue, true)) {
@@ -605,7 +605,7 @@
         return context.getResources().getColor(R.color.lb_playback_icon_highlight_no_theme);
     }
 
-    private static Drawable getStyledDrawable(Context context, int index) {
+    static Drawable getStyledDrawable(Context context, int index) {
         TypedValue outValue = new TypedValue();
         if (!context.getTheme().resolveAttribute(
                 R.attr.playbackControlsActionIcons, outValue, false)) {
diff --git a/v17/leanback/src/android/support/v17/leanback/widget/PlaybackControlsRowPresenter.java b/v17/leanback/src/android/support/v17/leanback/widget/PlaybackControlsRowPresenter.java
index b43fdb7..fc4163e 100644
--- a/v17/leanback/src/android/support/v17/leanback/widget/PlaybackControlsRowPresenter.java
+++ b/v17/leanback/src/android/support/v17/leanback/widget/PlaybackControlsRowPresenter.java
@@ -154,10 +154,10 @@
     private boolean mProgressColorSet;
     private boolean mSecondaryActionsHidden;
     private Presenter mDescriptionPresenter;
-    private PlaybackControlsPresenter mPlaybackControlsPresenter;
+    PlaybackControlsPresenter mPlaybackControlsPresenter;
     private ControlBarPresenter mSecondaryControlsPresenter;
-    private OnActionClickedListener mOnActionClickedListener;
-    private static float sShadowZ;
+    OnActionClickedListener mOnActionClickedListener;
+    static float sShadowZ;
 
     private final OnControlSelectedListener mOnControlSelectedListener =
             new OnControlSelectedListener() {
diff --git a/v17/leanback/src/android/support/v17/leanback/widget/RoundedRectHelper.java b/v17/leanback/src/android/support/v17/leanback/widget/RoundedRectHelper.java
index 35a5b67..f9382ff 100644
--- a/v17/leanback/src/android/support/v17/leanback/widget/RoundedRectHelper.java
+++ b/v17/leanback/src/android/support/v17/leanback/widget/RoundedRectHelper.java
@@ -59,6 +59,9 @@
      * Implementation used prior to L.
      */
     private static final class StubImpl implements Impl {
+        StubImpl() {
+        }
+
         @Override
         public void setClipToRoundedOutline(View view, boolean clip, int radius) {
             // Not supported
@@ -69,6 +72,9 @@
      * Implementation used on api 21 (and above).
      */
     private static final class Api21Impl implements Impl {
+        Api21Impl() {
+        }
+
         @Override
         public void setClipToRoundedOutline(View view, boolean clip, int radius) {
             RoundedRectHelperApi21.setClipToRoundedOutline(view, clip, radius);
diff --git a/v17/leanback/src/android/support/v17/leanback/widget/RowPresenter.java b/v17/leanback/src/android/support/v17/leanback/widget/RowPresenter.java
index d53e38c..68f0787 100644
--- a/v17/leanback/src/android/support/v17/leanback/widget/RowPresenter.java
+++ b/v17/leanback/src/android/support/v17/leanback/widget/RowPresenter.java
@@ -153,7 +153,7 @@
         float mSelectLevel = 0f; // initially unselected
         protected final ColorOverlayDimmer mColorDimmer;
         private View.OnKeyListener mOnKeyListener;
-        private BaseOnItemViewSelectedListener mOnItemViewSelectedListener;
+        BaseOnItemViewSelectedListener mOnItemViewSelectedListener;
         private BaseOnItemViewClickedListener mOnItemViewClickedListener;
 
         /**
@@ -329,7 +329,7 @@
 
     /**
      * Called to create a ViewHolder object for a Row. Subclasses will override
-     * this method to return a different concrete ViewHolder object. 
+     * this method to return a different concrete ViewHolder object.
      *
      * @param parent The parent View for the Row's view holder.
      * @return A ViewHolder for the Row's View.
diff --git a/v17/leanback/src/android/support/v17/leanback/widget/SearchBar.java b/v17/leanback/src/android/support/v17/leanback/widget/SearchBar.java
index d9d44d2..09706bb 100644
--- a/v17/leanback/src/android/support/v17/leanback/widget/SearchBar.java
+++ b/v17/leanback/src/android/support/v17/leanback/widget/SearchBar.java
@@ -63,14 +63,14 @@
  * </p>
  */
 public class SearchBar extends RelativeLayout {
-    private static final String TAG = SearchBar.class.getSimpleName();
-    private static final boolean DEBUG = false;
+    static final String TAG = SearchBar.class.getSimpleName();
+    static final boolean DEBUG = false;
 
-    private static final float FULL_LEFT_VOLUME = 1.0f;
-    private static final float FULL_RIGHT_VOLUME = 1.0f;
-    private static final int DEFAULT_PRIORITY = 1;
-    private static final int DO_NOT_LOOP = 0;
-    private static final float DEFAULT_RATE = 1.0f;
+    static final float FULL_LEFT_VOLUME = 1.0f;
+    static final float FULL_RIGHT_VOLUME = 1.0f;
+    static final int DEFAULT_PRIORITY = 1;
+    static final int DO_NOT_LOOP = 0;
+    static final float DEFAULT_RATE = 1.0f;
 
     /**
      * Interface for receiving notification of search query changes.
@@ -125,17 +125,17 @@
                 }
             };
 
-    private SearchBarListener mSearchBarListener;
-    private SearchEditText mSearchTextEditor;
-    private SpeechOrbView mSpeechOrbView;
+    SearchBarListener mSearchBarListener;
+    SearchEditText mSearchTextEditor;
+    SpeechOrbView mSpeechOrbView;
     private ImageView mBadgeView;
-    private String mSearchQuery;
+    String mSearchQuery;
     private String mHint;
     private String mTitle;
     private Drawable mBadgeDrawable;
-    private final Handler mHandler = new Handler();
+    final Handler mHandler = new Handler();
     private final InputMethodManager mInputMethodManager;
-    private boolean mAutoStartRecognition = false;
+    boolean mAutoStartRecognition = false;
     private Drawable mBarBackground;
 
     private final int mTextColor;
@@ -148,9 +148,9 @@
     private SpeechRecognizer mSpeechRecognizer;
     private SpeechRecognitionCallback mSpeechRecognitionCallback;
     private boolean mListening;
-    private SoundPool mSoundPool;
-    private SparseIntArray mSoundMap = new SparseIntArray();
-    private boolean mRecognizing = false;
+    SoundPool mSoundPool;
+    SparseIntArray mSoundMap = new SparseIntArray();
+    boolean mRecognizing = false;
     private final Context mContext;
     private AudioManager mAudioManager;
     private SearchBarPermissionListener mPermissionListener;
@@ -366,7 +366,7 @@
         setSearchQueryInternal(query);
     }
 
-    private void setSearchQueryInternal(String query) {
+    void setSearchQueryInternal(String query) {
         if (DEBUG) Log.v(TAG, "setSearchQueryInternal " + query);
         if (TextUtils.equals(mSearchQuery, query)) {
             return;
@@ -480,12 +480,12 @@
         }
     }
 
-    private void hideNativeKeyboard() {
+    void hideNativeKeyboard() {
         mInputMethodManager.hideSoftInputFromWindow(mSearchTextEditor.getWindowToken(),
                 InputMethodManager.RESULT_UNCHANGED_SHOWN);
     }
 
-    private void showNativeKeyboard() {
+    void showNativeKeyboard() {
         mHandler.post(new Runnable() {
             @Override
             public void run() {
@@ -520,7 +520,7 @@
         }
     }
 
-    private void toggleRecognition() {
+    void toggleRecognition() {
         if (mRecognizing) {
             stopRecognition();
         } else {
@@ -741,7 +741,7 @@
         mSpeechRecognizer.startListening(recognizerIntent);
     }
 
-    private void updateUi(boolean hasFocus) {
+    void updateUi(boolean hasFocus) {
         if (hasFocus) {
             mBarBackground.setAlpha(mBackgroundSpeechAlpha);
             if (isVoiceMode()) {
@@ -764,7 +764,7 @@
         return mSpeechOrbView.isFocused();
     }
 
-    private void submitQuery() {
+    void submitQuery() {
         if (!TextUtils.isEmpty(mSearchQuery) && null != mSearchBarListener) {
             mSearchBarListener.onSearchQuerySubmit(mSearchQuery);
         }
@@ -793,11 +793,11 @@
         });
     }
 
-    private void playSearchOpen() {
+    void playSearchOpen() {
         play(R.raw.lb_voice_open);
     }
 
-    private void playSearchFailure() {
+    void playSearchFailure() {
         play(R.raw.lb_voice_failure);
     }
 
@@ -805,7 +805,7 @@
         play(R.raw.lb_voice_no_input);
     }
 
-    private void playSearchSuccess() {
+    void playSearchSuccess() {
         play(R.raw.lb_voice_success);
     }
 
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 2f315f7..8269f60 100644
--- a/v17/leanback/src/android/support/v17/leanback/widget/SearchOrbView.java
+++ b/v17/leanback/src/android/support/v17/leanback/widget/SearchOrbView.java
@@ -146,7 +146,7 @@
         }
     };
 
-    private void setSearchOrbZ(float fraction) {
+    void setSearchOrbZ(float fraction) {
         ShadowHelper.getInstance().setZ(mSearchOrbView,
                 mUnfocusedZ + fraction * (mFocusedZ - mUnfocusedZ));
     }
@@ -359,7 +359,7 @@
         }
     }
 
-    private void setOrbViewColor(int color) {
+    void setOrbViewColor(int color) {
         if (mSearchOrbView.getBackground() instanceof GradientDrawable) {
             ((GradientDrawable) mSearchOrbView.getBackground()).setColor(color);
         }
diff --git a/v17/leanback/src/android/support/v17/leanback/widget/ShadowHelper.java b/v17/leanback/src/android/support/v17/leanback/widget/ShadowHelper.java
index aec9673..e5fb61d 100644
--- a/v17/leanback/src/android/support/v17/leanback/widget/ShadowHelper.java
+++ b/v17/leanback/src/android/support/v17/leanback/widget/ShadowHelper.java
@@ -40,6 +40,9 @@
      * Interface used when we do not support Shadow animations.
      */
     private static final class ShadowHelperStubImpl implements ShadowHelperVersionImpl {
+        ShadowHelperStubImpl() {
+        }
+
         @Override
         public Object addDynamicShadow(
                 View shadowContainer, float focusedZ, float unfocusedZ, int roundedCornerRadius) {
@@ -62,6 +65,9 @@
      * Implementation used on api 21 (and above).
      */
     private static final class ShadowHelperApi21Impl implements ShadowHelperVersionImpl {
+        ShadowHelperApi21Impl() {
+        }
+
         @Override
         public Object addDynamicShadow(
                 View shadowContainer, float unfocusedZ, float focusedZ, int roundedCornerRadius) {
diff --git a/v17/leanback/src/android/support/v17/leanback/widget/StaticShadowHelper.java b/v17/leanback/src/android/support/v17/leanback/widget/StaticShadowHelper.java
index aa82866..6c6e664 100644
--- a/v17/leanback/src/android/support/v17/leanback/widget/StaticShadowHelper.java
+++ b/v17/leanback/src/android/support/v17/leanback/widget/StaticShadowHelper.java
@@ -42,6 +42,9 @@
      * Interface used when we do not support Shadow animations.
      */
     private static final class ShadowHelperStubImpl implements ShadowHelperVersionImpl {
+        ShadowHelperStubImpl() {
+        }
+
         @Override
         public void prepareParent(ViewGroup parent) {
             // do nothing
@@ -63,6 +66,9 @@
      * Implementation used on JBMR2 (and above).
      */
     private static final class ShadowHelperJbmr2Impl implements ShadowHelperVersionImpl {
+        ShadowHelperJbmr2Impl() {
+        }
+
         @Override
         public void prepareParent(ViewGroup parent) {
             ShadowHelperJbmr2.prepareParent(parent);
diff --git a/v17/leanback/src/android/support/v17/leanback/widget/StreamingTextView.java b/v17/leanback/src/android/support/v17/leanback/widget/StreamingTextView.java
index b4b4b8f..5bc0a8c 100644
--- a/v17/leanback/src/android/support/v17/leanback/widget/StreamingTextView.java
+++ b/v17/leanback/src/android/support/v17/leanback/widget/StreamingTextView.java
@@ -49,7 +49,7 @@
     private static final float TEXT_DOT_SCALE = 1.3F;
     private static final boolean DOTS_FOR_STABLE = false;
     private static final boolean DOTS_FOR_PENDING = true;
-    private static final boolean ANIMATE_DOTS_FOR_PENDING = true;
+    static final boolean ANIMATE_DOTS_FOR_PENDING = true;
 
     private static final long STREAM_UPDATE_DELAY_MILLIS = 50;
 
@@ -69,12 +69,12 @@
         }
     };
 
-    private final Random mRandom = new Random();
+    final Random mRandom = new Random();
 
-    private Bitmap mOneDot;
-    private Bitmap mTwoDot;
+    Bitmap mOneDot;
+    Bitmap mTwoDot;
 
-    private int mStreamPosition;
+    int mStreamPosition;
     private ObjectAnimator mStreamingAnimation;
 
     public StreamingTextView(Context context, AttributeSet attrs) {
@@ -154,11 +154,11 @@
         }
     }
 
-    private int getStreamPosition() {
+    int getStreamPosition() {
         return mStreamPosition;
     }
 
-    private void setStreamPosition(int streamPosition) {
+    void setStreamPosition(int streamPosition) {
         mStreamPosition = streamPosition;
         invalidate();
     }
diff --git a/v17/leanback/src/android/support/v17/leanback/widget/TitleHelper.java b/v17/leanback/src/android/support/v17/leanback/widget/TitleHelper.java
index 6f76c0e..c8b4133 100644
--- a/v17/leanback/src/android/support/v17/leanback/widget/TitleHelper.java
+++ b/v17/leanback/src/android/support/v17/leanback/widget/TitleHelper.java
@@ -29,8 +29,8 @@
  */
 public class TitleHelper {
 
-    private ViewGroup mSceneRoot;
-    private View mTitleView;
+    ViewGroup mSceneRoot;
+    View mTitleView;
     private Object mTitleUpTransition;
     private Object mTitleDownTransition;
     private Object mSceneWithTitle;
diff --git a/v17/leanback/src/android/support/v17/leanback/widget/VerticalGridPresenter.java b/v17/leanback/src/android/support/v17/leanback/widget/VerticalGridPresenter.java
index 261cadc..998542b 100644
--- a/v17/leanback/src/android/support/v17/leanback/widget/VerticalGridPresenter.java
+++ b/v17/leanback/src/android/support/v17/leanback/widget/VerticalGridPresenter.java
@@ -99,7 +99,7 @@
     private OnItemViewSelectedListener mOnItemViewSelectedListener;
     private OnItemViewClickedListener mOnItemViewClickedListener;
     private boolean mRoundedCornersEnabled = true;
-    private ShadowOverlayHelper mShadowOverlayHelper;
+    ShadowOverlayHelper mShadowOverlayHelper;
     private ItemBridgeAdapter.Wrapper mShadowOverlayWrapper;
 
     /**
@@ -378,7 +378,7 @@
         return mOnItemViewClickedListener;
     }
 
-    private void selectChildView(ViewHolder vh, View view) {
+    void selectChildView(ViewHolder vh, View view) {
         if (getOnItemViewSelectedListener() != null) {
             ItemBridgeAdapter.ViewHolder ibh = (view == null) ? null :
                     (ItemBridgeAdapter.ViewHolder) vh.getGridView().getChildViewHolder(view);
diff --git a/v17/leanback/src/android/support/v17/leanback/widget/WindowAlignment.java b/v17/leanback/src/android/support/v17/leanback/widget/WindowAlignment.java
index ad714e0..0e8ce24 100644
--- a/v17/leanback/src/android/support/v17/leanback/widget/WindowAlignment.java
+++ b/v17/leanback/src/android/support/v17/leanback/widget/WindowAlignment.java
@@ -38,11 +38,11 @@
          * will be scaled up.
          */
         private float mScrollCenter;
-        /** 
-         * Right or bottom edge of last child. 
+        /**
+         * Right or bottom edge of last child.
          */
         private int mMaxEdge;
-        /** 
+        /**
          * Left or top edge of first child, typically should be zero.
          */
         private int mMinEdge;
@@ -159,7 +159,7 @@
             return scrollTarget;
         }
 
-        private void reset() {
+        void reset() {
             mScrollCenter = Integer.MIN_VALUE;
             mMinEdge = Integer.MIN_VALUE;
             mMaxEdge = Integer.MAX_VALUE;
diff --git a/v17/leanback/src/android/support/v17/leanback/widget/picker/DatePicker.java b/v17/leanback/src/android/support/v17/leanback/widget/picker/DatePicker.java
index 542634b2ac..536428d 100644
--- a/v17/leanback/src/android/support/v17/leanback/widget/picker/DatePicker.java
+++ b/v17/leanback/src/android/support/v17/leanback/widget/picker/DatePicker.java
@@ -352,7 +352,7 @@
     // scrolling vertically and thus fixes the animation jumps that used to happen when we reached
     // the endpoint date field values since the adapter values do not change while scrolling up
     // & down across a single field.
-    private void updateSpinnersImpl(boolean animation) {
+    void updateSpinnersImpl(boolean animation) {
         // set the spinner ranges respecting the min and max dates
         int dateFieldIndices[] = {mColDayIndex, mColMonthIndex, mColYearIndex};
 
diff --git a/v17/leanback/src/android/support/v17/leanback/widget/picker/Picker.java b/v17/leanback/src/android/support/v17/leanback/widget/picker/Picker.java
index c2048f6..ca539a8 100644
--- a/v17/leanback/src/android/support/v17/leanback/widget/picker/Picker.java
+++ b/v17/leanback/src/android/support/v17/leanback/widget/picker/Picker.java
@@ -59,8 +59,8 @@
 
     private ViewGroup mRootView;
     private ViewGroup mPickerView;
-    private final List<VerticalGridView> mColumnViews = new ArrayList<VerticalGridView>();
-    private ArrayList<PickerColumn> mColumns;
+    final List<VerticalGridView> mColumnViews = new ArrayList<VerticalGridView>();
+    ArrayList<PickerColumn> mColumns;
 
     private float mUnfocusedAlpha;
     private float mFocusedAlpha;
@@ -283,7 +283,7 @@
         }
     }
 
-    private void updateColumnAlpha(int colIndex, boolean animate) {
+    void updateColumnAlpha(int colIndex, boolean animate) {
         VerticalGridView column = mColumnViews.get(colIndex);
 
         int selected = column.getSelectedPosition();
@@ -297,7 +297,7 @@
         }
     }
 
-    private void setOrAnimateAlpha(View view, boolean selected, int colIndex,
+    void setOrAnimateAlpha(View view, boolean selected, int colIndex,
             boolean animate) {
         boolean columnShownAsActivated = colIndex == mSelectedColumn || !hasFocus();
         if (selected) {