Make SlidingTabLayout fully stylable

Make the tabs look the same as they looked when we used the
PagerTabStrip.

Change-Id: I3180f943aaf8d14b5802d158eec7294d171abb1f
Signed-off-by: Edwin Kempin <ekempin@google.com>
diff --git a/app/src/main/java/com/google/reviewit/PagedChangeDetailsFragment.java b/app/src/main/java/com/google/reviewit/PagedChangeDetailsFragment.java
index 947d35e..45c4eed 100644
--- a/app/src/main/java/com/google/reviewit/PagedChangeDetailsFragment.java
+++ b/app/src/main/java/com/google/reviewit/PagedChangeDetailsFragment.java
@@ -86,8 +86,12 @@
         });
 
     SlidingTabLayout tabs = ((SlidingTabLayout) v(R.id.tabs));
+    tabs.setTextColor(widgetUtil.color(R.color.tab));
     tabs.setSelectedIndicatorColors(widgetUtil.color(R.color.tab));
+    tabs.setBorderColor(widgetUtil.color(R.color.tab));
     tabs.setDividerColors(widgetUtil.color(R.color.tabDivider));
+    tabs.setBottomBorderThickness(widgetUtil.dpToPx(1));
+    tabs.setSelectedIndicatorThickness(widgetUtil.dpToPx(5));
     tabs.setViewPager(pager);
   }
 }
diff --git a/app/src/main/java/com/google/reviewit/widget/SlidingTabLayout.java b/app/src/main/java/com/google/reviewit/widget/SlidingTabLayout.java
index 61e9ef5..20904e4 100644
--- a/app/src/main/java/com/google/reviewit/widget/SlidingTabLayout.java
+++ b/app/src/main/java/com/google/reviewit/widget/SlidingTabLayout.java
@@ -74,6 +74,8 @@
     private int mTabViewLayoutId;
     private int mTabViewTextViewId;
 
+    private int mTextColor = -1;
+
     private ViewPager mViewPager;
     private ViewPager.OnPageChangeListener mViewPagerPageChangeListener;
 
@@ -128,6 +130,22 @@
         mTabStrip.setDividerColors(colors);
     }
 
+    public void setTextColor(int color) {
+        mTextColor = color;
+    }
+
+    public void setBorderColor(int color) {
+        mTabStrip.setBorderColor(color);
+    }
+
+    public void setBottomBorderThickness(int bottomBorderThickness) {
+        mTabStrip.setBottomBorderThickness(bottomBorderThickness);
+    }
+
+    public void setSelectedIndicatorThickness(int selectedIndicatorThickness) {
+        mTabStrip.setSelectedIndicatorThickness(selectedIndicatorThickness);
+    }
+
     /**
      * Set the {@link ViewPager.OnPageChangeListener}. When using {@link SlidingTabLayout} you are
      * required to set any {@link ViewPager.OnPageChangeListener} through this method. This is so
@@ -218,6 +236,10 @@
             }
 
             tabTitleView.setText(adapter.getPageTitle(i));
+            if (mTextColor != -1) {
+                tabTitleView.setTextColor(mTextColor);
+            }
+
             tabView.setOnClickListener(tabClickListener);
 
             mTabStrip.addView(tabView);
diff --git a/app/src/main/java/com/google/reviewit/widget/SlidingTabStrip.java b/app/src/main/java/com/google/reviewit/widget/SlidingTabStrip.java
index c8b9701..817cfc4 100644
--- a/app/src/main/java/com/google/reviewit/widget/SlidingTabStrip.java
+++ b/app/src/main/java/com/google/reviewit/widget/SlidingTabStrip.java
@@ -37,10 +37,10 @@
     private static final byte DEFAULT_DIVIDER_COLOR_ALPHA = 0x20;
     private static final float DEFAULT_DIVIDER_HEIGHT = 0.5f;
 
-    private final int mBottomBorderThickness;
+    private int mBottomBorderThickness;
     private final Paint mBottomBorderPaint;
 
-    private final int mSelectedIndicatorThickness;
+    private int mSelectedIndicatorThickness;
     private final Paint mSelectedIndicatorPaint;
 
     private final int mDefaultBottomBorderColor;
@@ -107,6 +107,21 @@
         invalidate();
     }
 
+    void setBorderColor(int color) {
+        mBottomBorderPaint.setColor(color);
+        invalidate();
+    }
+
+    void setBottomBorderThickness(int bottomBorderThickness) {
+        mBottomBorderThickness = bottomBorderThickness;
+        invalidate();
+    }
+
+    void setSelectedIndicatorThickness(int selectedIndicatorThickness) {
+        mSelectedIndicatorThickness = selectedIndicatorThickness;
+        invalidate();
+    }
+
     void onViewPagerPageChanged(int position, float positionOffset) {
         mSelectedPosition = position;
         mSelectionOffset = positionOffset;