Bug 1085487 - Part 3: Center new bookmarks button on xlarge tablet, compensate for reload button. r=lucasr
authorMichael Comella <michael.l.comella@gmail.com>
Wed, 19 Nov 2014 17:37:03 -0800
changeset 240870 5089a4ce113ba061457a4bd29b90c983c68156c6
parent 240869 1b946e43e5dc3854d6436ed98e42a6f3a3a80641
child 240871 c276e2d77d27f551cd85c2aa14103abcf13c24d0
push id4311
push userraliiev@mozilla.com
push dateMon, 12 Jan 2015 19:37:41 +0000
treeherdermozilla-beta@150c9fed433b [default view] [failures only]
perfherder[talos] [build metrics] [platform microbench] (compared to previous push)
reviewerslucasr
bugs1085487
milestone36.0a1
first release with
nightly linux32
nightly linux64
nightly mac
nightly win32
nightly win64
last release without
nightly linux32
nightly linux64
nightly mac
nightly win32
nightly win64
Bug 1085487 - Part 3: Center new bookmarks button on xlarge tablet, compensate for reload button. r=lucasr
mobile/android/base/BrowserApp.java
mobile/android/base/menu/GeckoMenuInflater.java
mobile/android/base/newtablet/res/drawable-large-hdpi-v11/new_tablet_ic_menu_reload.png
mobile/android/base/newtablet/res/drawable-large-mdpi-v11/new_tablet_ic_menu_reload.png
mobile/android/base/newtablet/res/drawable-large-xhdpi-v11/new_tablet_ic_menu_reload.png
mobile/android/base/newtablet/res/drawable-large-xxhdpi-v11/new_tablet_ic_menu_reload.png
mobile/android/base/newtablet/res/drawable-xlarge-hdpi-v11/new_tablet_ic_menu_bookmark_add.png
mobile/android/base/newtablet/res/drawable-xlarge-hdpi-v11/new_tablet_ic_menu_bookmark_remove.png
mobile/android/base/newtablet/res/drawable-xlarge-mdpi-v11/new_tablet_ic_menu_bookmark_add.png
mobile/android/base/newtablet/res/drawable-xlarge-mdpi-v11/new_tablet_ic_menu_bookmark_remove.png
mobile/android/base/newtablet/res/drawable-xlarge-xhdpi-v11/new_tablet_ic_menu_bookmark_add.png
mobile/android/base/newtablet/res/drawable-xlarge-xhdpi-v11/new_tablet_ic_menu_bookmark_remove.png
mobile/android/base/newtablet/res/drawable-xlarge-xxhdpi-v11/new_tablet_ic_menu_bookmark_add.png
mobile/android/base/newtablet/res/drawable-xlarge-xxhdpi-v11/new_tablet_ic_menu_bookmark_remove.png
mobile/android/base/resources/drawable/new_tablet_ic_menu_bookmark_add.xml
mobile/android/base/resources/drawable/new_tablet_ic_menu_bookmark_remove.xml
mobile/android/base/resources/values-large-v11/styles.xml
--- a/mobile/android/base/BrowserApp.java
+++ b/mobile/android/base/BrowserApp.java
@@ -2732,17 +2732,17 @@ public class BrowserApp extends GeckoApp
 
             return true;
         }
 
         bookmark.setEnabled(!AboutPages.isAboutReader(tab.getURL()));
         bookmark.setVisible(!GeckoProfile.get(this).inGuestMode());
         bookmark.setCheckable(true);
         bookmark.setChecked(tab.isBookmark());
-        bookmark.setIcon(tab.isBookmark() ? R.drawable.ic_menu_bookmark_remove : R.drawable.ic_menu_bookmark_add);
+        bookmark.setIcon(resolveBookmarkIconID(tab.isBookmark()));
 
         back.setEnabled(tab.canDoBack());
         forward.setEnabled(tab.canDoForward());
         desktopMode.setChecked(tab.getDesktopMode());
         desktopMode.setIcon(tab.getDesktopMode() ? R.drawable.ic_menu_desktop_mode_on : R.drawable.ic_menu_desktop_mode_off);
 
         String url = tab.getURL();
         if (AboutPages.isAboutReader(url)) {
@@ -2831,16 +2831,32 @@ public class BrowserApp extends GeckoApp
             exitGuestMode.setVisible(true);
         } else {
             enterGuestMode.setVisible(true);
         }
 
         return true;
     }
 
