Bug 1254944 - Move changes to generated ThemedImageButton to generator script. r=grisha draft
authorChenxia Liu <liuche@mozilla.com>
Wed, 09 Mar 2016 10:48:02 -0800
changeset 338880 565dfe87fd9ae5177236e37d7ebcc61699c80c00
parent 338652 6009eb63149d0dcacfa659b6d84a6f1eaa898c06
child 515872 cf184ac3fcd2c15b0e26843626c2d8a4e37ff2d9
push id12596
push usercliu@mozilla.com
push dateThu, 10 Mar 2016 03:03:21 +0000
reviewersgrisha
bugs1254944
milestone48.0a1
Bug 1254944 - Move changes to generated ThemedImageButton to generator script. r=grisha MozReview-Commit-ID: Gsnyf1CYE2e
mobile/android/base/java/org/mozilla/gecko/widget/themed/ThemedImageButton.java
mobile/android/base/java/org/mozilla/gecko/widget/themed/ThemedImageView.java
mobile/android/base/java/org/mozilla/gecko/widget/themed/ThemedView.java.frag
mobile/android/base/java/org/mozilla/gecko/widget/themed/generate_themed_views.py
--- a/mobile/android/base/java/org/mozilla/gecko/widget/themed/ThemedImageButton.java
+++ b/mobile/android/base/java/org/mozilla/gecko/widget/themed/ThemedImageButton.java
@@ -173,20 +173,19 @@ public class ThemedImageButton extends a
     @Override
     public void setImageDrawable(final Drawable drawable) {
         setTintedImageDrawable(drawable);
     }
 
     private void setTintedImageDrawable(final Drawable drawable) {
         final Drawable tintedDrawable;
         if (drawableColors == null || R.id.bookmark == getId()) {
+            // NB: The bookmarked state uses a blue star, so this is a hack to keep it untinted.
             // NB: If we tint a drawable with a null ColorStateList, it will override
             // any existing colorFilters and tint... so don't!
-
-            // NB: The bookmarked state uses a blue star, so this is a hack to keep it from being tinted.
             tintedDrawable = drawable;
         } else if (drawable == null) {
             tintedDrawable = null;
         } else {
             tintedDrawable = DrawableUtil.tintDrawableWithStateList(drawable, drawableColors);
         }
         super.setImageDrawable(tintedDrawable);
     }
--- a/mobile/android/base/java/org/mozilla/gecko/widget/themed/ThemedImageView.java
+++ b/mobile/android/base/java/org/mozilla/gecko/widget/themed/ThemedImageView.java
@@ -173,17 +173,17 @@ public class ThemedImageView extends and
     @Override
     public void setImageDrawable(final Drawable drawable) {
         setTintedImageDrawable(drawable);
     }
 
     private void setTintedImageDrawable(final Drawable drawable) {
         final Drawable tintedDrawable;
         if (drawableColors == null) {
-            // If we tint a drawable with a null ColorStateList, it will override
+            // NB: If we tint a drawable with a null ColorStateList, it will override
             // any existing colorFilters and tint... so don't!
             tintedDrawable = drawable;
         } else if (drawable == null) {
             tintedDrawable = null;
         } else {
             tintedDrawable = DrawableUtil.tintDrawableWithStateList(drawable, drawableColors);
         }
         super.setImageDrawable(tintedDrawable);
--- a/mobile/android/base/java/org/mozilla/gecko/widget/themed/ThemedView.java.frag
+++ b/mobile/android/base/java/org/mozilla/gecko/widget/themed/ThemedView.java.frag
@@ -178,18 +178,23 @@ public class Themed@VIEW_NAME_SUFFIX@ ex
 //#ifdef TINT_FOREGROUND_DRAWABLE
     @Override
     public void setImageDrawable(final Drawable drawable) {
         setTintedImageDrawable(drawable);
     }
 
     private void setTintedImageDrawable(final Drawable drawable) {
         final Drawable tintedDrawable;
+//#ifdef BOOKMARK_NO_TINT
+        if (drawableColors == null || R.id.bookmark == getId()) {
+            // NB: The bookmarked state uses a blue star, so this is a hack to keep it untinted.
+//#else
         if (drawableColors == null) {
-            // If we tint a drawable with a null ColorStateList, it will override
+//#endif
+            // NB: If we tint a drawable with a null ColorStateList, it will override
             // any existing colorFilters and tint... so don't!
             tintedDrawable = drawable;
         } else if (drawable == null) {
             tintedDrawable = null;
         } else {
             tintedDrawable = DrawableUtil.tintDrawableWithStateList(drawable, drawableColors);
         }
         super.setImageDrawable(tintedDrawable);
--- a/mobile/android/base/java/org/mozilla/gecko/widget/themed/generate_themed_views.py
+++ b/mobile/android/base/java/org/mozilla/gecko/widget/themed/generate_themed_views.py
@@ -7,17 +7,17 @@
 
 '''
 Script to generate Themed*.java source files for Fennec.
 
 This script runs the preprocessor on a input template and writes
 updated files into the source directory.
 
 To update the themed views, update the input template
-(ThemedView.java.frag) and run the script.  Use version control to
+(ThemedView.java.frag) and run the script using 'mach python <script.py>'.  Use version control to
 examine the differences, and don't forget to commit the changes to the
 template and the outputs.
 '''
 
 from __future__ import (
     print_function,
     unicode_literals,
 )
@@ -36,17 +36,18 @@ views = [
          BASE_TYPE='android.widget.EditText',
          STYLE_CONSTRUCTOR=1),
     dict(VIEW_NAME_SUFFIX='FrameLayout',
          BASE_TYPE='android.widget.FrameLayout',
          STYLE_CONSTRUCTOR=1),
     dict(VIEW_NAME_SUFFIX='ImageButton',
          BASE_TYPE='android.widget.ImageButton',
          STYLE_CONSTRUCTOR=1,
-         TINT_FOREGROUND_DRAWABLE=1),
+         TINT_FOREGROUND_DRAWABLE=1,
+         BOOKMARK_NO_TINT=1),
     dict(VIEW_NAME_SUFFIX='ImageView',
          BASE_TYPE='android.widget.ImageView',
          STYLE_CONSTRUCTOR=1,
          TINT_FOREGROUND_DRAWABLE=1),
     dict(VIEW_NAME_SUFFIX='LinearLayout',
          BASE_TYPE='android.widget.LinearLayout'),
     dict(VIEW_NAME_SUFFIX='RelativeLayout',
          BASE_TYPE='android.widget.RelativeLayout',