From c4a37e38aba926c2bef27e4fc00e3a4848ce46bd Mon Sep 17 00:00:00 2001 From: Calvin Hu Date: Thu, 16 Apr 2015 01:38:33 -0400 Subject: [PATCH] Add camera preview to message composition --- AndroidManifest.xml | 1 + build.gradle | 4 + res/drawable-hdpi/quick_camera_dark.png | Bin 0 -> 457 bytes .../quick_camera_exit_fullscreen.png | Bin 0 -> 236 bytes res/drawable-hdpi/quick_camera_front.png | Bin 0 -> 640 bytes res/drawable-hdpi/quick_camera_fullscreen.png | Bin 0 -> 231 bytes res/drawable-hdpi/quick_camera_hide.png | Bin 0 -> 324 bytes res/drawable-hdpi/quick_camera_light.png | Bin 0 -> 469 bytes res/drawable-hdpi/quick_camera_rear.png | Bin 0 -> 310 bytes res/drawable-hdpi/quick_shutter_button.png | Bin 0 -> 1274 bytes res/drawable-mdpi/quick_camera_dark.png | Bin 0 -> 326 bytes .../quick_camera_exit_fullscreen.png | Bin 0 -> 193 bytes res/drawable-mdpi/quick_camera_front.png | Bin 0 -> 362 bytes res/drawable-mdpi/quick_camera_fullscreen.png | Bin 0 -> 193 bytes res/drawable-mdpi/quick_camera_hide.png | Bin 0 -> 290 bytes res/drawable-mdpi/quick_camera_light.png | Bin 0 -> 330 bytes res/drawable-mdpi/quick_camera_rear.png | Bin 0 -> 310 bytes res/drawable-mdpi/quick_shutter_button.png | Bin 0 -> 915 bytes res/drawable-xhdpi/quick_camera_dark.png | Bin 0 -> 534 bytes .../quick_camera_exit_fullscreen.png | Bin 0 -> 231 bytes res/drawable-xhdpi/quick_camera_front.png | Bin 0 -> 644 bytes .../quick_camera_fullscreen.png | Bin 0 -> 234 bytes res/drawable-xhdpi/quick_camera_hide.png | Bin 0 -> 406 bytes res/drawable-xhdpi/quick_camera_light.png | Bin 0 -> 548 bytes res/drawable-xhdpi/quick_camera_rear.png | Bin 0 -> 560 bytes res/drawable-xhdpi/quick_shutter_button.png | Bin 0 -> 1728 bytes res/drawable-xxhdpi/quick_camera_dark.png | Bin 0 -> 781 bytes .../quick_camera_exit_fullscreen.png | Bin 0 -> 303 bytes res/drawable-xxhdpi/quick_camera_front.png | Bin 0 -> 983 bytes .../quick_camera_fullscreen.png | Bin 0 -> 305 bytes res/drawable-xxhdpi/quick_camera_hide.png | Bin 0 -> 539 bytes res/drawable-xxhdpi/quick_camera_light.png | Bin 0 -> 795 bytes res/drawable-xxhdpi/quick_camera_rear.png | Bin 0 -> 784 bytes res/drawable-xxhdpi/quick_shutter_button.png | Bin 0 -> 2533 bytes res/drawable/quick_camera_shutter_ring.xml | 27 + res/layout-land/quick_camera_controls.xml | 37 ++ res/layout/conversation_activity.xml | 16 + res/layout/quick_camera_controls.xml | 37 ++ res/values/attrs.xml | 1 + res/values/dimens.xml | 1 + res/values/strings.xml | 4 + res/values/themes.xml | 6 + .../securesms/ConversationActivity.java | 122 ++++- .../securesms/components/CameraView.java | 515 ++++++++++++++++++ .../components/QuickAttachmentDrawer.java | 503 +++++++++++++++++ .../securesms/components/QuickCamera.java | 185 +++++++ .../components/SurfacePreviewStrategy.java | 72 +++ .../components/TexturePreviewStrategy.java | 88 +++ .../securesms/components/ThumbnailView.java | 14 +- .../securesms/database/DraftDatabase.java | 18 +- .../securesms/mms/AttachmentManager.java | 17 +- .../securesms/mms/ImageSlide.java | 35 +- .../securesms/mms/PartAuthority.java | 8 +- src/org/thoughtcrime/securesms/mms/Slide.java | 4 + .../securesms/util/BitmapUtil.java | 2 +- 55 files changed, 1698 insertions(+), 19 deletions(-) create mode 100755 res/drawable-hdpi/quick_camera_dark.png create mode 100755 res/drawable-hdpi/quick_camera_exit_fullscreen.png create mode 100755 res/drawable-hdpi/quick_camera_front.png create mode 100755 res/drawable-hdpi/quick_camera_fullscreen.png create mode 100755 res/drawable-hdpi/quick_camera_hide.png create mode 100755 res/drawable-hdpi/quick_camera_light.png create mode 100755 res/drawable-hdpi/quick_camera_rear.png create mode 100755 res/drawable-hdpi/quick_shutter_button.png create mode 100755 res/drawable-mdpi/quick_camera_dark.png create mode 100755 res/drawable-mdpi/quick_camera_exit_fullscreen.png create mode 100755 res/drawable-mdpi/quick_camera_front.png create mode 100755 res/drawable-mdpi/quick_camera_fullscreen.png create mode 100755 res/drawable-mdpi/quick_camera_hide.png create mode 100755 res/drawable-mdpi/quick_camera_light.png create mode 100755 res/drawable-mdpi/quick_camera_rear.png create mode 100755 res/drawable-mdpi/quick_shutter_button.png create mode 100755 res/drawable-xhdpi/quick_camera_dark.png create mode 100755 res/drawable-xhdpi/quick_camera_exit_fullscreen.png create mode 100755 res/drawable-xhdpi/quick_camera_front.png create mode 100755 res/drawable-xhdpi/quick_camera_fullscreen.png create mode 100755 res/drawable-xhdpi/quick_camera_hide.png create mode 100755 res/drawable-xhdpi/quick_camera_light.png create mode 100755 res/drawable-xhdpi/quick_camera_rear.png create mode 100755 res/drawable-xhdpi/quick_shutter_button.png create mode 100755 res/drawable-xxhdpi/quick_camera_dark.png create mode 100755 res/drawable-xxhdpi/quick_camera_exit_fullscreen.png create mode 100755 res/drawable-xxhdpi/quick_camera_front.png create mode 100755 res/drawable-xxhdpi/quick_camera_fullscreen.png create mode 100755 res/drawable-xxhdpi/quick_camera_hide.png create mode 100755 res/drawable-xxhdpi/quick_camera_light.png create mode 100755 res/drawable-xxhdpi/quick_camera_rear.png create mode 100755 res/drawable-xxhdpi/quick_shutter_button.png create mode 100644 res/drawable/quick_camera_shutter_ring.xml create mode 100644 res/layout-land/quick_camera_controls.xml create mode 100644 res/layout/quick_camera_controls.xml create mode 100644 src/org/thoughtcrime/securesms/components/CameraView.java create mode 100644 src/org/thoughtcrime/securesms/components/QuickAttachmentDrawer.java create mode 100644 src/org/thoughtcrime/securesms/components/QuickCamera.java create mode 100644 src/org/thoughtcrime/securesms/components/SurfacePreviewStrategy.java create mode 100644 src/org/thoughtcrime/securesms/components/TexturePreviewStrategy.java diff --git a/AndroidManifest.xml b/AndroidManifest.xml index 71e173e18f..9f7889295f 100644 --- a/AndroidManifest.xml +++ b/AndroidManifest.xml @@ -33,6 +33,7 @@ + 004R> z004l5008;`004mK004C`008P>0026e000+ooVrmw00002VoOIv0RM-N%)bBt010qN zS#tmY3ljhU3ljkVnw%H_00BWsL_t(Y$K}>LZo)tmh2hf}QYB>~9zjBECIv;7fRMMs zLm-5Af$$DgQJP!WbLRga+kIH^o=XoqK15F0*t+&;v`3v*g|s zy5o&gdF9pwx*;GdFO>73G9EFe+2B!1LLRp9l2B|7#YyNdDFns%jOj6BZ4X7bIQzOd zbXeIy?>wf8Tw!4fMZZi7kC2clO@yctnL#c>JoCNZ+0jObt_c+5AX*0uz?KHWNgaC* zO>_%)r1c48n{Iv*t(u z1yej-977@wzrAKC)S$q_a^Qo}-sZ}rrXH9004R> z004l5008;`004mK004C`008P>0026e000+ooVrmw00002VoOIv0RM-N%)bBt010qN zS#tmY3ljhU3ljkVnw%H_00H<(L_t(o!|j+sOB+EH$A2bP@X%;;6UC;Np3FBWDve@6 zq$iQ;C8gM}VZK9qsr2BfBJHJk(L`_$^(Y>4Dju?-5pS&(4YWa?2NyMFXPcSnte5={ z%QCb3=EuHyZ}#mXC|gnX<&Ws7B?t0aJ);`+PE7S)7gi7(6~bpt5w1mSv=lzvtGGQE zoa?M4$eL$4cKG=Q}`=Ij7nfP8fS+lO)5Nd4SU5d1^Ve{3XcVsuq+>L zS)^IzkvrH+9=7!}%(;V&bc~F;gZ=0jsk?)H<+QE;n@xAHU%chwx_7}cCoV&Og9*x< zbIvy7eAYAW)lTX?W|F<}USYaxHbR~!WPzX5sM2r&OEbef(+uAkZ&2n7pbtuMN@pTU9+bQb-n(x z9N9hDkXEb?Cp$<2OJEwXrq!%xdayk!*f+ghKP$(^U(`o3sQb4dFNa2`?=q&Evq#j< zc)$zt^tHW8{7CoxrOFm9)#WHyr%J&QQ|Pb63A4hPB(*v29|ey}rQp6&=vCu_=RZE3 z`QBJ$FfLe~Nxg5gsOoABFZAEk#5L+Fy}eLtUoSwy+f_LDk`qi?%E*C!Jb7k;(uMgp aD7XYAdch@`>O$TC0000O>_%)r1c48n{Iv*t(u z1>-$k977@wzrF6r#~{Gta`9Wr9Uk+?DQk4KlpJUM(Nn*)UFNFZd$)rJ4(v;qw%%>u zU%59{*OvHInoT=bIi;XUwD@nO>_%)r1c48n{Iv*t(u z1^0NmIEF+VetZ2O?;!&L76LFU_BRNr7woeQIFfvQQv7P^yQhnq zx5So7M;&V66jt+@vEhF5@+-U4N?%62Jzyu!5WZ!_SF1aWDZ5kqEs}kDr8TcuWV`fh znm5nZV0f{3b}D;#(8IIW?mU!U)pt|IwQ|FG8PA^^CP~ke@vYowD!$;)jY-@AJYhwQ zU5D=#vK&qF?psumb8cb?OLd`1>lXe!jg@7=nO~NR0WCI2JoHbZn!)||f$m34=a&Kf O!QkoY=d#Wzp$P!l8FRY; literal 0 HcmV?d00001 diff --git a/res/drawable-hdpi/quick_camera_light.png b/res/drawable-hdpi/quick_camera_light.png new file mode 100755 index 0000000000000000000000000000000000000000..c26a846e37ec072e31e0096415ec5857ba5e4ca0 GIT binary patch literal 469 zcmV;`0V@89P)004R> z004l5008;`004mK004C`008P>0026e000+ooVrmw00002VoOIv0RM-N%)bBt010qN zS#tmY3ljhU3ljkVnw%H_00B)&L_t(Y$K}>NY63wR#_^|FO_h`henb#2lfoiL5ZNRA zuiyuYxVI4Z5P@wh6EG<~fErjNXv#^Gi0itWosErzw;PyWG4H(3jL>;X7X;n0z#P?r zTU+Rcml$I(JacUWT@jpQ42CC)X;2Z5FmZEIZSW{WAE9Aj2UC<2vKHb2e}CG$mf1#M-w61Hc*Iz zXdEyG!JXNT4}h&sE- z>IYSX!@EuUTL{r)d%!#(gll(?mXr{p#(;o;K2?OMoS3;^Mr2MoHX;??@(pb}GPG_& z0%VGjHB-9u@MA}830Vi*=3G&mKm12gsF3S93K<|k0wldT1B8K;Lb6AYF9SoB8UsT^3j@P1pisjL z28L1t28LG&3=CE?7#PG0=Ijcz0ZK3>dAqwX{BQ3+vmeOgEbxddW?W5D6sIEWXhfL3n$a{Dg)jc zYwKprWRG0Cnm0o1$`+o=3pFAu99Xq3s9eeN6?_@9dvl+2TU&I}rM{S(OV!?{pYO?8 z$~7S<)5GKBy!(|VzvX317RdW8xwd%!-dR87_cA7?#FnsK+WH^pat2RVKbLh*2~7aO C>2A>g literal 0 HcmV?d00001 diff --git a/res/drawable-hdpi/quick_shutter_button.png b/res/drawable-hdpi/quick_shutter_button.png new file mode 100755 index 0000000000000000000000000000000000000000..9817b7e7e29c3dcf1c3410696d2ebb90ce6b2195 GIT binary patch literal 1274 zcmV004R> z004l5008;`004mK004C`008P>0026e000+ooVrmw00002VoOIv0RM-N%)bBt010qN zS#tmY3ljhU3ljkVnw%H_00eSLL_t(&-tC%wXjWAiz^BtpbL3Z=<%+Xn5^E}VFdE{MLS6&V%2Xuu1^`YZN5khnnC$lY8O(2Js90q=QXo>g59+lyWv{5K-?SI6R1#X~P z#nQJ_%2p*E1`ToS(lFI%UB#~e9F&bEF`!4Box5MQ#K!@6I{83xrDwe7i)J-@oMB^K zgjuxQ4z$%{+QM+7c^CIO|7nypdy5^Y!E3xh-T5D=f$Hr*hZXBakrGJ1?>E_j&MM4n z)P1x}33SE|lu|V?QwgN=9ih_>q?11+SoU2rmD`6ENW1)(sfVqmXG8Xn5~ww}C0ef{ z=i2X`)ce%0>PB@Rz2$AI&JMIq4b;g5Cq^-Mn!6F9QNGo;?%K@i2n+r<&aI=KD*3g* z)6$CMv#@gjcq}wiWcMNx0~*ZV034uyAeR;<=etJwNdUbn4_hQAHwG=|{d0TK|-!y}l3B?1`6ba7%hnhH}g@pjR7> z$$^?l+H_211fcY^Emy3?nJsUQlCV0V#5pM$`a3x9a4>G{7U3S1B_UEu&nGX7MU_); zQ@0$zj5tY8pZp@5!!)mVaG#{T4gs&nOAGttQ32EN}NjVNp%!Ya01nVWbQyqDm@qu zOiu2YyqJoNJ!q9TNZ#2!6P?_r7KOAqT=(59O=~G=WkLc z&(p;*#NzbP%h6uUh7xQS?Cp3rb8&j??uZLhI4aBW&OxFuaH&YSq6pWzMQ@dC_K6&4 zoV!Hh$5YJ@a|Mbx3vYJZZ&r`LJoP|x;=Q}|?C)fz7HxXvxRdX=+?8kS8_X_eoXO2P zuy}%xugXI0#;pa9dEcZaTJxo?J6C$cQ|$2qL)jdqZ1033$r;|?=5G!^StOIwl2g7e zo?Cxu^4k`b(~~~L6c3aRC*el28Q-Sxey;J17Hm-`3VuX#lsR6lWG Q9ndEXp00i_>zopr0HvXL*#H0l literal 0 HcmV?d00001 diff --git a/res/drawable-mdpi/quick_camera_exit_fullscreen.png b/res/drawable-mdpi/quick_camera_exit_fullscreen.png new file mode 100755 index 0000000000000000000000000000000000000000..2e88a87737bb0aa8823b8bd48395b98755fe893b GIT binary patch literal 193 zcmeAS@N?(olHy`uVBq!ia0vp^Dj>|k0wldT1B8K;Lb6AYF9SoB8UsT^3j@P1pisjL z28L1t28LG&3=CE?7#PG0=Ijcz0ZK3>dAqwX{BQ3+vmeOgEbxddW?|k0wldT1B8K;Lb6AYF9SoB8UsT^3j@P1pisjL z28L1t28LG&3=CE?7#PG0=Ijcz0ZK3>dAqwX{BQ3+vmeOgEbxddW?{(h%`L(`zjD7Zrd92!R@H)^?3`HPOjiA6x3gM&yl4tD{xoG zmi^IfVY9=79gj{o{pk@W_dYVB)ilN3E%eEog6`*CKJ6l&ODwKVXgArDb%OnXzHP+r z=f4+-338?@F9#_YbZu1zOq+bqx78xt4I-tu%# zU=xcJli6cb`-5>x?TrUk>$3oxXUx&Ns%r+-v())=S4CE&zSY;OXk;vd$@? F2>_kGic$ao literal 0 HcmV?d00001 diff --git a/res/drawable-mdpi/quick_camera_fullscreen.png b/res/drawable-mdpi/quick_camera_fullscreen.png new file mode 100755 index 0000000000000000000000000000000000000000..382fe09edca9006bbab6628fb289a3df26c35aa6 GIT binary patch literal 193 zcmeAS@N?(olHy`uVBq!ia0vp^Dj>|k0wldT1B8K;Lb6AYF9SoB8UsT^3j@P1pisjL z28L1t28LG&3=CE?7#PG0=Ijcz0ZK3>dAqwX{BQ3+vmeOgEbxddW?b7;xN;aZ`HQ*5la2!t~_-3dbu387Av_@7}SWwdrNX jg$+7c?w@aU7;!N4zjI+c#lv9%G=#y^)z4*}Q$iB}#y>XW literal 0 HcmV?d00001 diff --git a/res/drawable-mdpi/quick_camera_hide.png b/res/drawable-mdpi/quick_camera_hide.png new file mode 100755 index 0000000000000000000000000000000000000000..6c24766600ea8302621bf9498cbaa430c114d2d7 GIT binary patch literal 290 zcmeAS@N?(olHy`uVBq!ia0vp^Dj>|k0wldT1B8K;Lb6AYF9SoB8UsT^3j@P1pisjL z28L1t28LG&3=CE?7#PG0=Ijcz0ZK3>dAqwX{BQ3+vmeOgEbxddW?dVGc}orp@3rcbP<+)=8Sgns_;-%b&Iu~2`>(DrW8m3Qzoe_; zK~Rm+Rr9j^Vus4n~fy7y);+mM_usi+mghMy i*8kUKie9K+;JUOr?oOO-#(SVE89ZJ6T-G@yGywqWEoM6a literal 0 HcmV?d00001 diff --git a/res/drawable-mdpi/quick_camera_light.png b/res/drawable-mdpi/quick_camera_light.png new file mode 100755 index 0000000000000000000000000000000000000000..2a906080fd6df6db6c1aca7c27dbdf8f6b3ecf8b GIT binary patch literal 330 zcmeAS@N?(olHy`uVBq!ia0vp^5+KaM0wlfaz7_*1g=CK)Uj~LMH3o);76yi2K%s^g z3=E|P3=FRl7#OT(FffQ0%-I!a1C(G&@^*J&_}|`tWO=~G=WkKx z$kW9!#NzbP%Xc{s8Hlt!6khMOd_uz(=PPAQnt2L48b5S7PgTlO6k%DOVcl|kcG6mV zUl+%Hs}Fo{nJ|arQ{xL?3jyrmfwEWp(xF+ z+O+i5tKgRA*HMlJ5jt#%&p#Jb2RS)yI`~fcK(a~H`l`Flcar0>#q57As%H;>Y@%Xx U<@@EEK;JNUy85}Sb4q9e0P|k0wldT1B8K;Lb6AYF9SoB8UsT^3j@P1pisjL z28L1t28LG&3=CE?7#PG0=Ijcz0ZK3>dAqwX{BQ3+vmeOgEbxddW?W5D6sIEWXhfL3n$a{Dg)jc zYwKprWRG0Cnm0o1$`+o=3pFAu99Xq3s9eeN6?_@9dvl+2TU&I}rM{S(OV!?{pYO?8 z$~7S<)5GKBy!(|VzvX317RdW8xwd%!-dR87_cA7?#FnsK+WH^pat2RVKbLh*2~7aO C>2A>g literal 0 HcmV?d00001 diff --git a/res/drawable-mdpi/quick_shutter_button.png b/res/drawable-mdpi/quick_shutter_button.png new file mode 100755 index 0000000000000000000000000000000000000000..90022770feb3edbf34dccb77c5eefdd0f5e982f0 GIT binary patch literal 915 zcmV;E18n?>P)004R> z004l5008;`004mK004C`008P>0026e000+ooVrmw00002VoOIv0RM-N%)bBt010qN zS#tmY3ljhU3ljkVnw%H_00Rq2L_t(o!|j+|Xw6|5z@P1$9fzdGW@|fH$OS?|>_W-~ zrAW+*l9C$~Qa(nM#Zt7ijghYlZfLd(+lAyK%>@@O?4!j(88LPaGqaClKNsike7zs% zY-dXG{BO?x|32^Yd*A2%c%J77@@F6U=KyJ>k3PV~GLF$eJG}t(&_*43qXU>mIi09- z4?&nrX(EuVF^5Y8(Mgaw2*O36p9&_91hAO^COL;7%;%@`-bvAL0oyT)pGgS9qnNK% zxQ7GCr^g7`g&-6w-|O)v18^}DK{#SC--;VyEN?Vz4eBgZKow265WHFwu)>Nzn+UK0 zfSpmlW92r2;N!c|fyFjJ7M}s=ayH(>xX%5|KoG85w!kN{%z(3DwMqnGUU(yhiCff2x&aUF8%oQfRiz5cM*hazJ$MQLlCx*Sju#ObUNbH z)*uLbowsMCBaG*L5`d1#of`oZDrztBAY{-6z|vIXL5XH0`w@gyz>U-cPOS#eO%8%k z!xW|KRQfDVs#5{YTE!~}LWXv9Wfnk-3h-+chgfKwzHPw+Dqz5%`q<)O^Og;&0Q2eG zWJv*@BoF8|0^Tyth*)A6m|q3Fuq;`r*0={jxTfvVtODvSfL;m|^V6w85c0IK?^f!W zT^+CzK{%`d9849kJSu#8d945zsQ?!rlDNh~3-02%^S&EFC{nc2bTc@W1R%6!cSIei zQ2crjqjg*#4+5KBEJ_nF004R> z004l5008;`004mK004C`008P>0026e000+ooVrmw00002VoOIv0RM-N%)bBt010qN zS#tmY3ljhU3ljkVnw%H_00E9kL_t(o!|j*NN&- zyFjRwSJ1{y7a@w05dK_G2zmh_Dy5V?Ejog-#QC9u|4dsxr9TI7ilCQO_HZI99(?xAl0u-Ny-YiJbE+wbM~jWhS_`+&KDaC)2NkH4`;z!88T YKN)pv1mZE@z5oCK07*qoM6N<$f-VW$-~a#s literal 0 HcmV?d00001 diff --git a/res/drawable-xhdpi/quick_camera_exit_fullscreen.png b/res/drawable-xhdpi/quick_camera_exit_fullscreen.png new file mode 100755 index 0000000000000000000000000000000000000000..fbb53e5c6e2d1f85b3b2cb4da8bd932c61f658b9 GIT binary patch literal 231 zcmeAS@N?(olHy`uVBq!ia0vp^9w5xY0wn)GsXhaw6p}rHd>I(3)EF2VS{N990fib~ zFff!FFfhDIU|_JC!N4G1FlSew4N!t9$=lt9;eUJonf*W>XMsm#F#`j)FbFd;%$g$s z6pZ(DaSX}0_x8FWAA004R> z004l5008;`004mK004C`008P>0026e000+ooVrmw00002VoOIv0RM-N%)bBt010qN zS#tmY3ljhU3ljkVnw%H_00I0-L_t(&-tF1DF9cB($MNra?0R+@kBZK-kfrhmh*qMo zi9+I)cyu~hwZf|q8U=|)i(Y3}A&8ESXjCNLMk7Jo-JO|x=I-F0a%M95By;cl&YX!j zAd>%vG*P%S&OAyX%GbEyZ4k`m(p924hB2Qq)ID8pgYQ4rqzE1shg9u;;12zx_z5qIbR@EgL_10{~mulR84|j;u&x4 zkYbxnu1$a%NYY2Ki^ufL7PDLg35qaHl9;DK)eLhu!GH=_XTZmTUT2WEAV8z6_}pVd ztOWr&qtPem^xLPB80eKkpP(0tf&fXC1zC^I(3)EF2VS{N990fib~ zFff!FFfhDIU|_JC!N4G1FlSew4N!t9$=lt9;eUJonf*W>XMsm#F#`j)FbFd;%$g$s z6io7TaSX}0_xAcpP6h=Y7Kh9A7jHE@IIJNz`TwCBC$qrQk-`oTVC|@!tMa^|;UC-4 zCwAcqK(K&Sp;wRt2wp6`e{U;06BCn_>=j>ikQ(O99*C~*%~B#P9gM24zW^P_z~JfX K=d#Wzp$PzHa7E?- literal 0 HcmV?d00001 diff --git a/res/drawable-xhdpi/quick_camera_hide.png b/res/drawable-xhdpi/quick_camera_hide.png new file mode 100755 index 0000000000000000000000000000000000000000..f00aa8bd4e394bdba5a8002d97bdcbd5220c8640 GIT binary patch literal 406 zcmeAS@N?(olHy`uVBq!ia0vp^9w5xY0wn)GsXhaw6p}rHd>I(3)EF2VS{N990fib~ zFff!FFfhDIU|_JC!N4G1FlSew4N!t9$=lt9;eUJonf*W>XMsm#F#`j)FbFd;%$g&? zz`)4o>EalYaqsO-Pp(4_0<0Ihc3c-;(yZQFWnkM_!Pq{#CcJUR#pTS}6+6!iOi#l7c6!56TK9+i$;koi?;AETSZxqCj?w;~Q>*U2)%RlcW z&-!aVyt?wluM=xj%#Sl&nk+Ogu8((#a;rty1sly18=IGTrcQax*gM&%pk_g0kXWC% ziOZ=&ADe$I(V4@M(e>on5r^a@4C-7`O05=!0n004R> z004l5008;`004mK004C`008P>0026e000+ooVrmw00002VoOIv0RM-N%)bBt010qN zS#tmY3ljhU3ljkVnw%H_00EpyL_t(o!|j*NN&-|wgv3-F$17@XU_((%j-;gh2n*s{{jj;Fq&&PuO{>;L;(s6t<8UH z7$5?`gEM=Dq8kQ`oC3ySfO1^R2AI;Oghz%99wjcBx&+*?8v4T5=(quVa$?*@O+M`b zfqj~78Z_7<{Rd$QxY25gI#2%70Z0D2jtyX{vrlmm(pq}mI&bj-ZLQTK)dQ_w#Rrsh z_D_*&pA`h55+C3p2;0U+ZXyV|_<+ouGp&XoWS1E56Va9tP(%>&_Dvo{s*k$K)%bu* ztsO=HrnvR>L;8QhDf`dwY=>Rbe`AGBYSbv|>;>V}#kg)7 z$Mun0000%5 literal 0 HcmV?d00001 diff --git a/res/drawable-xhdpi/quick_camera_rear.png b/res/drawable-xhdpi/quick_camera_rear.png new file mode 100755 index 0000000000000000000000000000000000000000..d27bf85e7992c643234d4007c04bfc6ec543ce7b GIT binary patch literal 560 zcmeAS@N?(olHy`uVBq!ia0vp^9w5xY0wn)GsXhaw6p}rHd>I(3)EF2VS{N990fib~ zFff!FFfhDIU|_JC!N4G1FlSew4N!t9$=lt9;eUJonf*W>XMsm#F#`j)FbFd;%$g&? zz`(e|)5S3)){_b_|=Gl`z&!*2TKELxM@01U{3Z6n=F1Wo7R5@>V zTjXyZ&yS{ECk+~W?iid~EU9r~rv&?hSr+nY3nH&g=oMM5w!pZp#nJMS+Jf-KLEpN} zqkJ8fYQ=3h$hh4^AgxQq@xD6KSC+fR$6{}mw(!jT=8*5QzmOqm&ZP|QEk~N%%i5Rd z2DEthztK3p&Ef34#S5C#w>!MubA!os=Z6!01xegn&g^k7n=Bcq)7okHcE3ko!#)qLU*h}U w^mpCbnfhN}dU5jN!y6yIy76r>pY#@gb*DRw_x7K<0gOlnPgg&ebxsLQ0BX1DF#rGn literal 0 HcmV?d00001 diff --git a/res/drawable-xhdpi/quick_shutter_button.png b/res/drawable-xhdpi/quick_shutter_button.png new file mode 100755 index 0000000000000000000000000000000000000000..9324ec8cb3f2f3ec94c5f57e26ff9ed53a50c72c GIT binary patch literal 1728 zcmV;x20!_UP)004R> z004l5008;`004mK004C`008P>0026e000+ooVrmw00002VoOIv0RM-N%)bBt010qN zS#tmY3ljhU3ljkVnw%H_00uZoL_t(|+U=WbP*qhF$3a2Fgv2z;B+Iggz07JRi)I`$ zf+R^Zikj)+SdCby1v)((#xFTNoYKlN38o^{#xcp7l#<4nKBU<+^6G|&uM|We7y*&T zzb{B@bI&<@uXQf>YIE29#Mx`Fy?&f?_TFc$wL=hce*Z#(06~BtKoH=64G@Z<=NG_u zq+&S=P>LEfqZGjB4W->fGDIPABUiq^m7ehC}v_aI$$QHO5ZyI4G@Ja zqyPF@>BViNcN%~)JcnU{0f@vaXarC4NdMtD*mw0P79z~w0O>diuCyYSSXi#Kd642i zfC(suM3ySERhw7)W?bSAfG5x*a=%)6)(b3k8jw1;01;RZsZiIZq1RULUEce^0~pPI zZO=-vvO4c})ZK|ugZBu%D006GHxL_7YxT=9ey{+-P%Z#?pI8`)V+K8HF=4P?;u&oB z8!?*nUuoE@7ID4;h(RHSkiUzV056cf6LH$OUxmrWPw##>b^&;nT)7&Z4EM{G4fPfl z`cL{9Ne}P=0H7Whl51}F zFajqm4K-s7(aLcc@@}G+0=IG;!+8Liwx&K-J}d3Mh&L!p;a_ks3poIxsJ1oKgIkE^ zqn0{t%0A|0_(D9&BdGznPqV;N-JdNqa!C8d_y@j`d(8p9)R=mh=-!H+0j-A+N!r)L zSMr%DK&0dB0sse;S8AY(kCC=1UU+h8wR(}Q03I?h_L}mLwAjYp0ur5GX8>>t<4BJz z@`_IlJV3S44gEryC_Q~wa|53r7;7Boywhu`YEfcu0Rniy_@(+)nVG)_kZm;Rt1e#T zBt5_~hPfw6zw1zG7-x>a0Wm*Km4``@4-hRfO2A10CENdiicpY@d)<^zG5q`FJzERuEiUFM8yOiU_<}5ESy~3D4T=)4-jt?u#H2z zY_;*P`=R(v2^5bdZ7U1_lFa}v&<3_RdzYIW5>xAxc=%zBtrn|U&iOfYFKZoBgKD5S zU1KZXJT{u-BlnwdktR8-28v4^txe~I*K2$NkZF(}pG$P6I(&_k^Aa43ec*nDl2I$N zt%;x^+fQw+&F7|=8e9V;8fF|`Cwj3q^q(EWNud)2!*%Wfr5 zyhCaGN?t1wM~Xc-LT8K{4P$Umkv@}2UjKx$;b8BD(gg1BRqDHbH0*Uu2^6pCzdqA9 z1y3A_C%sb{{Z=ZqEhoL+C08Y9=CVH?4i{+*?3>njb34da2O*&OGbO4y`d@^LATv0HguFMH<@X^7!GkunTzSf7{D{c; zMyK*V-yK1T#U_hNl2~Sh!CSWCQvV$SN=B7!Q1No37|*~0o>ZA9@)%DTp6{=iQ^UHO zn9d)^BKcV|cY&&KJcB<51lI3iIqyM+T|J`z&QeZMBF(=Wy55QcBv=>n1@bhjNvyvL zYmwsa|2}vC(U^`*e2DERLmk@DgKo5=4wd);xyVM6QaBqt(H#T`0t5kq06_qkzkdPs W#@^|kqP&;@0000WdP)004R> z004l5008;`004mK004C`008P>0026e000+ooVrmw00002VoOIv0RM-N%)bBt010qN zS#tmY3ljhU3ljkVnw%H_00M`hft2b> zSEV3Gx9zH6OyWYbk*SEEAe(#yA&V{){SZE&J`nl|suHxJLh2*!zpKVO(V4k1xp&g` zo>}HBewq6?=iaffdh4+a$bbyU!eSnonAZh*k6irXoet0&8py^quT_Iy@q>1v&P$b` z7u0AszVTcY=qbnCC%*Ee6Oc`gP0mpr7wj;L69r1Ki_X|56$Y|3a{%_RgF!jsh(a)E zGZxTxFz7rMP(2tFR~V2s&?T#6N#kN;ezXZ^vN*k1}OE#{G2(i)q!M6<>ZoA362?US)wk zUrt3O=*%~jpYi3+tV2e8)4Qe)1N)9)M6fM=4aG^+%^WxKWIrcpqovvECnhF zL;Qb$dTz*WCiS=!XjJv2o)Hd|)kw~fuVkE(*CLoP=D!3<;Ub>Z*N>0U>*sgMhaqat8UXvO%k~bc@B7OROX2TDrzhs$1A> zOOyJLF^ZHZQDjtDS#o8yD^32Cbd&#qRjC;|;dM00000 LNkvXXu0mjf*Bf09 literal 0 HcmV?d00001 diff --git a/res/drawable-xxhdpi/quick_camera_exit_fullscreen.png b/res/drawable-xxhdpi/quick_camera_exit_fullscreen.png new file mode 100755 index 0000000000000000000000000000000000000000..d041734c139bf5c591799e4a5ad32f1bf015b474 GIT binary patch literal 303 zcmeAS@N?(olHy`uVBq!ia0vp^IUvlz0wh)Q=eq$Zg=CK)Uj~LMH3o);76yi2K%s^g z3=E|P3=FRl7#OT(FffQ0%-I!a1C(G&@^*J&_}|`tWO>_%)r1c48n{Iv*t(u z1($oeIEGZ*dV9-}>wp3ei^KLW|Ks!I0|XYf1yvnxv2=_1;^QK+13MZHN$p$w6pokEi10cB@v39y|a9+oUecw91O_ rPgu*r1_RsJ&!q98S|)L$zlho8F4t|D*E(l`PG<0Q^>bP0l+XkKeKJqt literal 0 HcmV?d00001 diff --git a/res/drawable-xxhdpi/quick_camera_front.png b/res/drawable-xxhdpi/quick_camera_front.png new file mode 100755 index 0000000000000000000000000000000000000000..9e35ad5c4afe1b48126dfaa2e480d27df928f46a GIT binary patch literal 983 zcmV;|11S87P)004R> z004l5008;`004mK004C`008P>0026e000+ooVrmw00002VoOIv0RM-N%)bBt010qN zS#tmY3ljhU3ljkVnw%H_00U1+L_t(|+U?xWOO!zv!13?9sFkcr1hU0KA|k2Or5~c3 zSVE>rouwkk`U4_@2nu(*N9UHrg9%+i3{6r3J*=q&bucQ+EL@_Hkg_s6G#!cv+;yGZ zcV_n8=9$~R^S(QueRtk>=Gl4I5u_CX&eBRXB{--F!6%+_k1jr>xxaMriOXVH=!$RR zlJLp5Ql3>H`i1W36Zz_4-NHoNlx?RY*~i)#z)ZAoU#7Y&Y>K^xU=!4-gH`Ynb5YLR z`YZdS4qcDQ2+35Ig9VMkg6d!et6quVC@PUv@3m1K%tK*e7G_}fQQaBvp7O(li z3bXXkq63zv{2glO{%1x|PB|x;szKj9WXcd7C&tUC$o zH?7O7ux4u4++N3FZ^DkdP$Mg0sps1vZ^D8u)W}Mhz+k9^#Z%Up_a-dnLXE71^}0|a zD`5{(oRJtKULARK@Hy$WB|5x2q?+LvOG#Kqnep=IevExQOz_3#NI*Td%)W)#ifHE)p>;0y3(!tGKZ()9?IiPnEa+ofxlWuY z`z6;f`e-0ZoNEcruyNQ1uJVd=6sLWJV$L&5IKf&HgRp9zaD~E*k5fn|kJ*teum&dF zY0RGwY0`}haptf}1}Jj%0#wW(73N{l4Ej~FDB*_b%l$4ImD~xNSTuXa)csykZx&Xn z3>Glm$5e%rt1vrlu`mm>FblIV3$ri_voH%&30pDR*6-?Iaig$#b+B=xuyJ*;Stbp# z=G4JR@PMJN2&=s+4yj#Ko;0G;t9hg!$rVpl>CVR`xEW#=Aa(k~)^yWM|WhWorN#CaMWqM1m)b#fp#VG%}i5f;hK zuVN%OFCGznmwP+%uw%vlYIGmAGiaOhuvsdbSM*3G_!kP{H#_cw?lb@Z002ovPDHLk FV1h7+$58+P literal 0 HcmV?d00001 diff --git a/res/drawable-xxhdpi/quick_camera_fullscreen.png b/res/drawable-xxhdpi/quick_camera_fullscreen.png new file mode 100755 index 0000000000000000000000000000000000000000..ce96d83e362f8f2bbc99a941f577ccf04873f829 GIT binary patch literal 305 zcmeAS@N?(olHy`uVBq!ia0vp^IUvlz0wh)Q=eq$Zg=CK)Uj~LMH3o);76yi2K%s^g z3=E|P3=FRl7#OT(FffQ0%-I!a1C(G&@^*J&_}|`tWO>_%)r1c48n{Iv*t(u z1y_2yIEGZ*dV4F7>wp3W!v&e$|EJz%{Wfv3Vc7ZiE95wnBrLD>BsVmog0O>_%)r1c48n{Iv*t)J zFfdN`ba4!+xb^m?wcp_Yf!2qQxxO(*H!evw++rhhX~UeBX=@KyX)II_+}I&}+&Epw z^}oloobZ2ng|*LpKCk_}hE2jC;Xnf;GaC<1#eTD~bG?i=8%duH&L|7ZW4E1Bw%FWU+geJ(Njvdr zy4>*$R~`2m#U0DErl~J|wcIpRC;ZPf_h8Y})3y1QM@F1GP$F^m$S1Xf$1}~QSwFJ# zG2Zm&X083%Q>!Gr-YlOPX?l6ue-rD~Sv^;lif(xIEV+J*P}tK4@27_ySv5Cf+w9kG k5|*;!4k$<%o_ft5<@bv5*0+UMfN{p)>FVdQ&MBb@0B&;DnE(I) literal 0 HcmV?d00001 diff --git a/res/drawable-xxhdpi/quick_camera_light.png b/res/drawable-xxhdpi/quick_camera_light.png new file mode 100755 index 0000000000000000000000000000000000000000..62d83b253db2a6a8b087097a760a81fbf7d93394 GIT binary patch literal 795 zcmV+$1LXXPP)004R> z004l5008;`004mK004C`008P>0026e000+ooVrmw00002VoOIv0RM-N%)bBt010qN zS#tmY3ljhU3ljkVnw%H_00NUqL_t(&-tF1TN*hre$MIRT8FbrB#AZ`krK>`hft2b> zSEW#pZrfGCn8bzOY-B3p6J(P|5VGh((TDH?^@7kRs7la=3aOX0r>n*@qmwx?IWuW{ zI7@$!k8>{n|D3U~`fFGQWIzUFVF5y65EbaX5=ZchcTs>|(^Lcru6U&z^pYRS9D$(0 z3!R|n)H~t`1mAe33-pAejyVFsR~~f(N|0xRvpfBCC*z!LX0gLSX?CvqXRYhpj0Sx%AHeJpeApWYxk5QsVk8G>DWx-QlWy>snX zF|8Z4?8y)EkrU6~Ys@p?$y9ZMPCZNcDPL|)9Wd%y-gSK-*Tbm==8hSWl8d@P7t*;i z81QudjD4vWOokqncLc3SNjLPrE=lP%J)oSlvra-mN8D@W3wl7AR&G*hGmp3OSv?@9 zg9-CaT1pS-`p~N=fy&Yp{~w^fo3iUgJ)r~|)4ix?q!-FsDCbbx_C-CQRVg_i3YwGB z>$*xuvXva*plx~S3DY>Mt+SeJ9(j)8#JRO-c%y*p)TGiJr zmVB33hs^o9#!tFi*qpCPz0Wu$%9JTFChaV>vf7g-e@eN@f6LEkUW2BUI0Z#cPhJ$O zp5=XW3@fdjp1w-gS(MHtc{nU7>?|#p4VSD@AWI4xn-p1!tcMj32A%iYrRR1m zpv_>=Y%HLBFvw;va?a;=pB60A>_*Ia81{L}rpOkJ2$u3D`5PBp=DWQC8IS=PkOBSm Zpx@9fMcR%eOgjJo002ovPDHLkV1ic0Tq6Jg literal 0 HcmV?d00001 diff --git a/res/drawable-xxhdpi/quick_camera_rear.png b/res/drawable-xxhdpi/quick_camera_rear.png new file mode 100755 index 0000000000000000000000000000000000000000..d9fd33dd377bd50d0e933fbcbddf2354dbcca513 GIT binary patch literal 784 zcmeAS@N?(olHy`uVBq!ia0vp^IUvlz0wh)Q=eq$Zg=CK)Uj~LMH3o);76yi2K%s^g z3=E|P3=FRl7#OT(FffQ0%-I!a1C(G&@^*J&_}|`tWO>_%)r1c48n{Iv*t(u zRdjf|IEGZ*dV9w)Ti8+Lz{me>W?Wpix+_+6ERB1#a}itMtEG-!;(H6>^Z#$SM!h(~qhE8WHgUC&=E1n)C_b~3)nAgDdiVS5RnGmzGb`|`=eOqG z)rXEfO?WzI`zf)_GKyuHj&K#()r=TlOSz@TxYHhb5&VQU!HuCxU{<#WFpbQM2u6{1-oD!M004R> z004l5008;`004mK004C`008P>0026e000+ooVrmw00002VoOIv0RM-N%)bBt010qN zS#tmY3ljhU3ljkVnw%H_00~`5L_t(|+U=cbY*j@R$6rg?WM4{IBcLd&KxIk6RDrMx zh$2XeC|e+ahKMXCrbv(gA`wIp!=hF}RsjiEC`$_!P{6PW0-_WIDNAh&6iT%K2Gs91tO$c=&putFI$CHb2 zp`ZE|HVw(>=`28{u>>Y$8PV4|i)}yPIrj1Z+F%6F4TK3jJtxsV4pp53Xs{7LlZi#( zh?Isu(8wus&|Y>tzoV4U%V=pW*U;V>fZAvsMJee^9C@!P=*d72XRKmhvEtcA^e|6R zSEddkK0q~bgAGqMnhN?GBTHFdruwq4ilYUBgulJR2Iv!_$5_n+Z-kwI8Y2a-6T6|a zEO@S?ilDm}gVx4&0Sd)A0Dq&r@SlDxfW`@WOX3uR-XxVHh&-MUB;4z87V+O5+8^UM zu>+pK^wW(;hAz8O8wRp&c)vL_gD>*kX>~$x<)xev_7NJU`E0SoHZvqGH&HzI-bA|sG?M~tBzI051@FKj?*~f zCZvr4)@7GGpkqv3FJ=c6%o>fBFUREpU1I8*x>VII9oYe0ln2BYyR+NC4tFIppmcda zoEPT<4a7C_+U@Vk1LE}SqD+IjxB1Nw~}&;c3mQj29N)7TEn1KJIK8Ojc*2Gf3R zhdiKF1^`h3FuG+T%gAEn0hzg0n8gmLWC3G(%p2G4=Olb#VYxaK}S=7U?W1ZxshXOZ*rEO5mt6pf-UIsCAK37iA3S zq=+ZQSB}O&0kp@GF+k1TVvRkiDNL4u7L5T7lrD;gr~?XPzBaQWqlml1B+JGCd3$h{ zZ(k*U-`#eb@ld{LQ@z$6Ksdh3nyX^<{G>Z_86rHsFK03NNdyO zx01$yAp9g{4=bx1%(B!rJd}sEKN~7#3}`PAtN59Iv`@HgfTj~qgMTYLWeoV*a-U5& z0_yhKf`^Lo7_N9#QQKmSQXEgjVQ*UiMJa~`Q^tUIEw${#1IUBJ#_{ac3M?N=xQLQO_?K#zVy_%6KDQCc@(S`)$>gGqJ!vqkyPr*YBk?PIm(gH2^0CFFIotD|&zDFJo0S@$4O8#}h|< z4UPbm@9O0JIih?qMl-`n<$fnLzc*MVEc9~aHIUhPSG2ChSWm_N@Brl>X2mQmlt0)! z)_qTeiO*uruQ0NZcN*nUsPjUs!g2_GOnnZs&X?`5;hy_0<&zrA0w`S$xEqLo0;0GG vTtF@$7my3c1>^#90l9$O;sSC387Th(#xynd7h!y200000NkvXXu0mjfpZ|TW literal 0 HcmV?d00001 diff --git a/res/drawable/quick_camera_shutter_ring.xml b/res/drawable/quick_camera_shutter_ring.xml new file mode 100644 index 0000000000..33690326ca --- /dev/null +++ b/res/drawable/quick_camera_shutter_ring.xml @@ -0,0 +1,27 @@ + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/res/layout-land/quick_camera_controls.xml b/res/layout-land/quick_camera_controls.xml new file mode 100644 index 0000000000..558d6b77f9 --- /dev/null +++ b/res/layout-land/quick_camera_controls.xml @@ -0,0 +1,37 @@ + + + + + + \ No newline at end of file diff --git a/res/layout/conversation_activity.xml b/res/layout/conversation_activity.xml index a83d849113..c9421f4c62 100644 --- a/res/layout/conversation_activity.xml +++ b/res/layout/conversation_activity.xml @@ -10,6 +10,12 @@ android:background="?conversation_background" android:orientation="vertical"> + + + + + + diff --git a/res/layout/quick_camera_controls.xml b/res/layout/quick_camera_controls.xml new file mode 100644 index 0000000000..1e6a697589 --- /dev/null +++ b/res/layout/quick_camera_controls.xml @@ -0,0 +1,37 @@ + + + + + + \ No newline at end of file diff --git a/res/values/attrs.xml b/res/values/attrs.xml index 6d25609aa4..9b8142d0c1 100644 --- a/res/values/attrs.xml +++ b/res/values/attrs.xml @@ -52,6 +52,7 @@ + diff --git a/res/values/dimens.xml b/res/values/dimens.xml index 56b0af4c42..2fdaa5cf2e 100644 --- a/res/values/dimens.xml +++ b/res/values/dimens.xml @@ -28,4 +28,5 @@ 32dp 48dp + 250dp diff --git a/res/values/strings.xml b/res/values/strings.xml index a28a9126dc..0df6e3941e 100644 --- a/res/values/strings.xml +++ b/res/values/strings.xml @@ -521,6 +521,7 @@ Message composition Toggle emoji keyboard Attachment Thumbnail + Toggle attachment drawer Media message downloading @@ -981,6 +982,9 @@ Transport icon + + Camera unavailable + diff --git a/res/values/themes.xml b/res/values/themes.xml index 22cd2496b2..a460231e13 100644 --- a/res/values/themes.xml +++ b/res/values/themes.xml @@ -40,6 +40,7 @@ @drawable/ic_arrow_forward_dark @drawable/lockscreen_watermark_dark @color/black + @color/black