From 0a85a9b049fafd6f372d0279e28410984739cf30 Mon Sep 17 00:00:00 2001 From: Lucas Rocha Date: Wed, 20 Jun 2012 19:10:08 +0100 Subject: [PATCH] Bug 760645 - Add reading list app menu item (r=mfinkle) --- mobile/android/base/BrowserApp.java | 13 +++++ mobile/android/base/GeckoApp.java | 13 +++++ mobile/android/base/Makefile.in | 10 ++++ mobile/android/base/Tab.java | 45 ++++++++++++++++++ .../base/locales/en-US/android_strings.dtd | 2 +- .../ic_menu_reading_list_add.png | Bin 0 -> 1654 bytes .../ic_menu_reading_list_remove.png | Bin 0 -> 1696 bytes .../ic_menu_reading_list_add.png | Bin 0 -> 1875 bytes .../ic_menu_reading_list_remove.png | Bin 0 -> 2361 bytes .../ic_menu_reading_list_add.png | Bin 0 -> 1376 bytes .../ic_menu_reading_list_remove.png | Bin 0 -> 1398 bytes .../ic_menu_reading_list_add.png | Bin 0 -> 1808 bytes .../ic_menu_reading_list_remove.png | Bin 0 -> 1854 bytes .../drawable/ic_menu_reading_list_add.png | Bin 0 -> 1103 bytes .../drawable/ic_menu_reading_list_remove.png | Bin 0 -> 1336 bytes .../resources/menu-sw600dp/gecko_menu.xml.in | 4 ++ .../base/resources/menu-v11/gecko_menu.xml.in | 4 ++ .../resources/menu-xlarge/gecko_menu.xml.in | 4 ++ .../base/resources/menu/gecko_menu.xml.in | 4 ++ mobile/android/base/strings.xml.in | 2 +- 20 files changed, 99 insertions(+), 2 deletions(-) create mode 100644 mobile/android/base/resources/drawable-hdpi-v11/ic_menu_reading_list_add.png create mode 100644 mobile/android/base/resources/drawable-hdpi-v11/ic_menu_reading_list_remove.png create mode 100644 mobile/android/base/resources/drawable-hdpi/ic_menu_reading_list_add.png create mode 100644 mobile/android/base/resources/drawable-hdpi/ic_menu_reading_list_remove.png create mode 100644 mobile/android/base/resources/drawable-mdpi-v11/ic_menu_reading_list_add.png create mode 100644 mobile/android/base/resources/drawable-mdpi-v11/ic_menu_reading_list_remove.png create mode 100644 mobile/android/base/resources/drawable-xhdpi-v11/ic_menu_reading_list_add.png create mode 100644 mobile/android/base/resources/drawable-xhdpi-v11/ic_menu_reading_list_remove.png create mode 100644 mobile/android/base/resources/drawable/ic_menu_reading_list_add.png create mode 100644 mobile/android/base/resources/drawable/ic_menu_reading_list_remove.png diff --git a/mobile/android/base/BrowserApp.java b/mobile/android/base/BrowserApp.java index 7a0c7fa76261..556c5384ef1b 100644 --- a/mobile/android/base/BrowserApp.java +++ b/mobile/android/base/BrowserApp.java @@ -570,6 +570,7 @@ abstract public class BrowserApp extends GeckoApp MenuItem bookmark = aMenu.findItem(R.id.bookmark); MenuItem forward = aMenu.findItem(R.id.forward); MenuItem share = aMenu.findItem(R.id.share); + MenuItem readingList = aMenu.findItem(R.id.reading_list); MenuItem saveAsPDF = aMenu.findItem(R.id.save_as_pdf); MenuItem charEncoding = aMenu.findItem(R.id.char_encoding); MenuItem findInPage = aMenu.findItem(R.id.find_in_page); @@ -578,6 +579,7 @@ abstract public class BrowserApp extends GeckoApp bookmark.setEnabled(false); forward.setEnabled(false); share.setEnabled(false); + readingList.setEnabled(false); saveAsPDF.setEnabled(false); findInPage.setEnabled(false); return true; @@ -594,6 +596,17 @@ abstract public class BrowserApp extends GeckoApp bookmark.setIcon(R.drawable.ic_menu_bookmark_add); } + readingList.setEnabled(tab.getReaderEnabled()); + readingList.setCheckable(true); + + if (tab.isReadingListItem()) { + readingList.setChecked(true); + readingList.setIcon(R.drawable.ic_menu_reading_list_remove); + } else { + readingList.setChecked(false); + readingList.setIcon(R.drawable.ic_menu_reading_list_add); + } + forward.setEnabled(tab.canDoForward()); // Disable share menuitem for about:, chrome:, file:, and resource: URIs diff --git a/mobile/android/base/GeckoApp.java b/mobile/android/base/GeckoApp.java index 1d876ac90cf1..eea0d8502bab 100644 --- a/mobile/android/base/GeckoApp.java +++ b/mobile/android/base/GeckoApp.java @@ -653,6 +653,19 @@ abstract public class GeckoApp case R.id.share: shareCurrentUrl(); return true; + case R.id.reading_list: + tab = Tabs.getInstance().getSelectedTab(); + if (tab != null) { + if (item.isChecked()) { + tab.removeFromReadingList(); + item.setIcon(R.drawable.ic_menu_reading_list_add); + Toast.makeText(this, R.string.reading_list_removed, Toast.LENGTH_SHORT).show(); + } else { + tab.addToReadingList(); + item.setIcon(R.drawable.ic_menu_reading_list_remove); + } + } + return true; case R.id.reload: tab = Tabs.getInstance().getSelectedTab(); if (tab != null) diff --git a/mobile/android/base/Makefile.in b/mobile/android/base/Makefile.in index 7f10bc892284..dbbc5081e19d 100644 --- a/mobile/android/base/Makefile.in +++ b/mobile/android/base/Makefile.in @@ -381,6 +381,8 @@ RES_DRAWABLE_BASE = \ res/drawable/ic_menu_reload.png \ res/drawable/ic_menu_save_as_pdf.png \ res/drawable/ic_menu_share.png \ + res/drawable/ic_menu_reading_list_add.png \ + res/drawable/ic_menu_reading_list_remove.png \ res/drawable/ic_menu_forward.png \ res/drawable/remote_tabs_off.png \ res/drawable/remote_tabs_on.png \ @@ -461,6 +463,8 @@ RES_DRAWABLE_HDPI = \ res/drawable-hdpi/ic_menu_reload.png \ res/drawable-hdpi/ic_menu_save_as_pdf.png \ res/drawable-hdpi/ic_menu_share.png \ + res/drawable-hdpi/ic_menu_reading_list_add.png \ + res/drawable-hdpi/ic_menu_reading_list_remove.png \ res/drawable-hdpi/ic_menu_forward.png \ res/drawable-hdpi/remote_tabs_off.png \ res/drawable-hdpi/remote_tabs_on.png \ @@ -509,6 +513,8 @@ RES_DRAWABLE_MDPI_V11 = \ res/drawable-mdpi-v11/ic_menu_reload.png \ res/drawable-mdpi-v11/ic_menu_save_as_pdf.png \ res/drawable-mdpi-v11/ic_menu_share.png \ + res/drawable-mdpi-v11/ic_menu_reading_list_add.png \ + res/drawable-mdpi-v11/ic_menu_reading_list_remove.png \ res/drawable-mdpi-v11/ic_menu_forward.png \ res/drawable-mdpi-v11/menu.png \ res/drawable-mdpi-v11/menu_panel_bg.9.png \ @@ -531,6 +537,8 @@ RES_DRAWABLE_HDPI_V11 = \ res/drawable-hdpi-v11/ic_menu_reload.png \ res/drawable-hdpi-v11/ic_menu_save_as_pdf.png \ res/drawable-hdpi-v11/ic_menu_share.png \ + res/drawable-hdpi-v11/ic_menu_reading_list_add.png \ + res/drawable-hdpi-v11/ic_menu_reading_list_remove.png \ res/drawable-hdpi-v11/ic_menu_forward.png \ res/drawable-hdpi-v11/menu.png \ res/drawable-hdpi-v11/menu_panel_bg.9.png \ @@ -570,6 +578,8 @@ RES_DRAWABLE_XHDPI_V11 = \ res/drawable-xhdpi-v11/ic_menu_reload.png \ res/drawable-xhdpi-v11/ic_menu_save_as_pdf.png \ res/drawable-xhdpi-v11/ic_menu_share.png \ + res/drawable-xhdpi-v11/ic_menu_reading_list_add.png \ + res/drawable-xhdpi-v11/ic_menu_reading_list_remove.png \ res/drawable-xhdpi-v11/remote_tabs_off.png \ res/drawable-xhdpi-v11/remote_tabs_on.png \ res/drawable-xhdpi-v11/tab_new.png \ diff --git a/mobile/android/base/Tab.java b/mobile/android/base/Tab.java index 05cdee3f5d1a..8c9331110c49 100644 --- a/mobile/android/base/Tab.java +++ b/mobile/android/base/Tab.java @@ -51,6 +51,7 @@ public final class Tab { private int mParentId; private boolean mExternal; private boolean mBookmark; + private boolean mReadingListItem; private HashMap mDoorHangers; private long mFaviconLoadId; private String mDocumentURI; @@ -89,6 +90,7 @@ public final class Tab { mHistoryIndex = -1; mHistorySize = 0; mBookmark = false; + mReadingListItem = false; mDoorHangers = new HashMap(); mFaviconLoadId = 0; mDocumentURI = ""; @@ -100,6 +102,7 @@ public final class Tab { mContentObserver = new ContentObserver(GeckoAppShell.getHandler()) { public void onChange(boolean selfChange) { updateBookmark(); + updateReadingListItem(); } }; BrowserDB.registerBookmarkObserver(mContentResolver, mContentObserver); @@ -234,6 +237,10 @@ public final class Tab { return mBookmark; } + public boolean isReadingListItem() { + return mReadingListItem; + } + public boolean isExternal() { return mExternal; } @@ -243,6 +250,7 @@ public final class Tab { mUrl = url; Log.i(LOGTAG, "Updated url: " + url + " for tab with id: " + mId); updateBookmark(); + updateReadingListItem(); updateHistory(mUrl, mTitle); } } @@ -390,6 +398,21 @@ public final class Tab { }); } + private void updateReadingListItem() { + final String url = getURL(); + if (url == null) + return; + + GeckoBackgroundThread.getHandler().post(new Runnable() { + public void run() { + boolean readingListItem = BrowserDB.isReadingListItem(mContentResolver, url); + if (url.equals(getURL())) { + mReadingListItem = readingListItem; + } + } + }); + } + public void addBookmark() { GeckoAppShell.getHandler().post(new Runnable() { public void run() { @@ -422,6 +445,28 @@ public final class Tab { GeckoAppShell.sendEventToGecko(e); } + public void removeFromReadingList() { + if (!mReaderEnabled) + return; + + GeckoAppShell.getHandler().post(new Runnable() { + public void run() { + String url = getURL(); + if (url == null) + return; + + BrowserDB.removeReadingListItemWithURL(mContentResolver, url); + + GeckoApp.mAppContext.mMainHandler.post(new Runnable() { + public void run() { + GeckoEvent e = GeckoEvent.createBroadcastEvent("Reader:Remove", getURL()); + GeckoAppShell.sendEventToGecko(e); + } + }); + } + }); + } + public void readerMode() { if (!mReaderEnabled) return; diff --git a/mobile/android/base/locales/en-US/android_strings.dtd b/mobile/android/base/locales/en-US/android_strings.dtd index 68a37665e48e..d4202d92339e 100644 --- a/mobile/android/base/locales/en-US/android_strings.dtd +++ b/mobile/android/base/locales/en-US/android_strings.dtd @@ -128,7 +128,7 @@ - + diff --git a/mobile/android/base/resources/drawable-hdpi-v11/ic_menu_reading_list_add.png b/mobile/android/base/resources/drawable-hdpi-v11/ic_menu_reading_list_add.png new file mode 100644 index 0000000000000000000000000000000000000000..2f62be3d95db0ff9e804ff5b0c30fb436e9e776a GIT binary patch literal 1654 zcmeAS@N?(olHy`uVBq!ia0vp^(jd&i1|)m0dc-mj#PnPRIHZt82`Ti~3Uk?B!Ylp0*+7m{3+ootz+WN)WnQ(*-(AUCxn zQK2F?C$HG5!d3}vt`(3C64qBz04piUwpD^SD#ABF!8yMuRl!uxSU1_g&``n5OwZ87 z)XdCKN5ROz&`93^h|F{iO{`4Ktc=VRpg;*|TTx1yRgjAt)Gi>;Rw<*Tq`*pFzr4I$ zuiRKKzbIYb(9+TpWQLKEE>MMTab;dfVufyAu`kBtHuNWFoz#!AFNG#Ad)HBe}%?0@jth%@)C>7xhtg4GcDhpEegHnt0 zON)|$@sXws(+mtd{1$-}0$pR}Uz7=ql*AmD{N&Qy)VvZ;7h5Huj9yA+ij{$*1uzuN zO$^M949qMH4J`~TjGdj_oLyXujoh3}4Pa(q)9Yy9Xkcb)?C4}{2sFdh(8<))#m&XU z%+S&d2#s7|dOh=sOA_;vQ(^XI0_}A)uyi#xbuqxJ*UGslHL)bWC?r2W2bKZ?GV)9E zi!<^I6r6+26f}GjlQZ)`0-B%*g80`ZwJ5VJHN~wcKUV=9!d97BT;OJ5?uPDjS4(3P zLo-VQBO^0&C8*vMazafX=oo!a@<2*1Fd<+X1To=>AIO1cpVT~Ho+$!m4vmdZ&oVGD zE%9`545_$vC(JrS#8G12-MM?M^|ES81h;x9b7+dPb_erV3KVO22$;BpY!PrVXyr;0 zywEW97Pk|ZrD*a)Zec~Gi*6UTh-Ix;+qt{;T+jU%@9yp@-(1bD*vc&b`TXbE{|*25 zsI@4p4lUW#)jH3nwvMfIW%tg~1i2lre&4fMx{R$-#DX=4-E8Ta`AZFwCud}SoPLXC z*S*Q7pMHP->F3=x$L|SuIgj0NJ-(6i1ZQAHa_swG0XmI6=Io1#_81)NO#OM}^WCJ4 zH;fO?h|jz7TIKBXi?%BttUcMkDmY4`zi)20uF&7Dw?0Ll|EhOmmhFpOeSP~_d14vk z7{f~bJ#G(vXy?mxO7xb&xku@Lnu6mVIh~0pd(3Hdk12J*v?Y@N!#9UL4tV+^EM$Je zJ-*jsjf@W@4LI-kD*q}za^l|I5XDw*rwk)Z-i%_Tr_KA*y1hu9``o4ihh+0zH6+w zr6t{+``B%E6W!{DJu_<+{r5i0PYJV933aqN&uX)%`M{Z{orw~$lQY@b_}!FqlABzY zET6vQffe7vWt#Kn7UVb|+9mIMR_3_sluO$fTUVyE%`{n2$!=SFBG3GS+%&;C->y7( z%RDpt_ayzZ7bo$k-ANx)|Q!R zk~`S<920*i`|9_Br#}0&zutFzSs KT-G@yGywo;PIbco literal 0 HcmV?d00001 diff --git a/mobile/android/base/resources/drawable-hdpi-v11/ic_menu_reading_list_remove.png b/mobile/android/base/resources/drawable-hdpi-v11/ic_menu_reading_list_remove.png new file mode 100644 index 0000000000000000000000000000000000000000..3a966e7dd915453eaf35154fb4f4643d294becce GIT binary patch literal 1696 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 N002ovPDHLkV1oRra6|wA literal 0 HcmV?d00001 diff --git a/mobile/android/base/resources/drawable-hdpi/ic_menu_reading_list_remove.png b/mobile/android/base/resources/drawable-hdpi/ic_menu_reading_list_remove.png new file mode 100644 index 0000000000000000000000000000000000000000..c563422fc50dd2e8d438f027f365a8bed1b404d3 GIT binary patch literal 2361 zcmV-93C8w`P)KbF1O!2qD9WD-_yY}sB2WcV0SO9WlbQfgS|p%9Dp~}k z(EN!)(<+Th>=K%&9^2!Y@tfuC3+K+bZYJ$)_AChAm5!drZ|2?ezI)F1opav|@qHhH zQGGB01OY$+KmkAjKmkAjKmkAjK*0zA3IGZK3IGZK3IGZK`o9`nvmZG1!_Oba!;jEn zEtp?Ndjst`w8zl?F*1^X;h{L>@;WRmEYbHUX!oJri}r4`ezedQ=2}O4;QlW>_M5f> z)SC!@PvE)O^v)q**{uhl=lNh5wzQgBpME2mnRZ?Ov%cqjYiTL{kgl7M%@*j}K1=|9 z!LsZy$FVRu(GRhx0)oH+!;psOa$OG=Ut5k@w(}^yY%f5&ca0A8_C-LJgl&fp-R+&Y ztql*$HLsc`3ZGekZ+I_2 z?*QV7bua3?u(;Y-G5UcP_5VO5&Sz}fJfW^a+H09~3TV+tqh?DBS;yC|02GT39FFw#on}~ePrZ7D z)7LNcu6qzd0Ny|W>noo#7~l}Ng_ukGU?uXosVCZkYMtpz%C`@j(T86n^tOk~b`;bx38+rrnf94*F9eICNmR(>^hwZzM;dKR9R;98XKyrg6F>w3>p%o?98&;>3nR0ZUWa%edV4r< zz2>W6%0agciLhrX3`-a-FE8fqwOl`g3x7Xh;31ABU)eb-!;Vn}M4rXD%fK}9Xr5(A z$+yk4Vt5cZ;n7~x%$GRP7Sj1WcE=|zj-{Gsvv`MIV8qU}G) zy!zd$LW4GeSbYFI^EgF zJ?*=C8eF@G!DmCGTlzHap13>kvgL1*DtH-B|L9bfYZs}X}2AqYRm0!oU*Vbpu38eRYU-mAVJ3dCi<%n znuh*t8XMSLz6f@cQPavng5S;85$yni0H6S%0H6S%0H6S%0H6S%U<3dK00jUA00jUA f0R3-`{|GPug!Q5gU1ObH00000NkvXXu0mjf!_j|% literal 0 HcmV?d00001 diff --git a/mobile/android/base/resources/drawable-mdpi-v11/ic_menu_reading_list_add.png b/mobile/android/base/resources/drawable-mdpi-v11/ic_menu_reading_list_add.png new file mode 100644 index 0000000000000000000000000000000000000000..e36824f61b24ef062757cd2c4df6351204c02090 GIT binary patch literal 1376 zcmeAS@N?(olHy`uVBq!ia0vp^LLkh+1|-AI^@Rf|$r9IylHmNblJdl&R0hYC{G?O` z&)mfH)S%SFl*+=BsWuD@%o&*>5hW46K32*3xq68pHF_1f1wh>l3^w)^1&PVosU-?Y zsp*+{wo31J?^jaDOtDo8H}y5}EpSfF$n>ZxN)4{^3rViZPPR-@vbR&PsjvbXkegbP zs8ErclUHn2VXFi-*9yo63F|8KW+g=7RhMR$W{Yl!|Z$R@KEJl?AE#L8-<0 zrA5iW_()TRX$FQJev3c~fv&OgFUkZ)N@9*nesXDUYF>$_i>(q+MlU5Z#md0Z0vL+s zCI;q424)t9h86}E#?DS|&Mq#-Ms7}~1~42)-)bTu}0c5yN`1e)P$=wxc@;^tyv zW@u>!ghnnfy`Fi+C5d^-sW5vpf%Zc6I^)%ArLl>jnWce| zk(s#?RBsA7p{5UXj6NuNASD-=5HJmbnDE38EvuU)FTmD$*eLX!|}`# z&uF3lA7}2$^th}Ppj^AF_}%gO@6RoZ$~NjhuUP!+#=(alwNv&=*F4E>ntHl_UbtYXhIP-lvBN6Ztnt#UU#9Z| z)NOM`{i+j1=H2{iSHS&cbEm-n*c6pX-`Z6izaRhTbAa~)pTzQZCAY;DYD-gDB0v8% zTk5C0bZw|Q*WqVtl=>gd+#RZ-oPm{Rv$cXw%9NQi_nc*kVSaY6;6Yv3_ZNHQw&^pnF)Vbw VF7R|ecR#4i^K|udS?83{1ORM>-fjQ@ literal 0 HcmV?d00001 diff --git a/mobile/android/base/resources/drawable-mdpi-v11/ic_menu_reading_list_remove.png b/mobile/android/base/resources/drawable-mdpi-v11/ic_menu_reading_list_remove.png new file mode 100644 index 0000000000000000000000000000000000000000..09d7d389ffa384e160bfc4b6db47bbd598e14b06 GIT binary patch literal 1398 zcmeAS@N?(olHy`uVBq!ia0vp^LLkh+1|-AI^@Rf|$r9IylHmNblJdl&R0hYC{G?O` z&)mfH)S%SFl*+=BsWuD@%o&*>5hW46K32*3xq68pHF_1f1wh>l3^w)^1&PVosU-?Y zsp*+{wo31J?^jaDOtDo8H}y5}EpSfF$n>ZxN)4{^3rViZPPR-@vbR&PsjvbXkegbP zs8ErclUHn2VXFi-*9yo63F|8KW+g=7RhMR$W{Yl!|Z$R@KEJl?AE#L8-<0 zrA5iW_()TRX$FQJev3c~fv&OgFUkZ)N@9*nesXDUYF>$_i>(q+MlU5Z#md0Z0vL+s zCI;q424)t9h86}E#?DS|&Mq#-Ms7}~1~4FflZAHFPpHb#Zes zF*CF@141Jgm|oAk;*!L?>O)SYT3dzsUfu(?ejQo=P;*9(P z1?ONh1r6WCw{ApUhpEy^rQO>ryA&s6}2uvI1&7r0rNyP^Bs)za9+(9F`n z$jHoG392`RoKVvTIz}IqJdlzLObD0;K}>k!2Xf%qCp8b4XNrKCBk32*3F@9Pf9vc1Ut{02 zbAsr{kK7F_)OG&<|2vs+V}r>qN1grk|E>s&Jh*xI$cZB#ULN*equ2Oqa^g>R(}cH9 z_9CqN>;9%%)c@2y+{60(z@J4r$!x;ToNQ%gX(FW`E!h>e{rml0{FPvc^vxL(5@){t zl&moRDmi0@grrFbi(^;A3;r&v8Fkb4*Ds9w^>?n~_J=lyZ}W4s9%9nrnJmro@Y4+j zAN$ksGrH^QQ)k4iZCfd%(Z~PCbqB|*rucZtOVRHQ_x$a6qEsi=HuI|258kF%=|6w7 zKU_33_0f{uFZl1c)<4wiT2p`G!zhzCJCyJ7LwIuTw47|NZw@ zT4Jvc%if0buK)l4Pfpmfsqo0Gn+=}rj&XCQF4XCm+bBAN?YH^Aq#a+sh#!8x-{RA( z)}?oO71s8hc9RqoV@q4mEWhtp^Z7*n2RrZIIV2W4NxWlkLj~IjCj~$DN4XAvBxif- wd^pn{Ij6y74NFqM#t+gR-!Cq;Vd5}gNKxEb8`R}@9#j%~y85}Sb4q9e0Gsyx6951J literal 0 HcmV?d00001 diff --git a/mobile/android/base/resources/drawable-xhdpi-v11/ic_menu_reading_list_add.png b/mobile/android/base/resources/drawable-xhdpi-v11/ic_menu_reading_list_add.png new file mode 100644 index 0000000000000000000000000000000000000000..9247e4444ef0eaee9b0b319d84077373698b0a6e GIT binary patch literal 1808 zcmbVNc~BEq7!M$a0Yn+bf~bUe3{pt40TM_PAju}cNFXLbf(m6x7Ko5+$ZkkLEy~EH zST97Vcn=DqptO!yDfOxq#R>)L2p%9P7Vy9pp@7;Ag6(u1|LE?%eeZqy{eIu^zHhcb z91&tqoJS-O2=-y2pah>6n}&@Q{_ZA}l;D#KCXi!NBoQ+}I+(y!A_*`lObsQ$5*Siu zq&3290>L6#C6i-vQ8-J1s40+1hhkJ~aWsLz4l-&XMGB0O65u42hC_aF;YTt_rR0#K z{X{g8mJcVZLNj%+G&4e`$V^cLD9J&AB({--6R2SfA{o`G8kA+^kSBRr_}V00AD`_1MnizX#kx{!ykq>;LGx3u;@(E)J4Xv z>6D2q2`HShh3`1zWDL`?s8oZ&Kr#4G5M2@#2nYx;anR}BxP~{Hp}`=dw+3A_%>crv zLZ{MVDnvsvF+vH59^;U4Pv3{2)`~QwllK&c?2(5qn$76x+2_!o*&rDV~# z{&*IdzBDGC#_$IKf11A!pC{ylpbuTh^P^33d<@H_acK-c9|6w?z&Qi}&(9AOg1!tO zfPvq1a2gw?K`}_9fT!)MaJy4j@RL{;Uk5`NqLU#=>U0H&lMxI-lMyY6FJ+KCM36$I zF$tEL4(NTnAgoiR!%CqJQIjS!%u;>C1ED`t_}|C{0Y1I}BY;MyGnnKltn&Y4jfy)% zHI>J|%4J%F*PvLmq6CM&vq@n zmBZo0K6|0hR7yB%y}_j*-odSXd3)8Jng{EKGmXx!*%Jvp?9|qpG43JIevb+;T~2y@dg z7BMpSpkRZiO85NMgMuA>k*h-Y?`6N7wZ@ux$^MRh>7z5}TFR_6D{Q&$?s|EBb^F>T z-z+yHw>jN)+co9veEZ(m_+6U5p@fXLGFyFkMdla5#5Mg-OPD7e=Q{Ev9u3vhw!UV& zWxX7;D_!~)|Gj;Y6qlQ4&!ydODwEUQOHZQr??k&YMAB})8CsTG%p-TV@oL5Ey=kTW z!uthT+|Jv4z1X?Zo?l%!JEQ)qqH?d&*5uwse(GPZ#0|{2Tz1hT{`W}Sy}VzK4%Wl?cx|tCXD#PSC7~jj{3GF0t;0TaG!i3JY^8 z3iS87mUscYgMj=Rg^??pr(N$nCTeHD&bH?;A?Cetzn8eIf*3^ln&pTO4=uw~GXSA|<#~uYFR1 z<Mt#Q66+yMUV|#2= zkJ7x_TaB(R$JOGHL&Mf@-N=@d^!)>G#)sZHRAq?{A2hck5aT`NjukZ_rhinJAOfuB H#b^Hw)U&#V literal 0 HcmV?d00001 diff --git a/mobile/android/base/resources/drawable-xhdpi-v11/ic_menu_reading_list_remove.png b/mobile/android/base/resources/drawable-xhdpi-v11/ic_menu_reading_list_remove.png new file mode 100644 index 0000000000000000000000000000000000000000..6d1732b263e05c563e6d87a46823db04a7627dee GIT binary patch literal 1854 zcmbVNc~BEq7!L&$sMnQaa4-_55BO)qVp&JC-={Ww;-F^Gs`}X_&zTTSk7t2_(VEU9V69~1P^oQ@N9&IL9GM;KQ%fP2cnnA#5 zkbwzeHD7H};AzI0*;ZVa9UHIDUZR&6z=&`l%qC?B2%N?M8(}h2Qkx7M;*~OMhZq8Z zAr*Rw41DiYqFMteNGlGAdBR{lABF)0;lUy?g1|w5fDa2GKJy^Kut+LKq=FD&_yQSg zRzr$34pk1@Vs_%mTqYK12|XxQ4VTIu8HGjgM+m z@mUreio+=~!>VV_BgJO~%;fIVh8&8FH_|y)BXcO22_^Lz1a78Ps0?Jj@C-(Slph(& zWHCg<4-xQ@P#6y7hYA&Pr2<8T0;OEcAK~~IRxAmT3*=EExsWe{;V4)x7Nbg3guoJn zxdrG5R%NDW%&f;p>>3%n!&u=bu~LN<$7s?TPm-pQ3ecpHG)bkA7C@mx0Dm>6H<}%S z0LKBnj~B(Q#-+GHX(b6@D8o|YM?6r5hA96Vd6Yybf)NQ{AV5OEVXWc*WDR1RfgI)W zuW}g?F*WE|ekgus^PzokGt)Cxra3g%`c+KNnN(~;=-96EhoIUAtJE;@aAGK zEZ&swS{YZyxjg%IMH9!@^<{5GNuMT?{et7A4H|#U{o*DFYoGtZS-!Hpxg>tEYZ6vk z{a89f_-g5s(5O><1h_q(%PJZj;$=<@{Mtg9a_NUkt3$xy+h>z^Cyq_E(@`QG;xh2p-esQQM089=ZJ^xkWU`>9@UtAhb&5ak zL2l=dO+cwqt>vtA**7N=L`lv`rN^JXQt%VoQTJT())~O7sC!;9kuo?@p0KZHzqrER zWoq=Di$AxuQ}4#ETc<2Dy&*TwbeZT%RaCBU{b{~#Os?yS4Zd#!4mRAcmT`e?wNCEN z3l6rAzTObDrgqA?+i@MbhfS}vgSBQwz(Hi+DUF9Pd&bqZJJ|5}xJ{+k*Ie39tn^#A zKDtj+7v82zK+X@;dKe2I<(h8ooqK6{Au7t;jcfDS)Y)qH?V-KwuaDKYHC~?X+@4+&(GpftE$<5Qu`4E?z0d7PZLYchz+#-f_$5^A!kw{vzps$W zXXgd!gkgC>Nu_{+xPv{MQeG#Xr+u=h_?z#F^gns%~73|x;QG3V&r^G_z4`_kRM zT?Ki^+(rUYOhwO^6>tQ^)kg@iqxhbx|MM-Aw4u$>u1=HsbT`4UtTVezv**rb>l<~^ zwoOw{VyBJ+ZeV_u8yS&q=^ytnP&RF6wwLh4w(3|CyRo?&^$%Fsa&Nb~zT)j;^pfZ% ze8%1$5p;B=ebtl`sZL2h%-TApYVDrAyEFEfcxyRTPU({`dt^6-FYhcgxcJ&99GNs; zmhXhTyX%={X%2}z^l;$W8i~zZ@ufSh#~QDmExWGtloeZvIo#UL$z6@p6d4`MVdY=IpGBwkU0Qr&(0R|wqISq>6iYR(L%rgK0 literal 0 HcmV?d00001 diff --git a/mobile/android/base/resources/drawable/ic_menu_reading_list_add.png b/mobile/android/base/resources/drawable/ic_menu_reading_list_add.png new file mode 100644 index 0000000000000000000000000000000000000000..652786f427522d29e6560f38f2b6d4d2527ee0f3 GIT binary patch literal 1103 zcmV-V1hD&wP)T0Ib z=}s({N~PG|-kv@X2wcVYW!M#D-_mF__o#krYb&d(t7Ay#t&h4a9*>tgP^AM{EEZ-k z7?{y$6d?+M5WwN#A?xbuV(aVcI-k!srB-C~|l}eQ(oGcQFuxK>O zDh@!SS6f>vzMW2Iw)f@b<$Ps3YHDikLa4i~t?e4pY7D>{#6JSeM~L5-$_@++Wa}*~ zETpLq%s}MD3 zwpy(OP_n2(eN+U1Mp3fN3|z#H@)P2Xd4vcM;=oM!$`K>)Lyk z0pixM4vcxq3h-kG%qI^S&J6(8fU2>vQC(l3bB@vWslvWbcK%$5wn%y=CntS)8E6}o zKNJp->&UmyVgjjc#R2?&KN}kxGm|h1yl9`#BP5A65GFyiOHpvPzn_iY%tybw30nqsi#PoNH z9ru}Yz=U%^gUbxV&Fm>|U>%*Eozw=2i~~TB15jE5Ls9$4T^-1>u{=X0h-~b$e18{)<4&b){0|1+% V6L?|+*r)&i002ovPDHLkV1m)1{Zjw{ literal 0 HcmV?d00001 diff --git a/mobile/android/base/resources/drawable/ic_menu_reading_list_remove.png b/mobile/android/base/resources/drawable/ic_menu_reading_list_remove.png new file mode 100644 index 0000000000000000000000000000000000000000..cd2fefbcd1087311e8a82a95d36cf71bdd680343 GIT binary patch literal 1336 zcmV-81;_e{P)M_ni*R90F?>CPz#vkQO4B+i&C5gTok4NF|yP6@DjDsvo z8_qB27C4T()s5OZKu22!8XA%y$tfUG0w_&vs3(8}XD%Gre-BJfURTGjP7hOw9zS-t zA5!TyP$H$d(#oN%UYwgCm{5@B=TbR zUiwPMzShSSS)oa-X&e{-CZ+TOA*5JVj}24=-Z>$d42~_=9)NH^5X+ncwPN$ne>bvL zj}V}Q{4sdA|MgfTJ*s5dzM(|?LJ2?a+cSpm7`WSRSwGdW3SjAIJ01!A)Eoe~7l>mQ zp_Bz*ef~lhXZ#9&Oji+rL`h-n;^n?W5B7f_iKR~o?wv8syrCBsz;S&95ETHcQv=&k zvh1to0L%-7xlZu!{e4-XCK}9WEX}J`J*Qy%t`3X2KQZ){-e!2^^La2W8+@O`W|c3n z&6H(d^#O3p#(N%qZ5oGt#hG)#uCHdX02`AuZ+lS4<-s;2<}(gf(E+SV+wxIk0C#0~ z+%>mHFMPYEo|N|1br~#~4rKQ?fg6#7kf{ut?fR%)4wMY9#OK)$pSnYq=x>yg)H+oz zOx*Q@%yXxFV6amkbq%3`hkAvYY=Wq|r>dq4aI8gc8S|oOEP&X?Vs1kSN#*11IWl|$ z2hG0m_T8ghm;>X|206em2k^Ut68KZV3GCEIjgz=^ymWai<-h}3qG~NPsy3`EqmGrE zw)EMB;?g|!H$LptM;%UpqV44eS-H!+a-YdodAJL*XCgU;y|WU*R_NKkqE7BN5OVETQWV}^*FTdjp0Mghk{XFRHjmW zV(3sXs&N^bGEsQ^k+%ArK+s@ee98oOkF%VQi_;ATbfy2P45894d%l>)mf_UQobfT< zZAW<@LN88J7L|vM>s1or(ipc}_H9}tZz_K?hj|hN^n7nCr&gPuc2$M&? zH!#`z4s<4=ITHi2!TW$3lOUrZ0F9w9!D|jc6I~xcs_kSn39z>jUs`U_83^Cj+Bz4c z!t4ZGzMg+4olv@avfU6*cYqw#T%fYK&OY*Bu*+*^p}5|tWI=4P09r%)bX2vT;f(!k6lTEC^Wb{e unO1C?7XB_20)zk|KnM^5{GS2-5?}zyo~)~BcLId~0000 + + diff --git a/mobile/android/base/resources/menu-v11/gecko_menu.xml.in b/mobile/android/base/resources/menu-v11/gecko_menu.xml.in index f0be07d5ac1e..2ac11d460d31 100644 --- a/mobile/android/base/resources/menu-v11/gecko_menu.xml.in +++ b/mobile/android/base/resources/menu-v11/gecko_menu.xml.in @@ -22,6 +22,10 @@ gecko:icon="@drawable/ic_menu_share" gecko:title="@string/share" /> + + diff --git a/mobile/android/base/resources/menu-xlarge/gecko_menu.xml.in b/mobile/android/base/resources/menu-xlarge/gecko_menu.xml.in index 2d04b76175ef..746d9786a0d7 100644 --- a/mobile/android/base/resources/menu-xlarge/gecko_menu.xml.in +++ b/mobile/android/base/resources/menu-xlarge/gecko_menu.xml.in @@ -25,6 +25,10 @@ gecko:icon="@drawable/ic_menu_share" gecko:title="@string/share" /> + + diff --git a/mobile/android/base/resources/menu/gecko_menu.xml.in b/mobile/android/base/resources/menu/gecko_menu.xml.in index f0c4c38824e7..b66429685e35 100644 --- a/mobile/android/base/resources/menu/gecko_menu.xml.in +++ b/mobile/android/base/resources/menu/gecko_menu.xml.in @@ -21,6 +21,10 @@ android:icon="@drawable/ic_menu_share" android:title="@string/share" /> + + diff --git a/mobile/android/base/strings.xml.in b/mobile/android/base/strings.xml.in index b3fe59faf261..d57ddc3f794a 100644 --- a/mobile/android/base/strings.xml.in +++ b/mobile/android/base/strings.xml.in @@ -112,7 +112,7 @@ &site_settings_clear; &site_settings_no_settings; - &add_to_reading_list; + &reading_list; &reading_list_added; &reading_list_removed; &reading_list_failed;