+    private int resolveBookmarkIconID(final boolean isBookmark) {
+        if (NewTabletUI.isEnabled(this) && HardwareUtils.isLargeTablet()) {
+            if (isBookmark) {
+                return R.drawable.new_tablet_ic_menu_bookmark_remove;
+            } else {
+                return R.drawable.new_tablet_ic_menu_bookmark_add;
+            }
+        }
+
+        if (isBookmark) {
+            return R.drawable.ic_menu_bookmark_remove;
+        } else {
+            return R.drawable.ic_menu_bookmark_add;
+        }
+    }
+
     @Override
     public boolean onOptionsItemSelected(MenuItem item) {
         Tab tab = null;
         Intent intent = null;
 
         final int itemId = item.getItemId();
 
         // Track the menu action. We don't know much about the context, but we can use this to determine
@@ -2852,21 +2868,21 @@ public class BrowserApp extends GeckoApp
         }
 
         if (itemId == R.id.bookmark) {
             tab = Tabs.getInstance().getSelectedTab();
             if (tab != null) {
                 if (item.isChecked()) {
                     Telemetry.sendUIEvent(TelemetryContract.Event.UNSAVE, TelemetryContract.Method.MENU, "bookmark");
                     tab.removeBookmark();
-                    item.setIcon(R.drawable.ic_menu_bookmark_add);
+                    item.setIcon(resolveBookmarkIconID(false));
                 } else {
                     Telemetry.sendUIEvent(TelemetryContract.Event.SAVE, TelemetryContract.Method.MENU, "bookmark");
                     tab.addBookmark();
-                    item.setIcon(R.drawable.ic_menu_bookmark_remove);
+                    item.setIcon(resolveBookmarkIconID(true));
                 }
             }
             return true;
         }
 
         if (itemId == R.id.share) {
             shareCurrentUrl();
             return true;
--- a/mobile/android/base/menu/GeckoMenuInflater.java
+++ b/mobile/android/base/menu/GeckoMenuInflater.java
@@ -2,16 +2,17 @@
  * License, v. 2.0. If a copy of the MPL was not distributed with this file,
  * You can obtain one at http://mozilla.org/MPL/2.0/. */
 
 package org.mozilla.gecko.menu;
 
 import java.io.IOException;
 
 import org.mozilla.gecko.AppConstants.Versions;
+import org.mozilla.gecko.util.HardwareUtils;
 import org.mozilla.gecko.NewTabletUI;
 import org.mozilla.gecko.R;
 import org.xmlpull.v1.XmlPullParser;
 import org.xmlpull.v1.XmlPullParserException;
 
 import android.content.Context;
 import android.content.res.TypedArray;
 import android.content.res.XmlResourceParser;
@@ -127,22 +128,30 @@ public class GeckoMenuInflater extends M
         item.title = a.getText(R.styleable.MenuItem_android_title);
         item.checkable = a.getBoolean(R.styleable.MenuItem_android_checkable, false);
         item.checked = a.getBoolean(R.styleable.MenuItem_android_checked, false);
         item.visible = a.getBoolean(R.styleable.MenuItem_android_visible, true);
         item.enabled = a.getBoolean(R.styleable.MenuItem_android_enabled, true);
         item.hasSubMenu = false;
 
         // TODO: (bug 1058909) Remove this branch when we remove old tablet. We do this to
-        // avoid using a new menu resource for new tablet (which only has a new reload button).
-        if (item.id == R.id.reload && NewTabletUI.isEnabled(mContext)) {
-            item.iconRes = R.drawable.new_tablet_ic_menu_reload;
+        // avoid using a new menu resource for new tablet.
+        final int iconResID;
+        if (!NewTabletUI.isEnabled(mContext)) {
+            iconResID = a.getResourceId(R.styleable.MenuItem_android_icon, 0);
         } else {
-            item.iconRes = a.getResourceId(R.styleable.MenuItem_android_icon, 0);
+            if (item.id == R.id.reload) {
+                iconResID = R.drawable.new_tablet_ic_menu_reload;
+            } else if (HardwareUtils.isLargeTablet() && item.id == R.id.bookmark) {
+                iconResID = R.drawable.new_tablet_ic_menu_bookmark_add;
+            } else {
+                iconResID = a.getResourceId(R.styleable.MenuItem_android_icon, 0);
+            }
         }
+        item.iconRes = iconResID;
 
         if (Versions.feature11Plus) {
             item.showAsAction = a.getInt(R.styleable.MenuItem_android_showAsAction, 0);
         }
 
         a.recycle();
     }
 
index 802af44f1596d5162feab910ad868a03fa145c30..5bd9a95a161377502d0e64865b5e3e74a414a55f
GIT binary patch
literal 775
zc%17D@N?(olHy`uVBq!ia0vp^(m*WB!3-pGf}dA0FfdvN_=LCuxp7Gu(TVBt$?0*4
z8F4@|3B-;~0;06&gfx(X#B^ihG>9xv+#w+WB$%8Lo0t-xlmXNZRPW&602GN!N&{;L
zGSVU9AO?s8DT_@`1?fsk4^2n_GUDS?ViQ0LVq;@N6BB`ofhZy=38W@DEh;$~s3j&T
zDJmfyXiGfU90UnNKz2+_8pvUZ88I=*V2jd2!5}^!XkA)-a$0O+ny+tKXeh)BAeR7T
zA$p;PKphPBa&!vVmW;T#xEP4<z-EHTWUxyT)BTc?fLcB=>D>ngL`F%FUob<fR>|D0
zC$=vv)@7W)ntmsPgK4(Y-3N9oOH2R!z0mOD@P-2~V;7i6d^QgHCnkFSm(;aB`OWI8
zkFMU^bLIWMFFS8ZmY1pQILOASJ)<R$i$CYxBIcFfCr$maY+ixP%-_P%=brz3dUAOr
z?+yDIUBIXl_H=O!sbE}t;iZ{VqR6q2x~(!^9U2QgUd(7;a%Sdp$JBYY-|JbwNuK+b
zwO9V{zJJ%_&PUDu7thQYzu5l5l{-Q?s<SV$nQv)7^r6LC$z^VAL3Fvus(JS!<nLUQ
zKOW!7xI>ro_=5`tTD*x{1tT6UmTZntTd-y08e2oZd7Yk_bsIALCRwVM?__DnoWEpd
zqz8B7S<hMg&KH<&ESf%T+QKb14Wc)-)@ZFbvDT$3`_47b{O0I+U%2iF&HlBGb=%r}
z>jc+e`O^uztG{I1yR2)rh&VYVWm!SSgvT7yzI^12^gDl!F(zix*&R)9chyYZqZ^*U
zJxMvpb#GLUO}XfbO^!i#>}|YOUU?P&@k>l?Wo`BUAAf$SUFYZVsYx@|mbC#!34^Dr
KpUXO@geCxrZ$pm&
index cc01566a8da04aeeb3b6488b713beac498feb69e..20678853b8465345d5c76ab85bd3bd38d4934b5c
GIT binary patch
literal 555
zc%17D@N?(olHy`uVBq!ia0vp^LO?9S!3-p~d(N!@QuhLULR^8ggM&kKbV@{GVrXb+
zTvD2+r)O+ZT6}UwTvB>`a=Jr80+0kDAU7!^CLsl=CN2>ylAIBpkP1?nm=PD3;p>|g
z2LwP_uwJ0aKs9k7Eg-!>Eip-{@j#VH86YlD3Zx8bOKdFASfFWOy@?>H*u=D`1h7<6
zS`0*4B3M~sT6}y;ELbEaF*P<RJt`>)WM+I?Y$C`IpkAQ)F$oz!hyAp!DhIm5vn0qb
zn1Mw`maU#W`_P{w95r_LAK6xg|N3kCW3CyOu;YS%jOX8Y%=8Z~T(my_c3|#T&5yd*
zVy5M(?kb4>S*aLroUqTzL}{<G(~Zwp9VQ;RG9PH@W=|K#kP61qQ`du990c4Rh6%D9
z<w=tXJd+e~=HS`td;eRvy-3u%vC3Bb^4EG(quo1yvifgvt^J#z*<!#o%{6R=YTVMy
z+}h?@X4?;J_4W1Sdh_PpTX`8dP46<EXD(arT+%E^TYBJ<WlY4*B@4B8gzY?dQTL8!
zW!>Z{1^RF09u#)XQ#f@?g!z2lo*TiAzq0=C-CO_SuZhE#uXF$WVQRfK|6uD+@wJyr
lgT5ZQdY=7o(UksDABN1kTIIZZCxMa!gQu&X%Q~loCIHb%<d*;d
index 92e88fd92c9eb9c8e6c189c1ac5c77c5a5e61163..1f22612cef7a301a43a33433a2e3a132b084654c
GIT binary patch
literal 995
zc%17D@N?(olHy`uVBq!ia0vp^DnP8k!3-o9%B;A^z`)oa;1l8s<i;hX1tcUyC#J_F
zq{k<v#l@w>#>N80<CD{)qM~AxQ{$3>;^}co8SzOOu}SHn2?;<g(a|X&!Q_m1uxvy^
z22c>F5vUA|(nCW-V-qtX5)(lRk~3mrl4F6o5>miiplRumk!fHPK<wDq6o-U_*u>O$
zuwJMk$>|Ob4spp~!MHf68<I1Ojnm>1!O9?d!GdvdX|c&^@rmg`DG)a?4Qvj`t{AAx
zGk{Ktj*bSIlL&G%&@b^I1hgn4CMh*84&)cGXH(;nQo$ONfDQvWH31kb5VxhpfJ_EC
zFD5Y+7)sG#?*P39atzo3U^l?L07mi2AjibVr^Y5gf)PZ<g53tzl>re1I{Wy1lhr^&
zTS|ibf*I-sv|Qcv#F%OXW7mHAxF%VmN@o7=Uo#adxZA(=vX#l6KciA?@#5<jk^7G)
zDRQ{?JUQ?(izVrm@bw3)SkwRIpHBTD*O!>{H-6=@Bhhygc=+D?U(MJvadxoTuC0D9
zAJjE-HPoJ$8og<<VszeKuwh1IW%#+h8#i|z)b`!IK5*gwo1b^gId*Pw2r#MCd%8G=
zR50$ne6yZAQR3*w%a_VHuC7|<%Bw1-tGP9}IU>r(SG9>{qkdAn$D8iY?Y}GRChs}F
zNAi8@e)H$g%Bwf5*p=`yZqt_K+s`*|>Is;Z9=2x5i+EFmjvHC4GBVB@Onq}g<6oq=
z@Y-m5H}A4${+uP9X1&HopXpl8%6M(I?3SPK*LMrLU98n5X5YEG+4?=d@7tT%?)OYI
zzrD3@m{I>B!06P3q+bS8_9<I^>JO5c-B@OG;UZ_(<jRcYA<hXg+YGpJ9n6npb{Std
z$9AQ_FRe`A)Eyn+g1Bc)Q+lonh^OvKXeo0(b2_F;Q1^y`+C`B$dfp)|!Jdn>3$(mT
zME$O-%xbt?+Qk*KsL3VN;_iYSoYSL4w%*=wXD9b!FT;9%&hPRc6mQ9~ifmPy^1<+=
z%&mC_VRcdMALiLEuV|e1%X^#8zEgYo?)S`a-|OoArSJboyQY<P23L>Uh^!afaJV3u
z&2y@n?pgmAUw(RD6KP$4f5JNJKmQ&-U;ppYd;4PUfPYL4f6QuQPw)Q@Od1THu6{1-
HoD!M<@M5Rs
index 107c77e8c3feb7d213a4f5c39fff08b76f16a475..2eb454333e88ae0ba338647ccb0bfe6b86fdfc54
GIT binary patch
literal 1323
zc%17D@N?(olHy`uVBq!ia0vp^W<YGo!3-q5&T3dOFfe`%@Ck7Ra^sRRKxATiR8&-4
zQhHosT3k{Zh>@HTpOg`sm;n@tO-PSTO!G@h0;x>SaBy&lOG*W+Nr$KelCg>Dp`oEb
zc0^JVP&__4JvKHLB$AXKnwSVA<AExH2F9iU1%a|a5~u~LH#yzd7-(rm3`j4~-t@?X
zw19*Jpj1pUNIV{FAjC#6BO?wdo}3z=m=1O!NF+WfH6CbMaz<=2*b8wPF^Op)jbM92
zL(`(8qhpiOKx&dQqN7uQ;;}#m%&9=n#wDc1K=dYp?Mlpmr~xTRg4+vZfWjvxCOIDL
zDF^}wMFzw!FoHW0Xbw;TC@^DSApn$(N=S{2Oo>fS2C0n8h>J@FsRa8SgyKPd0ed9F
z)6)}d8pP!wi$W6;A`%nh!M22kCPyTIT;-6E0CZstFs72gmIBo$Wkg1%#U!PI-3(G3
z5A;!T#trqo8o-ELRubeF%+Sg>LC`Y3wrkqN>J(pdUZ&YBo>Q;<`+c~Md8yRvw_<GT
zM0>w~Q{>#v)BO2Q8|wk}YiBhCP6T``IX@}?!^X);iDliJ{r<k|b2Kyh`l*SZulUS1
znJo#<zqp@9c~^vdnH!h-BI8J4d1r^pluPrkuXvf(@ZjL?8Cl_L9_jDZ+-V@L^F&(h
z@q+2Mv{!|`VV`C5W8Xaq*|5_>3O6}wJhGpaz7h#ud+2B3otL|}F)%RMd%8G=R50E>
z|1-QNQ0Dl@^F3`LSy8jHf}*^Pl0^)+M6A;6_G#IqBBWLA6e)Bn$m!dgiRbUXlsR5o
zHShVo^jH60eZBmBPW8R#HG2Qz^<Ferb1oEl9=S`WuF@&#Qr8oa8<oK;Ph7fWY*cHK
zlKQ;j&$RC`r*58VvGMv8yIMg+B<NIEm-mX0SsSJ5r><RSs~s=BVDW=p0u7(OZb=uN
z+LL+MEhKl5?QNN7OkUe_mg;`qRdYpQQ`ReiNZz$sueYh@-QT!*pQ4O*cF%<+D=Wh}
z{{JX9Z=bu#w%Rg3{&Zc0OLX?snZFsH%jz^Oc{@SN+NXK_QSMgdw?)?qOZHi@O?|97
zWwV%+pTpA4bBn}mJr{CoEpG}*S*}^K+~HwQ|Ee|ZPC_D4E1R^EotBAjlF@po(^@=X
z?sBOr%`XSf-SuZ*A$*<nMy38GPQ6ZT@v^zoWgm8(c(ibFNQ&u&iK?4cU%05UDf@z<
z!lsZHJM=a=zSyC-X;M+f4$p^TCLsY5O?`<IUGtosZCkA`6ijdP%h=(rXu#zD{q6=S
z-k^#P0(^44y}uK`&S+EjUubg6*N*$(A`Kts1ST%w$tpKL$cUMmoP68tJO9Vu1a_Tc
znUhRY<6hNG{5Z+UUnFf|_?8*#@?<LC`c^-#jJ9#xT>d^WEY#D}z{xXBTF0*DiBih(
zgKAO7Sw+t|Jo+b+nDaMoMU7kn&*7H^0Uw@f%d*617KDAvoy2v&x?W-1%$o}tbhGNu
wwQb<YJh?V@KijA0&ps{Nyu7aZ&xF5>>%5IlnD(VS115e3Pgg&ebxsLQ0FSdbYXATM
new file mode 100644
index e69de29bb2d1d6434b8b29ae775ad8c2e48c5391..79aea57bc797602fbb01191f315abfa28ff388a8
GIT binary patch
literal 897
zc%17D@N?(olHy`uVBq!ia0vp^av;pX3?zBp#Z6#fV2lj#32|ir0|y5OW8*Z3goM!0
zP+#9PAQ>GU9RT7c$Hm1(My7=(CdS6bMn<NDCL}~8B}FACM<is##->Cjqyfq3#Ps<1
z)VR2msD#wG<mA}Iw78`7n8eiR_>7o@jJTw<*u<2Wg!I^i^qAzdIH2OBjF_a1*rbg3
z#Pqo2)Yzo-xWu&h#I)EXpe#r*HW8#NE-3>E0o9~KNTBw(<g|DoI~gpVoB=WcBnVaj
zK_GTUd@>RP*{Gy+un3TZm;hqLLl|HK<Dn)%>;fr9Vt@^V+YV+!%mG`M5f4Vo1VrM1
zAzM@u<QL4q$im9O$;HDbAS5gzDkd%=C9j~Up{b><XJBY<X=Ux;=;Yz$9TFCukeHO5
zl9`=TSzX`I)Y{(B-8*68<SEnUEm*i{@ygZfHf-Fqb=&scdk-8ueB{{i6DQAHx^nf}
z{fAGUK6~-%_1pI!KYjl4?fZ|PzkdJCEz?{8jN(*J7sn6@$<l*=t%DO8jz3&K{ifn!
zk!81>G^b2oGQBrRb;*Vk(LIa&_-;M>{Qv)j%j=$7J%4!XUG(*e``c`<eiys9a@{)b
zAG1SjBYPsR7HS{Z@ggKwKe1SN)2fr76DuUn-3~ond?P>OMtk@w#X2tKOB{bPC$C=l
z{$qFl{nG(CQ>3~BEMsO>PRg2eaeqO;u~}0LJ3}oaUW5y3--zxx*`fQ6HNrJF;fXri
z<RX=JwNDb#yZ$oY_*l}so%_!o<*)OYq6=e%?=#hXJ-OpGbE}wT6jwvNf9QASguRgq
zpOq?joR-?bV5j|sb%#vIi$u;o5v!(8%9fipEW04}<jE;#zlAb26SAe}oqX|fq9Nbz
zqQ7lDR}AA<o+<Z`{O~k`Ju3Nfx<vZrjbRE4J=px*`ZxBu`#)$@N{(=B_!=_tddSpg
zLY+H>Li0r;kL{?sue;c~zIEdo55^x;CQXfE+^1#qbp5iY9_xPv|9UTfT&M8~r+(;0
PP)_o6^>bP0l+XkKjlzI7
new file mode 100644
index e69de29bb2d1d6434b8b29ae775ad8c2e48c5391..67654c5d76800a5bcd2844bd2aa17224679a12cf
GIT binary patch
literal 641
zc%17D@N?(olHy`uVBq!ia0vp^av;pX3?zBp#Z3TGp96eCTp7S1G&I!LH_b08DLOhj
zG&C(LDk?TMHZ&n2CMGQ|E+Z;AIU*q=Dk&)@DJecaH98?JK0YNjDLpzNH6}4NIzA&l
zIXyNpB`z@|COIuWF+DChJuV3-k^y2TrNx5DxTK6&kaz}ADjrHg89<G(U~XJ8R2D1_
zLh(>7U}a!7R2SF^h%AUq28lytp@zT}Be)<o5ItD7#tP`?fRZ4;U<O7`E?z!<K`{wQ
zX?X=Db!}Z^6H_Z|J13uj$gJG5%G$d6rndHup5Fe6ljbg5vUJ(<HJi8X+I#fa$;-Fy
zK7R7z&D(eHKYsfB<?FZaKYsrD^VfgTaYdlnZ#`WcLnI_?4|aw%IWVwZm>w1pm=PHn
zb*oEvi*}@1(h|?^_y6}V>oj(Elh`9}{At~6_ie$SWM=m8f7;xjb6g}RB|;`ZV!gxr
z2@|<9p4zw_3Vk6Hu&c@KUGJsoos!Su{=R$K9z6Ma`{KX7tQ=vNc~_X$<VC$G>eIV5
zXEE>Q<36^+8*I`(=y0gckE-LGxVAy+pxTnTg28ULXRK=R;m{7a;j>}kuGB-kA+l;E
z3qH+!;GAf1)M3q;DMm@5UVrVDY9;Zy9ZNs$t?uk5)nO@8xBj|<h~9opi;k@xc4CTa
ot%WzWM!fx-Dc<$y?}E1a`m$5~mNi|Q4}(&Yr>mdKI;Vst00M{w+W-In
new file mode 100644
index e69de29bb2d1d6434b8b29ae775ad8c2e48c5391..0098b76bd26ab501d846fee8e477e60691979e4b
GIT binary patch
literal 629
zc%17D@N?(olHy`uVBq!ia0vp^A|TAc3?z4jzqJQae*%0$Tp3`%!NDOkG&DLoIv^n-
zDk>^8G&wRdEi^GPHa0dQDJd>4BQ7p2A|WF-HYGkj4M;{Oq{YRh#3d)kB&NnEr^hCy
zM1#oGnB=tBg!H(?^q8a!AQ_vK9-o*I2PBiz<C4;1LF_azJ0liM#sj5*DuD>XMIyln
zq7j7RLE>Qb$q;UO9GD9xq1xk;;VR+W41_X>Y%;{yjPLbHF+iUOmjw9*GcYo-aPkQV
z3W<n{NlD8oC@O2}>KR(uIXSy~`-VivWE2*al$KRBHnp|)Ph7NN<E9<EcJDoW<k*Q*
zXU?9#aOv9h+js9hc=+V$i<ht8ynFxo>(9UclAk431C77x>Eak7A<24>)yavGfptUT
zb|$4);Tv~v;I`ga`+a}6G{f%Qz?eD7!_aW~i3~%6(edLm*%)M&Y7{Xs_&nJavg@44
zg2mTv+}Qp5tW5FGz4!0uT(OE#J6WE+eDb-u*UBfwWT>rHR&BU+BJ0wX;;H>o3|srR
zR7vhQSuMKY*Sy<|61&bvv#!|lG*LpL_MDBu{ON`b%~u+$_!w=L%`cky&xWz&@7Axm
zfB)os&HP`=xXLp6m(Qg0OE>p0r%hh6cgF?4Ns$MNK5f0{`~6n<CMJ!z?d**Q-(F|>
YulGTn@4_zYbWqaqboFyt=akR{0H)6buK)l5
new file mode 100644
index e69de29bb2d1d6434b8b29ae775ad8c2e48c5391..112c5af885ac1c6e9fd445f97dbd6453b01a771c
GIT binary patch
literal 436
zc%17D@N?(olHy`uVBq!ia0vp^A|TAc3?z4jzqJQa^8<WBT!FNwr>C!PT4-o!Kte)f
zWLjioN@zktL}FrGTxx7=N_>1uOk!$ua(ZlHYFtukY(hE^#V4i4C8ozFr^P0v$AP5M
zfMi@!Mm&fOW+VaCWW*(b*bs3D8J`Rh1d9W?Anh4o5{f`7fogz)V6-(LX%o<iCM7|B
z!3^wNJOU!(60&NV##YYmo?gCwA)y&rdF2g_&FxdxtlPM4``-P>Pn<q?<<{-{4<A2!
z@$U2Af82jw0QFDsba4!kkW4+;D%9k_z;eOW@sNYg8-_q0r<?!(o8?>VQM}h&WV0yQ
z$L~U!YJP@f;EY8togVhJDS8`+y!rX<i<ZXT^SfJlUEXvEY*22H+pKzx@$td7cE*D>
zo1SGZN?95b#65L_SI7PqucofB08JAQzHAu}xz?JkXEZ7%)O_0gl6mjf_AiP%e<n6e
d+IK#N!G7;@&83%Le^zDyg}<wx%Q~loCII;Wt+fCE
new file mode 100644
index e69de29bb2d1d6434b8b29ae775ad8c2e48c5391..9cf55fb750949e3209eca683c740a9a5efb82d71
GIT binary patch
literal 1108
zc%17D@N?(olHy`uVBq!ia0vp^8X(NU3?z3ec*FxK#^NA%Cx&(BWL^T<Z2>+Zt_&~`
z8XD^0;9zW=24W;607+k85IZ0tAu=*8HZ~<bJ}o9DIVvF?$c|1-kB?7{OHPhSOp8rQ
zk4{L5Nl1xLPLEDbk4s980jfy^ksx+*T3ljAY(jc`QfgdcI*=QioED#y0c6JmxgZA6
zgp9c4RG>LPMm&g2k4pxUV2z1saUe6HBv1>8Oiqsn8Vl3~R0%W(!T=eY4rYK10g@nd
zKqjX{xIn3RkQ7J+Y#LZu5=0!%g|Z=v;~)k?HG<VZOhYmji3GU>f*=ae%#4Sb3F0Or
ztN@ZOHH$w1<Dju5$S;_Ik%^gwm5qawi$_32QCUS*Q%l>>$i%|d&e_G)-NVz{$Jft4
zAT%sIGCDpXDLFMQBP%;6FTb?BqOz*7rM;`WXVT;;Q>RT|uyE1hB}<pBTC;Y;#x2`+
z?%KU)-~Iy!4;?;n`pnsL=PzBpa`oD++xH(ndiwn3>yMwleEs(Q$IoBC|NQ;;|LV<t
zVDfnH>Eak7A=!Jd+djCE;n>6PZ*tD43QqFU-Fj)4L@bBsE``<@rRgDU9kWh%bk+X<
zT$i3Rf3ESidG0&4#Kp9}%D<5~k|SCst-PpdO=?f*d@jz(Mc%D7im4}q>Ua<Qu@MNX
zo8J(?5fKn4-k^FqiplBJb7p~wN(a)P7Rp6@_x@M<V3S{JFXLJxIfl>MihgQI-M(LQ
zm({G<sA=|rdyjUXlTNR-3cGZ}P~x|1)bb!J&)d;8w=YI0xeBFtPtjbe<G9VmrSKBp
zwPV$@vP;%1+nHYTwqeVTv_hWk?W>ti39jJU&i{Bu=vTgDJ^{-)&LzAF^A`VZpw?Zw
z=#gj7UvHyze-F;kxWw6|X7DdA{M1?Io{bGfEXNG^W|zG26G}d!&;Osp?bAG?s6w8b
zMH|}-Y(l1)$uJj59{A{@7b{V?^N8WRQ;%5<RHth`n7Zd3)83+&tnW_0mb{=eUF^Zm
zJ@=Tu7OiA=d-|1EWBTGPt5=8g6(xkq?W?^pDbd|LK{@O6ji&qC?wn&Np5&yxWKE08
zSw_*KY=&PU*1pF|*8XZ(T~y6d!moC6lFS=6xzle|CENf0ZBN-V?Y2nf;;WZ-241o|
z^_JZ|?e&x(^TQM87kNMGhz)de=5fCiWOko#!?hI6?yFy9Z+twtG`HIF)%14zU3=~>
bQ~uBJO8v`%CefG*P+{Qd>gTe~DWM4f=D69O
new file mode 100644
index e69de29bb2d1d6434b8b29ae775ad8c2e48c5391..5b9299437465db3a539517136cc476c003c476ac
GIT binary patch
literal 744
zc%17D@N?(olHy`uVBq!ia0vp^8X(NU3?z3ec*HX>F!BZXgt#)mKxk;FLqbAmLPB(O
zN<?B}L_$VvY)VX0QgmW^Oj3GWa&l}^dUQf+Y+_nWLPlItT5MuUOhP&k#U-W2B&WrL
z$+)D9SfF51YJ5^gJV;|kTykn$Vp=Rv9B4>l22gukQhF>%J4iu1NMi;_1i}E3=`fTL
zpA3?UO9r8MFp2{!hLG`4@r-zwNE}Fg21pPr5)alJ4-<iCkB2D(tAVi7<6-2@!_u>W
zVG&sp<QL4q$i&7WAtS4xsIH}NXku#a;OOM);py!c5Ev9378#wClA4i|S5#b9+1b<E
zH*xZu`Ae3sTD^9|rd_-D9XNR8<e9VQE?m5P<?4<5kDtGO|Ka1O&)>fP{Qc+eKjy>C
zz+h)I@N{tuk&x^?$gO-RfPw8o{%4PSODA|}d41+_?V7NtLvGdk|NjLejql#PTgLbA
zbGTMrMWEX04+(RXXBU(opXkn-$8^Q@!7`7#lbO<2o8%n6Y07(^YmUyPEzIiEO|FKX
zILrS-olVp9IH&&Q4Ti#27VAqiUR>AbGq3rvblsb|clHIo+FLU#BCs)IvYg4{j0=<5
zyuK`HX*ILW&}V4mi!Ei6;Qan#k$9WlCs+4)L5U=0D~TfsUHqD+J;_d8L7E&!Q%)Rk
zTCB?(=6TEOkQa!-dQ0oTDz|9U2#wfVue1byYCLS#@aR-<;q+2bICbfYwcV>rQ(86r
z4;z@XpPBbH^MrHA(;H`nN<N3ntakcxP`+Pr#<cD~9~m#IpS&K+I{Df=&pM|mc~`$L
gPuTkPf>-hz>36ea{QsTQE&-)hPgg&ebxsLQ0C0^k#{d8T
new file mode 100644
index e69de29bb2d1d6434b8b29ae775ad8c2e48c5391..fdf1ae32a3586ecb9b45bb8c690272868607b24b
GIT binary patch
literal 1579
zc%17D@N?(olHy`uVBq!ia0vp^HXzKw3=&b&bO2I}#X;^)4C~IxykuZtVhQjGab<vk
z(9lo^2M1&0G$6y%)6*d#0mz7rjRlf^NlBrhX#oidadB~xk!hici9qql$du58gqWDL
zh@_;5#KgF`w1|X^sHCL$__Uaq<hZ!hn53lW#Ps<1)aZn?n56Wmgw&YCwAiHdxTN&x
z_>8!uw3vjH_~i81#8e<VHZdhSIXxx;!cC1$NRLTQi%ZOiON21eW0TY3lQLqHQ{zCU
zWyAx`Nlc3aazSQ7xEb*v5fB4N#wMl314V#bkl{cnC?gi=B#<D80V2WdIIyeY62T<M
zA_xO)EIKy>q&_(v#s*2nLl_W2kZBN=AU4D<m^jpGxE6FSj2#b^g4hDJ3(k&5H~`9y
zg9}0ogj<~qbqv%Qa7&Ys-H@@*{`g&B3Rqnd<QL4q$i&RT%Er#Y$<4#dFCZ);Dkd%=
zDJ3hXprov#rmm%}t8ZXrVrgw-YiIB1<m~G1>E-R?9}p5677-O47oU`pnwFlKm6Kmk
zSW;S6Syf%v*wozG*51+8-8*^8)M?Xa%$zlQ{(?n|mn>bja@Fd!>o;!RvUS_`-Fx=#
z+kfETp~FXx9y@;G)af&4&tJH7<?6NTH*ej&cmLs|$4{O<d-3x1o44;ie){_D$IoBC
z|NQ;;_4m?h1_ow1PZ!4!3CXz!yPbnmW!N5k&oPeGGCi_{!O+L`bhJh$<J7{F4uYq=
z`2+&Jq+C^JO<Fngk-_Ilr<?>5wNBit-*mrx-{Uf~eTU8Fv2(BNKKg2d$5l?Fz+TtL
zUmcGw2I(9V-(s2|$n^ixw*t;j;oirepP2ogPxd?WiR*G|R~6#}yG~EneD`a@d@Zfe
z&=5Pvx^;nfHm!*k*{=H}S$nF~g0@rcCyujru`?=sXh=HZ^v*0Ovms-_Ch48OrzY8O
z2+Azq(Ku)A@*;t4%^_t<;r2m3;s?SEd_SreZK>;fBq4KrMTp{T^X*sK^=+1Ysxg&W
zJwJHnpT{nbuZ0?L?!AA((B#|{IhC&lPfsot?v)o&TDfQ6>+hUtGqhcUUdkBT?7R{h
z&$r-%jjvKc=Y=OVisuUVZS20A{czK^-;X4oTen-pK2o0eZ5FR~!iFSg-|7?<zv&ij
zD|uU`w~I%gIHYy&o`l?@GU44TUH_bzXz#RE%EISu55MKdxeLog7EQjD$!)p8FZgv^
z($^sCOhxV2DqG*{-uUzP%ApflK5y0SWxVSamdQlQEI0chHEG&kx3?T(B`voC1oYO&
zFTK{rx+QS;Hkr&YzToWE<zZPDnNlhq=VzV$aKY#8e1T`0yWH1uy7^vtx1Y87QTrC(
zLm88{UEH1+V&(Rft7lz6WegktQ+<u9ge%U5zxDR82#fqq+%o@EQN_vyo0#3KSL|We
zuU@gH@uHNL{9$kHqb4>!!7@$L-)pQpe7LmBuHt9+B5}>x=E_T_KVsWsvozzNb}I7|
z2g$h1g)^Gk1*XPcaFX3DvRPI!WA_S?gKH*vaZY*AsA;u~k7ePMfSXL4{Wa(PWcZQg
z{?aJwHS>dNw~vx%`hr{-bGnV3OQah#j&3)QUhv}ZE=MVzb<Xlf&l~Lay;%85b#fk`
z@yn+x{kp6TKJ8D~Rb8!{{XTZt?2m_^$S(VtAJ3q)LI0S^QiGeG)0gWyS~Q)VT=G*u
z&DW<(Ua#Twsr*Mizl7A@mYgXORdfz~&LbOtcuDWJBmAlc8ZW&sTw|N;8*(n}fb-Ev
qt*HjTw9GEXce3WZn%`ln{Ip&{dXq-3-*Gum8Sm-p=d#Wzp$P!v$f834
new file mode 100644
index e69de29bb2d1d6434b8b29ae775ad8c2e48c5391..d2baeed443d989754b3312c85f2b3b792dcf472d
GIT binary patch
literal 1123
zc%17D@N?(olHy`uVBq!ia0vp^HXzKw3=&b&bYNg$To~XJ;>rL6p`oD;4i3h~X&^>I
z0+5W2jRlf^NlDSs(V?Mf0SO6FQBk3x$#HRUk&$UY*~rM0(1e7zxQw{Cw1|X^sHCK*
zg!H($)Y#aR*kquxl(^*N*rfE>#I(4i^thz7_+%hEB|14hCLujODJ?cJH7+SNJ}EUW
zF+DapEj}p&%t(z(NQ;57W0Nv~Cd4JC#ezgK;*!&WC>CfGkPS977Q_IV3?$=#YJln!
z)4>d&uJm{aBN@U4ks#BOK<325#gm}Qz#<U68S!9cU=pk#8D?fOgbPyu=ElLea7H{-
zFe4tW1!8G3)OM)e<P3-#;=%3#8JnCA6M>TVb$&Gfqo=DR$S;_Ik%^gwm5qawn}?T=
zUqDbuSVT-*LRwBiNmWf#N6*m2+|tI*$=TJ--P125G%P$KDmo@MAvq;AJuAPUu&A`G
zqNcW?skyal!o;c5X3d?qaM9u=OP8%)vu^!{jhnaZ*t758k)tP0o<4K--1!R^FI~QN
z{l=}^cke%Z^7Pq@m#^QvefRmx*Y7`m{r>a!pZ!OvAHXE^+|$J|L_%`z!QOc8L<aT`
z_seGcn5s_NvxT=)bn_nVu2z+$u2Z~BJ)MlWB_~Dx{g<`*UGclT^QGsD@9URMii!0-
zwD_8D(Pq(kKg1$G9b?yjq?6q)t{?gB9DC{V71r#f##i=!cfMLEb<X*!2(P@!ip~p9
zn6B6?KH0@4>b^arOi)YivXXSeo@YvH^&Iax->Ttqx^|H1?K+2R4BAi19M3)E4coQw
zpsPmJ&wt(dBDX3`uap+ayKGTTf8Ue7{l&A>SN5Juc9i(G?QYGMAG5i*@-N%wCNgYY
z>{=Bhv-T*9t@Lp#+vwv=w$ToA<{fRctGd!Ysjli$|0c&OgO1#Pf?CoaotO6pUYx<^
zTrkN?t=VAZtYu9vwIW*5G;_^ZX3whhnzi1sb(gAF<f>+e!$zt)<_;?iy~A(1S!8Hk
za^1-3_v+;;Ilo0EqOFttc6lB0>{=I8FlpIplQ}6bw3yW^cbz)yI78@=KzD!>OA@D-
zhr=5))jLf$3{-iXbNb58t7n+AZ#0cc^<&s58MW4N#Vj%Hw;I-;XNg@E$Xs~xdN$*W
zn$CWc%tjA(Ui;wc1fd<jX14Kllmvc%ez5Mwn|D7Q@0NCaDY`v5jicrLzobZgm!v=G
yYFzB>Y+O2>jw`Ic|9zSH=D~#kyX(FG|1s$%JfE;z-TN-6pzw6{b6Mw<&;$Vcved%>
new file mode 100644
--- /dev/null
+++ b/mobile/android/base/resources/drawable/new_tablet_ic_menu_bookmark_add.xml
@@ -0,0 +1,7 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!-- This Source Code Form is subject to the terms of the Mozilla Public
+   - License, v. 2.0. If a copy of the MPL was not distributed with this
+   - file, You can obtain one at http://mozilla.org/MPL/2.0/. -->
+
+<bitmap xmlns:android="http://schemas.android.com/apk/res/android"
+        android:src="@null"/>
new file mode 100644
--- /dev/null
+++ b/mobile/android/base/resources/drawable/new_tablet_ic_menu_bookmark_remove.xml
@@ -0,0 +1,7 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!-- This Source Code Form is subject to the terms of the Mozilla Public
+   - License, v. 2.0. If a copy of the MPL was not distributed with this
+   - file, You can obtain one at http://mozilla.org/MPL/2.0/. -->
+
+<bitmap xmlns:android="http://schemas.android.com/apk/res/android"
+        android:src="@null"/>
--- a/mobile/android/base/resources/values-large-v11/styles.xml
+++ b/mobile/android/base/resources/values-large-v11/styles.xml
@@ -102,25 +102,20 @@
         <item name="android:layout_width">wrap_content</item>
         <item name="android:layout_height">wrap_content</item>
         <item name="android:scaleType">center</item>
         <item name="android:background">@drawable/new_tablet_action_bar_button</item>
 
         <!-- layout_width/height doesn't work here, likely because it's
              an ImageButton, so we use padding instead.
 
-             Because the curve of the reload button is lower than the end of the arrow and thus
-             the top of the view, it is perceived to be slighly lower than the other buttons.
-             Thus we use padding to fill a slightly smaller height than the toolbar and let
-             android:gravity center the image with a slight offset (.5dp higher) instead. Note that
-             this offset also affects the pressed state, but it's hardly noticeable and thus negligible.
-
-             Note: the above change is done on a generic style and thus any other items added
-             to the menu bar may appear to be offset. -->
-        <item name="android:paddingTop">20dp</item>
+             Notes:
+                 * The bookmarks star is larger than the reload button
+                 * The reload button contains whitespace at the top of the image to lower it -->
+        <item name="android:paddingTop">19dp</item>
         <item name="android:paddingBottom">21dp</item>
         <item name="android:paddingLeft">@dimen/new_tablet_browser_toolbar_menu_item_padding_horizontal</item>
         <item name="android:paddingRight">@dimen/new_tablet_browser_toolbar_menu_item_padding_horizontal</item>
     </style>
 
     <style name="Widget.BookmarksListView" parent="Widget.HomeListView">
         <item name="android:scrollbarStyle">outsideOverlay</item>
     </style>