From 4dd3b0c2aa9ba8c05c3c11661b8e947bb00ffbc1 Mon Sep 17 00:00:00 2001 From: Daniel Gultsch Date: Sat, 16 May 2020 12:10:26 +0200 Subject: [PATCH] allow to pin conversations on top. fixes #3480 --- .../conversations/entities/Conversation.java | 9 +- .../ui/ConversationFragment.java | 15 + .../ui/adapter/ConversationAdapter.java | 1 + .../res/drawable-hdpi/ic_star_black_24dp.png | Bin 0 -> 369 bytes .../res/drawable-hdpi/ic_star_white_24dp.png | Bin 0 -> 370 bytes .../res/drawable-mdpi/ic_star_black_24dp.png | Bin 0 -> 263 bytes .../res/drawable-mdpi/ic_star_white_24dp.png | Bin 0 -> 271 bytes .../res/drawable-xhdpi/ic_star_black_24dp.png | Bin 0 -> 467 bytes .../res/drawable-xhdpi/ic_star_white_24dp.png | Bin 0 -> 475 bytes .../drawable-xxhdpi/ic_star_black_24dp.png | Bin 0 -> 668 bytes .../drawable-xxhdpi/ic_star_white_24dp.png | Bin 0 -> 676 bytes .../drawable-xxxhdpi/ic_star_black_24dp.png | Bin 0 -> 887 bytes .../drawable-xxxhdpi/ic_star_white_24dp.png | Bin 0 -> 890 bytes src/main/res/layout/conversation_list_row.xml | 14 +- src/main/res/menu/fragment_conversation.xml | 6 + src/main/res/values/attrs.xml | 192 +++++------ src/main/res/values/strings.xml | 2 + src/main/res/values/themes.xml | 322 ++++++++++-------- 18 files changed, 328 insertions(+), 233 deletions(-) create mode 100644 src/main/res/drawable-hdpi/ic_star_black_24dp.png create mode 100644 src/main/res/drawable-hdpi/ic_star_white_24dp.png create mode 100644 src/main/res/drawable-mdpi/ic_star_black_24dp.png create mode 100644 src/main/res/drawable-mdpi/ic_star_white_24dp.png create mode 100644 src/main/res/drawable-xhdpi/ic_star_black_24dp.png create mode 100644 src/main/res/drawable-xhdpi/ic_star_white_24dp.png create mode 100644 src/main/res/drawable-xxhdpi/ic_star_black_24dp.png create mode 100644 src/main/res/drawable-xxhdpi/ic_star_white_24dp.png create mode 100644 src/main/res/drawable-xxxhdpi/ic_star_black_24dp.png create mode 100644 src/main/res/drawable-xxxhdpi/ic_star_white_24dp.png diff --git a/src/main/java/eu/siacs/conversations/entities/Conversation.java b/src/main/java/eu/siacs/conversations/entities/Conversation.java index 2d61b9226..e6f1b27cd 100644 --- a/src/main/java/eu/siacs/conversations/entities/Conversation.java +++ b/src/main/java/eu/siacs/conversations/entities/Conversation.java @@ -6,6 +6,8 @@ import android.support.annotation.NonNull; import android.support.annotation.Nullable; import android.text.TextUtils; +import com.google.common.collect.ComparisonChain; + import org.json.JSONArray; import org.json.JSONException; import org.json.JSONObject; @@ -49,9 +51,9 @@ public class Conversation extends AbstractEntity implements Blockable, Comparabl public static final String ATTRIBUTE_MUTED_TILL = "muted_till"; public static final String ATTRIBUTE_ALWAYS_NOTIFY = "always_notify"; - public static final String ATTRIBUTE_PUSH_NODE = "push_node"; public static final String ATTRIBUTE_LAST_CLEAR_HISTORY = "last_clear_history"; public static final String ATTRIBUTE_FORMERLY_PRIVATE_NON_ANONYMOUS = "formerly_private_non_anonymous"; + public static final String ATTRIBUTE_PINNED_ON_TOP = "pinned_on_top"; static final String ATTRIBUTE_MUC_PASSWORD = "muc_password"; static final String ATTRIBUTE_MEMBERS_ONLY = "members_only"; static final String ATTRIBUTE_MODERATED = "moderated"; @@ -479,7 +481,10 @@ public class Conversation extends AbstractEntity implements Blockable, Comparabl @Override public int compareTo(@NonNull Conversation another) { - return Long.compare(another.getSortableTime(), getSortableTime()); + return ComparisonChain.start() + .compareFalseFirst(another.getBooleanAttribute(ATTRIBUTE_PINNED_ON_TOP, false), getBooleanAttribute(ATTRIBUTE_PINNED_ON_TOP,false)) + .compare(another.getSortableTime(), getSortableTime()) + .result(); } private long getSortableTime() { diff --git a/src/main/java/eu/siacs/conversations/ui/ConversationFragment.java b/src/main/java/eu/siacs/conversations/ui/ConversationFragment.java index b2e04b32d..d0e97a9ac 100644 --- a/src/main/java/eu/siacs/conversations/ui/ConversationFragment.java +++ b/src/main/java/eu/siacs/conversations/ui/ConversationFragment.java @@ -962,6 +962,7 @@ public class ConversationFragment extends XmppFragment implements EditMessage.Ke final MenuItem menuCall = menu.findItem(R.id.action_call); final MenuItem menuOngoingCall = menu.findItem(R.id.action_ongoing_call); final MenuItem menuVideoCall = menu.findItem(R.id.action_video_call); + final MenuItem menuTogglePinned = menu.findItem(R.id.action_toggle_pinned); if (conversation != null) { @@ -994,6 +995,11 @@ public class ConversationFragment extends XmppFragment implements EditMessage.Ke } ConversationMenuConfigurator.configureAttachmentMenu(conversation, menu); ConversationMenuConfigurator.configureEncryptionMenu(conversation, menu); + if (conversation.getBooleanAttribute(Conversation.ATTRIBUTE_PINNED_ON_TOP, false)) { + menuTogglePinned.setTitle(R.string.remove_from_favorites); + } else { + menuTogglePinned.setTitle(R.string.add_to_favorites); + } } super.onCreateOptionsMenu(menu, menuInflater); } @@ -1261,6 +1267,9 @@ public class ConversationFragment extends XmppFragment implements EditMessage.Ke case R.id.action_ongoing_call: returnToOngoingCall(); break; + case R.id.action_toggle_pinned: + togglePinned(); + break; default: break; } @@ -1289,6 +1298,12 @@ public class ConversationFragment extends XmppFragment implements EditMessage.Ke } + private void togglePinned() { + final boolean pinned = conversation.getBooleanAttribute(Conversation.ATTRIBUTE_PINNED_ON_TOP, false); + conversation.setAttribute(Conversation.ATTRIBUTE_PINNED_ON_TOP, !pinned); + activity.xmppConnectionService.updateConversation(conversation); + } + private void checkPermissionAndTriggerAudioCall() { if (activity.mUseTor || conversation.getAccount().isOnion()) { Toast.makeText(activity, R.string.disable_tor_to_make_call, Toast.LENGTH_SHORT).show(); diff --git a/src/main/java/eu/siacs/conversations/ui/adapter/ConversationAdapter.java b/src/main/java/eu/siacs/conversations/ui/adapter/ConversationAdapter.java index a4eb3af6c..8aaeceafd 100644 --- a/src/main/java/eu/siacs/conversations/ui/adapter/ConversationAdapter.java +++ b/src/main/java/eu/siacs/conversations/ui/adapter/ConversationAdapter.java @@ -201,6 +201,7 @@ public class ConversationAdapter extends RecyclerView.Adapter listener.onConversationClick(v, conversation)); diff --git a/src/main/res/drawable-hdpi/ic_star_black_24dp.png b/src/main/res/drawable-hdpi/ic_star_black_24dp.png new file mode 100644 index 0000000000000000000000000000000000000000..92a0f586223099f0d3ba629fbfcc44ef4890dec3 GIT binary patch literal 369 zcmV-%0gnEOP)x%~aQ|*Pi>J&v=b3wE$LG8MEr0%P=cnz7#~$g4jD2yc9`&S%#vjw5|Y!>q=2|S(dv( zn7HqV)RG4#LbxN#Tj8|}c5=}h;gt-FN;eeh%)6;{NUP;(ZTgn%+JCMEjoCkkyqJc zlx9X`i)ETwkS+FTW?Qy+z*M1v=~i|a#8f241ZS8cvOyA8iA4hXLVzVoxMpR8b!w_? z(kBBU3RJ0ClMSwb3no;M1&07*qoM6N<$g6P$m>i_@% literal 0 HcmV?d00001 diff --git a/src/main/res/drawable-mdpi/ic_star_black_24dp.png b/src/main/res/drawable-mdpi/ic_star_black_24dp.png new file mode 100644 index 0000000000000000000000000000000000000000..a728afe60047efd900e7d4213faa7b5c22e9c875 GIT binary patch literal 263 zcmV+i0r>ujP)wy>Q~O4(cG+o4>KCu6T+^BCOrw^!GuQE#HdwSrIsaKw_?-sW8HhPsQ^&e^6HMX(vec#v}05LvoCpRlKN)&1ls@r N002ovPDHLkV1jAvcYy!^ literal 0 HcmV?d00001 diff --git a/src/main/res/drawable-mdpi/ic_star_white_24dp.png b/src/main/res/drawable-mdpi/ic_star_white_24dp.png new file mode 100644 index 0000000000000000000000000000000000000000..d2cbe4c92baf6023c039159b6e01be017696fb6a GIT binary patch literal 271 zcmV+q0r38bP)uvNGQX>sqmLdrH2qH8~<3YN()zIR{kRWh!ao3KJwpuzm z_~~&T)Or8wn(}$1e?o(X{(=YYRUAhId{R+S+z{!h7!G(LvY@0Q=#XeD4>mQLxJ*er z<8nd`TR+joCm>INPge;nZuw0gOW$!#h{+dM+Qlg!WO=8hY}D~dTjI!!F=>y=!z*b^ znQ=^(s!TX17UJO%5<8O#BO((VZBXZl$WSKCS#g1-Ei5j1W2S7_++iz)Lk5(!&(?(s VPEG8{S6~1D002ovPDHLkV1nDAZGr#* literal 0 HcmV?d00001 diff --git a/src/main/res/drawable-xhdpi/ic_star_black_24dp.png b/src/main/res/drawable-xhdpi/ic_star_black_24dp.png new file mode 100644 index 0000000000000000000000000000000000000000..c636ce8e81bedced667a12e42fae8037f7f932ae GIT binary patch literal 467 zcmV;^0WAKBP)&2LP>Th>G%L(iAzV?AI-i9w zqgElh#qyI1@mef@r2zZIs{7>bzF76HoNe<{tolQfTn&gd`{k(QqgZoFjofsJDo@C$ zq*=QTr}Y_h$A}qG<+KsE4eHaaL%U`r8|XD`%!FA>BI6~qCX5-@Yn>)zBBw7ksiMJ< z$l*iv{%TPC<7;fJ$D+u1(HRMJ`Ytm3rb9w|O^cL2*&~HEZ$*mZTBOwIg-CeRRvFZ~ zB@(=;B%>oD!GkipC=%?K*{DeHxr}Oj6$yTk(Qc9OE}5Ja3HQk4fmruld8~U+CR3u~ zoO5c+&zln!CuPtoDn8cAvNlgd#qCl%C00&2YOQ15iJ69|%3YV* zxDcM&VIw;|6T%xQHTrE*rzDR1V8Irt9Ck^Aq#9gyKtVQb`U4ZVOh=;|ezgDq002ov JPDHLkV1hje(8d4& literal 0 HcmV?d00001 diff --git a/src/main/res/drawable-xhdpi/ic_star_white_24dp.png b/src/main/res/drawable-xhdpi/ic_star_white_24dp.png new file mode 100644 index 0000000000000000000000000000000000000000..91434068324a8bff74fb1c5da1e5c0e62c0cb613 GIT binary patch literal 475 zcmV<10VMv3P){6jg%{2?O0Fht6r z{6R50q-+zEAL!spoBY5xu6&jEs3Bdoyv79S-pO0s3Cl~w$ks3K5MYCB>lDc= zw31JY+z=o_6;V3rAos*9t4- zdM_8Olj(q7f&}T~fK02hM+KQaQK3szGEJs3*`l3mNg9=fXZ+w=t8DR>3x^C)tUM?o z#vvEp$QH|_%y3_~-~pdWS&|(}Ic1e58K9Xpj=3Wn)bomv3=!frwJIp^$vK1K?!e6h R<5>Uz002ovPDHLkV1g}P&{_Zh literal 0 HcmV?d00001 diff --git a/src/main/res/drawable-xxhdpi/ic_star_black_24dp.png b/src/main/res/drawable-xxhdpi/ic_star_black_24dp.png new file mode 100644 index 0000000000000000000000000000000000000000..54d306599a5b5a269a3bd46a7636d5277ee37845 GIT binary patch literal 668 zcmV;N0%QG&P)L>hS~%Lf)(0@qL2a?)n8C8f?8A<)G~?|wF_Da zkx5u&xM?Rr(M8BKvKytAw|sM9a?mp$<2moS1n2i`X8Cf?4D)^;u~_Usv306Qxx;ND zWI3aZP>zBG8k$*1G0j9ok`D+%FG(U{KQdh-k?<6m?lBQijo8{m=x!pmt`o9l{6cIE zvn1S~{c%#*m2!*_CFntB^@aqY*^M|J|ORCBad48k$~%`7K2rEBLUXUO3cX6js(<0G8CYQTSx%iAW6Z_BEB}s zY3AuLqliz9a1a-^@fGo*FXV7(9d8lkUX#Uxa=H-3o>7KJDefUk-K7Kt30e?^E@7eO z1QUpd#%V@b9YcuAezFT6)bJ5;Q6JU#q!V#b2Rrmzc##mNsNgT_{S=SLTbNM2H{@gF-3{^57w~4t7fl zN(f8BB*PBfBrHmVEG1B)%ycS#Lrk2y&F$I$*|T7uj}#Xd_g^5Ne8mzT(5BeIR=iA; zp;*Bc7St&=kjz&W43n%_z)6;rDi-jXC9mW>a`ClKPNNlHcjYX$@CRR$Y?hO_z-qN} z4v7r0+Gi5w6prCfk(@#o{&dP2?7_czcFGAf6G)Sy4>uD8@{=@08|Mk8TG2%U9|`8Y zq6rsetmg!&GL2+1@lZeoH8jx5Q{FPj1fiN>kUpN!LIX8aP=JR_k`yWmsiK}{+Ua3{ zaptkZJYx*dLp#mXQ$?WyA&(KFZG=1p#t!<4rhc|7INWp*EiZ6ueWY-oXlNl>q2e<3 zn&*Lg%top@Kna6%cvEm!KvIo6b(JgzhfoZImBt>@MAXeqe4qU{lTG@dP zta>c-NMIbRzRNsvh(xwbqmoFRlWDXOiF-1QL4uiLieNs-EVdC$2U%p%K``kui82Bi zqFDb>%n*Sbmq|3?&otL?$pLgo!kj-<}>XSL7F~>?@C{YlUGR#U| zTr!0Me9dr!jamn3++qe_M`Q|DS@x3M3K2PUv#d_0(8Z!}lq*bBFv_B5GJ_;0fLU&{ zNfzMd4s*Z{5@iAhfFAZL0(j^JJTie(oKeI`;4CGIi;Ihk3)f#EI?}L6ho$}i0000< KMNUMnLSTYk8z!;< literal 0 HcmV?d00001 diff --git a/src/main/res/drawable-xxxhdpi/ic_star_black_24dp.png b/src/main/res/drawable-xxxhdpi/ic_star_black_24dp.png new file mode 100644 index 0000000000000000000000000000000000000000..7be22806f0e1a339cea85fc7bc45ab72d99859fd GIT binary patch literal 887 zcmV--1Bm>IP))Ds3BGE_75> zPOm1pw?+)nYB^WuJ26Dx$hk$LN_Wb&Zc(M}a%`qPQKf%Pms`(^8tRZ!V;mMWbjbN~ zX_ct4R=M*&;+|hhV3$5!baOBGHR<)Qc!23$e?GX=;4&7 z-YKn8wkXA^*K58ETJwf>f2fnG>qWxNlBvf; z!aX8WZ;FK5B2&o^>U}aaU8K-dnR!6e)IqIU9TYWnpUiZMs`YuAYD$nzfRq6~@XO%-$enM!HiMxh8I9(>7vWvYk~)nr@6+1{46v%}ykw@b<$z7|6GP0Fqk z!cmWFl%z)OjtSv%sah#)GesJvc}sXus@lzyrUlxRN~Kb%R4SEf^dI`@Fkg>}l(ql> N002ovPDHLkV1i1ArFsAW literal 0 HcmV?d00001 diff --git a/src/main/res/drawable-xxxhdpi/ic_star_white_24dp.png b/src/main/res/drawable-xxxhdpi/ic_star_white_24dp.png new file mode 100644 index 0000000000000000000000000000000000000000..58d71b392cc2f161116134c32a23cdbb41a339b6 GIT binary patch literal 890 zcmV-=1BLvFP)MhFJbc!Vf8>XBrv#afrUzI(Sv*tVR8=&3T$vi z21|_S!J-*R^uQ#cfiwGu{X?-u&{%e-xy*U@t|8)a-0k<<_WgeE`-9)>CB5uc2dpj@*h`n zifVE+%6DvLJe%Y<68yk;zL(!vNstHRGx`Y9D}S+o0zu9*Prl++!pO)^G;oqIhPhlm zqJyx~@)2JX)_{CL1M_L)A<|@+h#jO^%^l3=3b{Z%*RhyYY~VRE>|!td9On!s{LOLt z>0=ieI@!P~7BiQ6O%Bbp($0Feu$?Tu9OP$m)IyG*I7ly9wzGxxw9`tng0PWMd^O4w z3dRcZ_$bc`g+nX9;+qrPtng^zFg_VzjwXgi_Tq~^rfcFz(TxvwlG0?+MUh%6(5b0m zE&os}BdpQXaTi0>!XGS^8Qj2+xOS8UGKVG(;L?6($}Fa_2Um7eFY`#S0~cPFJv_-M zHk~6ayI4scTXM9^K5k(U8&0rDZqUMEOgqGExkDqLVA97-ms_OBVoEnjxyKqzd04f; zYnYNzEzplCU&uWgIEN``nI_j*hDrCzHMU{W3v!KpnA9h?NRr2-KS{_XZo{-ia*1a! z?J2p$`LYK9hZ1#t7w#yu&q`0A}$nMarEfCEK`@a$j+`CV_i6 zLb)ZfjV?;%*i1^3M2fBCDYaF$@e!BwaIL0@+3e<$4`mxeT<|UT$q?@6J1+QLc5xG9 zPVp>tGKf05IL(;rWfL2LJ%;f{%aoI!{%VZJD=~OHhi^XEGSS+Of0L&8&54>`n Qv;Y7A07*qoM6N<$g2~RG + + + + \ No newline at end of file diff --git a/src/main/res/values/attrs.xml b/src/main/res/values/attrs.xml index 5f5d848f7..48a4733b9 100644 --- a/src/main/res/values/attrs.xml +++ b/src/main/res/values/attrs.xml @@ -1,127 +1,127 @@ - - - - - - - - + + + + + + + + - + - - - - - - - + + + + + + + - - - + + + - + - - - + + + - - - - - - - + + + + + + + - - - - - - + + + + + + - - + + + - + + + - - - + - + - + + - - - - - - - - - - + + + + + + + - - + + - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + - - - - + + + + - - - - + + + + + - - + + - + - + \ No newline at end of file diff --git a/src/main/res/values/strings.xml b/src/main/res/values/strings.xml index 23d24d2cb..679e37006 100644 --- a/src/main/res/values/strings.xml +++ b/src/main/res/values/strings.xml @@ -920,6 +920,8 @@ You can only have one call at a time. Return to ongoing call Could not switch camera + Add to favorites + Remove from favorites View %1$d Participant View %1$d Participants diff --git a/src/main/res/values/themes.xml b/src/main/res/values/themes.xml index b9e971cf1..3a19be555 100644 --- a/src/main/res/values/themes.xml +++ b/src/main/res/values/themes.xml @@ -19,7 +19,9 @@ @drawable/search_background_light @drawable/no_results_background_light - @drawable/no_results_primary_background_light + + @drawable/no_results_primary_background_light + @drawable/list_item_background_light @color/black @@ -39,87 +41,108 @@ @color/black12 - @drawable/ic_send_cancel_offline - @drawable/ic_send_location_offline - @drawable/ic_send_photo_offline - @drawable/ic_send_picture_offline - @drawable/ic_send_text_offline - @drawable/ic_send_videocam_offline - @drawable/ic_send_voice_offline + @drawable/ic_send_cancel_offline + @drawable/ic_send_location_offline + + @drawable/ic_send_photo_offline + @drawable/ic_send_picture_offline + + @drawable/ic_send_text_offline + @drawable/ic_send_videocam_offline + + @drawable/ic_send_voice_offline - @drawable/ic_attach_camera - @drawable/ic_attach_videocam - @drawable/ic_attach_document - @drawable/ic_attach_location - @drawable/ic_attach_photo - @drawable/ic_attach_record + @drawable/ic_attach_camera + @drawable/ic_attach_videocam + @drawable/ic_attach_document + @drawable/ic_attach_location + @drawable/ic_attach_photo + @drawable/ic_attach_record - @drawable/ic_call_black54_24dp - @drawable/ic_videocam_black54_24dp + @drawable/ic_call_black54_24dp + @drawable/ic_videocam_black54_24dp - @drawable/message_bubble_received_white - @drawable/message_bubble_sent - @drawable/message_bubble_received + + @drawable/message_bubble_received_white + + @drawable/message_bubble_sent + + @drawable/message_bubble_received + @color/green700_desaturated @color/green700 - 0.54 - 0.70 + 0.54 + 0.70 24dp 16dp - @drawable/ic_description_black_48dp - @drawable/ic_mic_black_48dp - @drawable/ic_headset_black_48dp - @drawable/ic_room_black_48dp - @drawable/ic_person_black_48dp - @drawable/ic_android_black_48dp - @drawable/ic_event_black_48dp - @drawable/ic_archive_black_48dp - @drawable/ic_book_black_48dp - @drawable/ic_backup_black_48dp - @drawable/ic_help_black_48dp + @drawable/ic_description_black_48dp + + @drawable/ic_mic_black_48dp + @drawable/ic_headset_black_48dp + @drawable/ic_room_black_48dp + @drawable/ic_person_black_48dp + @drawable/ic_android_black_48dp + @drawable/ic_event_black_48dp + @drawable/ic_archive_black_48dp + @drawable/ic_book_black_48dp + @drawable/ic_backup_black_48dp + @drawable/ic_help_black_48dp - @drawable/ic_group_add_white_24dp - @drawable/ic_person_add_white_24dp - @drawable/ic_cancel_black_24dp - @drawable/ic_content_copy_black_24dp - @drawable/ic_delete_white_24dp - @drawable/ic_file_download_white_24dp - @drawable/ic_edit_white_24dp - @drawable/ic_edit_black_24dp - @drawable/ic_save_black_24dp - @drawable/ic_group_white_24dp - @drawable/ic_add_white_24dp - @drawable/ic_reply_white_24dp - @drawable/ic_refresh_black_24dp - @drawable/ic_attach_file_white_24dp - @drawable/ic_lock_open_white_24dp - @drawable/ic_call_white_24dp - @drawable/ic_phone_in_talk_white_24dp - @drawable/ic_phone_in_talk_black_18dp - @drawable/ic_delete_black_24dp - @drawable/ic_search_white_24dp - @drawable/ic_lock_open_white_24dp - @drawable/ic_settings_black_24dp - @drawable/ic_share_white_24dp - @drawable/ic_cloud_download_white_24dp - @drawable/ic_qr_code_scan_white_24dp - @drawable/ic_scroll_to_end_black + @drawable/ic_group_add_white_24dp + @drawable/ic_person_add_white_24dp + @drawable/ic_cancel_black_24dp + @drawable/ic_content_copy_black_24dp + @drawable/ic_delete_white_24dp + @drawable/ic_file_download_white_24dp + @drawable/ic_edit_white_24dp + @drawable/ic_edit_black_24dp + @drawable/ic_save_black_24dp + @drawable/ic_group_white_24dp + @drawable/ic_add_white_24dp + @drawable/ic_reply_white_24dp + @drawable/ic_refresh_black_24dp + @drawable/ic_attach_file_white_24dp + @drawable/ic_lock_open_white_24dp + @drawable/ic_call_white_24dp + @drawable/ic_phone_in_talk_white_24dp + @drawable/ic_phone_in_talk_black_18dp + + @drawable/ic_delete_black_24dp + @drawable/ic_search_white_24dp + @drawable/ic_lock_open_white_24dp + @drawable/ic_settings_black_24dp + @drawable/ic_share_white_24dp + @drawable/ic_cloud_download_white_24dp + + @drawable/ic_qr_code_scan_white_24dp + @drawable/ic_scroll_to_end_black - @drawable/ic_gps_not_fixed_black_24dp - @drawable/ic_gps_fixed_black_24dp - @drawable/ic_directions_black_24dp - @drawable/ic_content_copy_white_24dp + @drawable/ic_gps_not_fixed_black_24dp + + @drawable/ic_gps_fixed_black_24dp + @drawable/ic_directions_black_24dp + @drawable/ic_content_copy_white_24dp - @drawable/ic_notifications_black_24dp - @drawable/ic_notifications_off_black_24dp - @drawable/ic_notifications_paused_black_24dp - @drawable/ic_notifications_none_black_24dp - @drawable/ic_new_releases_black_24dp + @drawable/ic_notifications_black_24dp + + + @drawable/ic_notifications_off_black_24dp + + + @drawable/ic_notifications_paused_black_24dp + + + @drawable/ic_notifications_none_black_24dp + + @drawable/ic_star_black_24dp + + @drawable/ic_new_releases_black_24dp +