From 5eb04328d32b1e907e2e607eb39226484b5d3642 Mon Sep 17 00:00:00 2001 From: Moxie Marlinspike Date: Sun, 17 Feb 2013 11:42:30 -0800 Subject: [PATCH] Improve passphrase and onboarding UI. Abstract out routing. 1) Update the create, prompt, and change passphrase activities. They are no longer dialog themed, and should look a little less ugly. 2) Update the import DB activity to be less ugly and more robust. 3) Abstract all of the state handling stuff out of ConversationListActivity. This is now handled by RoutingActivity, which all launch intents move through. --- AndroidManifest.xml | 28 +- res/drawable-hdpi/import_database.png | Bin 0 -> 1955 bytes res/drawable-hdpi/padlock_prompt.png | Bin 0 -> 4481 bytes res/drawable-mdpi/import_database.png | Bin 0 -> 1489 bytes res/drawable-mdpi/padlock_prompt.png | Bin 0 -> 2098 bytes res/drawable-xhdpi/import_database.png | Bin 0 -> 1218 bytes res/drawable-xhdpi/padlock_prompt.png | Bin 0 -> 3942 bytes res/drawable/background_pattern.png | Bin 0 -> 291 bytes res/drawable/background_pattern_repeat.xml | 3 + res/layout/change_passphrase_activity.xml | 143 +++++------ res/layout/create_passphrase_activity.xml | 141 ++++++----- res/layout/database_migration_activity.xml | 126 +++++++++ res/layout/prompt_passphrase_activity.xml | 89 ++++--- res/values/strings.xml | 36 ++- res/values/styles.xml | 48 ++++ .../ApplicationMigrationManager.java | 121 --------- .../ApplicationPreferencesActivity.java | 13 +- .../securesms/ConversationActivity.java | 10 +- .../securesms/ConversationListActivity.java | 192 +------------- .../securesms/DatabaseMigrationActivity.java | 189 ++++++++++++++ .../securesms/PassphraseActivity.java | 12 +- .../securesms/PassphraseCreateActivity.java | 52 ++-- .../securesms/PassphrasePromptActivity.java | 11 +- .../securesms/RoutingActivity.java | 218 ++++++++++++++++ .../securesms/crypto/MasterSecretUtil.java | 147 +++++------ .../securesms/database/SmsMigrator.java | 57 +++-- .../notifications/MessageNotifier.java | 6 +- .../notifications/NotificationItem.java | 4 +- .../service/ApplicationMigrationService.java | 239 ++++++++++++------ .../securesms/service/KeyCachingService.java | 10 +- 30 files changed, 1177 insertions(+), 718 deletions(-) create mode 100644 res/drawable-hdpi/import_database.png create mode 100644 res/drawable-hdpi/padlock_prompt.png create mode 100644 res/drawable-mdpi/import_database.png create mode 100644 res/drawable-mdpi/padlock_prompt.png create mode 100644 res/drawable-xhdpi/import_database.png create mode 100644 res/drawable-xhdpi/padlock_prompt.png create mode 100644 res/drawable/background_pattern.png create mode 100644 res/drawable/background_pattern_repeat.xml create mode 100644 res/layout/database_migration_activity.xml delete mode 100644 src/org/thoughtcrime/securesms/ApplicationMigrationManager.java create mode 100644 src/org/thoughtcrime/securesms/DatabaseMigrationActivity.java create mode 100644 src/org/thoughtcrime/securesms/RoutingActivity.java diff --git a/AndroidManifest.xml b/AndroidManifest.xml index b11ae1c641..8bdd09350b 100644 --- a/AndroidManifest.xml +++ b/AndroidManifest.xml @@ -35,10 +35,9 @@ android:label="@string/app_name" android:theme="@style/Theme.Sherlock.Light.DarkActionBar"> - @@ -62,22 +61,34 @@ + + + + diff --git a/res/drawable-hdpi/import_database.png b/res/drawable-hdpi/import_database.png new file mode 100644 index 0000000000000000000000000000000000000000..c59a8ac06526ff7e057ceb73834c7cd3ac0f6501 GIT binary patch literal 1955 zcmZ8ic{tnY7XA_2)K+U7Lv2Y*?WL${Y6FocBEE`{SI4R~#KAk0>1h z06-E%A)Wb{_c_Ew__w83E|U);ei#QNaQOK=ZYs;E%>wzf`Z_e4J-$&To$`%ndiOKYM?hdw*mtA&mr@X0>uP= z5%|Pk0^InEpqpou)AOf5f$}r{Yw?HhcZaFenH z#aCxIDnJ^S6J>zxJ|+)W$*9vje33hA zU|&PBYK}_+Od%f2-8O38S5jbR?%1=szBS(CZ7m@Bd9(Q>u|ZgG{f$az`Hi&bz7Lya9> z4*PXfnAxYlbpGrEpgzm1c&SgpDx)}5brcR<0!P6$j^J1zzAFY3$876ktW(Yguw>X< zfT=tTxBs4N$%)sT@t{s-I^M~ECDnBTVLC>S;pgOJI?N$6 z&98K#wRzcf*#TpU0vo?Ar;?IbdnazxQ_k9qLMa6CkflNHBcOghrInJ+6zfvw4VhxY z!HvkURFW^awZy{fd;k0t^+BlbL3;hcet|eXUdPivJVuVV0wZ{|?|AOV-xZ1Y9;wWG zJ+kHJUZmWALfEi&wBZdZv6LVaSr=LyN{5Hus}qGaF_IPXflXKJAg7P9#jB}K{6^GA zie2E&Ow6!^EhJD*F%i;Bcz9^@&(Ww99oB?(QxiK3i#^q69LK^qqC>touIes1PfBqW3^B=d>I2Hjn~9{ET&{lo}=AbKI9S8f@wjv?tl}-BW&Fxy-}FGq3ISaunpHZ z2tJ5-e!;&CY&Lt~e+aOj00)FnJIKpi=Qv6BoKaHUo4$<=l1JD^TfP@$IvRXLR(H59 z!TxlNmRTTTs2r^zI!%|=NCofLrSgQ)U*QjxULTjJy_i|FO;{b)t0EhBy1s!Lt}wIFYHc<5^oTEDuz9Vd z?M~{`26Ydcoca@9=$>~8ZzytTYo1%eof#mT5baU%P@3v+1!rgPFdoWe;=i>i%`h`N zC+Wk~|2Gxa7$sbkM)H-4Cs4wB#goORD7b#reMZn|5) z31_T&uS|g7Eu%iEDx9iUA{7F@^;-5iB7vXKAFCPdDY*l#;Xw={)R=y9D)QIG!Cz1% zU|jgC^c=1)r8mB0CFb0sGEa!;e!Z*w(CKQB?eK^2W?oFJUAgDMr`jkRoZ!ex-yrY0 zZoXXqfyCz;nIw}%e(4*C7CkJsVAE^4KNsaV#5jl6QzF_@Oa;xk=XKpYYxF6z57miu zOQmpXM+JsIgdexU3qA+tYAz!HK0P3Lr{hSXq!Ea~1FGa9+ zz)2`efc=9u{B8x4>{nZ?#aYAtW_93?b4sw-pTyq*2XUPB literal 0 HcmV?d00001 diff --git a/res/drawable-hdpi/padlock_prompt.png b/res/drawable-hdpi/padlock_prompt.png new file mode 100644 index 0000000000000000000000000000000000000000..d6d1980cc656cefbb728c487f76ecf9bab0432de GIT binary patch literal 4481 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 literal 0 HcmV?d00001 diff --git a/res/drawable-mdpi/padlock_prompt.png b/res/drawable-mdpi/padlock_prompt.png new file mode 100644 index 0000000000000000000000000000000000000000..7b4fc222fd5bc47df44d0298d0d598100b66624f GIT binary patch literal 2098 zcmV-22+jA2P)1JMC8pF^ZELYaF$z>I*g_Bj@sE+D5KM$rLP?-j#rVN035v!j zi3y~}goOA3qXa^t@KvcI_-IK*gkH<-@x$4NI~=&&o^$q@ z+54RJPi}70%R z0`>vF1NHz9SIT_3{M1w=4&y@LW58NqMdh+qkI&wH{U3mz0Y8{fE4!F2a z2)(KW+y>k%X(AOsMGD?wW^Vwl1-=2yuK~tP9`yupouqrl9t^M0?=KzQ62yJDJP_|?Y1>khx-(mcex5ot6FM$c*RPtA+QLT~mXqI3C zls5uT0!uRWlGlTChNMTb0u!Lj1NM&?lx{fhmGt{8z*KU|=xK&dGbsHNZ`bmu{8xnIyr47V}QpQ|!Zz?Erhj-+Gkx)c(JK zsSsM00cQg522Kl|kYVdgV0WyLRz&ueKLYO>VhGy~Y?idGJEzU^T&DtGrM-l(a0p|m z7H~k)+fwwHVT7=b0q+JblQcQ#q@tO98TdNzrXe((uSoh<5@13In*+Qwgo^$X_>iQ1 zv1WNIy~eG;$A{oOMW++gXs;|hz_%lN3Bdi5mUMDftk~V@K}osb@=vTlQF+Io3u1;Zq zd2K`^?UuB$&H;!d!i3}}BY8{l%ha80QeFPFD?5mqA0>Wf9!J1w10@t|qq)g^+d_xG_>l`$Qu- z#>`HMG}Tc6pRaR0eHK8mIy3JdjbkXQsrMDZN-=Ycx#Bb2eYPB1ZMr4MER=D7%E99O4-W4QQ#GXN9g z8Rs|E^83|f24D_HC}U1;U~*7nJ4u@a({k?d!4zX+pVl~fj4M%(@lfU-<6vCgEA!+( z&b=}ZWiAKf-DU4Cd-8WME(haaJjaaAIL74z%<)uDyZz0q3{YZ#DMFcZQZ$UDsYvxK zD|Kvjwgk`i;%_kn04fL9%mc2c{a)dMuK4SoGkcEew$VR;jlj<(wPpfTzK(aCPy0}X zN!rJKEbwp^CFC!meM;6>m;rgwNagy8@?A847`y6&U3%C6A$ zS>PG!IjzVw4d^Fk_Pr{cqT(@|i1#Lyt3Q2H()HDz(dkSd+u>?ft0nE}InE0|^MN(M<2gf`n<h0r)xDf=7Ch+Fz>gfvaB|AilCJFa zknGCI9Ygo3$~_x$$u+rvc}CLxgBBv`-rzM3CQ=xSnIC?fLpaL; zOaW|@*n@dXqGgRenAH(;%xVV{uUB?y z#2j;J4!yFR=E_b0{?;#`;4SX}{^A}JSGNq}HR0ax=2F?5z+7x*mk*F%t^h7{FhiOF zFtZQ$0p%mW56NiJEGICXukM+deW3>^Uj!Z?vlp#$TaW1&c3BViEbY42!3r+QH1`E&YT(2UA0SaWH9WXRo_tNc782 zBL}9}T{7-5!`BOv4)uDIr00qAEf@zgleg5In;eXT$s5d$0ah}1I+#Qff0wp9nBnL@ zA&K`TNk@PK4knF(nJM0`t(I1xU)K%be3YnA^;3(C2*# zIGRI)%n8f|jFJ2R1_$GEFe3uyh?^lf9Vvl>ZinP_s09Axc1TWtFUfE{e8klP_Ljgc zZi}Q;0QYtd#NG~^ji2_Hgd`PZSP@*u^lo}rv$_FZdA9$0U<>|Tm?m?}vyv8@*((85 zKD^*?>W5MQCjt8;z1sL@b`k9l&p4d=pa86rG*KP-cPE~0z?+#~|M0vsTp$y`;_#ap z!E{ERYHvq5hfLou$v}SwE|Ih< literal 0 HcmV?d00001 diff --git a/res/drawable-xhdpi/import_database.png b/res/drawable-xhdpi/import_database.png new file mode 100644 index 0000000000000000000000000000000000000000..a977ebb912423ac0069e94540f09654fbfa310c5 GIT binary patch literal 1218 zcmeAS@N?(olHy`uVBq!ia0vp^XF!;P4M^H6`FsLWY)RhkE)4%caKYZ?lYt_f1s;*b zKpodXn9)gNb_Gz7y~NYkmHjRgA2YvDA5YL71_l;?PZ!6Kid%2**yaUCGPFI^*N`<% z5-srv=uZ(-gSMz**hka7ZhHLFlMs)5GN{DjGs&hL8L`EEW~AH)cPcU;Vyv zo>|M0wJ@_uvxeuyv55SLwWa1KL(4x#y_puYuChgPTK%Lwg>Tp0d98BYcT=P0 z(i*=a&67t=_ZUr9nZ7Jte+Hx5XQh*}*FT=RqqlU=7w7*Q-p)wV{-}0x?Z*2jF0v=j znwivOc=ngY(YP%I&e2t}$4rcmvVcV+-WbzpXu+p4XkRj@8;cp zk0N%j^*20NlYQL8x~wbLnhnXAWivI^BrdOc9{gq#nDJYr`kj}+8J(zF$IlA9fBC%* z>bwhlmfUbrR_m@y+Ako zluVn@Z}ht2+L`rlxzlc3)>&P9E$0o;Az+t=*`DnK21QTqthck1nilSs_PnQ;*>$&M z4d>o{$O%g0+^sy(IGuYpi`xpuEAZ0S7Jc=%S;M1QMxzpk-<)oh8Vh84W ch6KTVOs{T)y*;_eVF!rs>FVdQ&MBb@0H>|>e*gdg literal 0 HcmV?d00001 diff --git a/res/drawable-xhdpi/padlock_prompt.png b/res/drawable-xhdpi/padlock_prompt.png new file mode 100644 index 0000000000000000000000000000000000000000..671f2e5c32931bb83ffbb951adabc9e531998cfa GIT binary patch literal 3942 zcmXAs3p~@^8^CwLV(2AiE|b;}MjPc4QJORsH6?S&mQl;SQpu%xGgOnB+j8x)c>6EK z+!kStcU~-NDv4N>Qm&CmFaMw3&+l`7&pFR|o^zhh?>Xmt&hPR8FLyN+JrxiLq(>5PAsvwa19Feg5(D}EM#R-)`hm+b}etdX_IS8pDXdc)FQFva!%+V@*L_T5U zq=gMDKwPo6-fp7i$9Lryet;&cAk@Xw_u ztU;%!)i?SkJ%y*EryPz?Hno)Av{C&rR?^fRUD2~tQM>Rqyq2ctMVN;SDI37pprMl0 zA2_NJZp+1{+U)vx)EjQgYslA>(4}yP8H1S?&e6CwefPpW&qq(GDkSS5i(9;;ZsWr| z^aF4SxCDau@TeTqH1@U%XSVLtmYJ2}qo&X%O^Y#v98X2el#1?h>Vykel8wTBa5-dj zuJ6Px-^#2imdc++k1x%Hi6`W((^yxjf5G3%b+ftn$FrtT7yN$0XbQ& zLZvG@pK^?`n~9|6@zm=faG$I#At`1e)~?|zX*A^-H95?1+K<~rl<5oC3C%a&<+Afr zq9Jx3Z>cn_N3{HuTu;7k`NcTl=`+!h|2Yw#`^Hiv&|u?272EGs>Wi8&mv|M3GQB%b z^o54VPYc75CD1aD0tT(qqH~wrpKAWRJ+j$-5scd}(}Vk1QLGfAi~?FiFXZKlf;}2q z#ah8Rmr|xV&zLtQ)+ixa<`4HFQ6!N1(f&ta0xxD-V%aRBdtMf&LV)_ba1-MWb=i7pTdn3lr?mS?elGQ0JO>CDrE%9OjZus}0$pY6 z+(29o71hvH-QzNllJw77-U0olx` zby&~fa7Sgf>woHR?n27dyU2Rom;}|gx@BMi8#D%K89nQ}<6+L3Y}U8~<>!saUFQl0 ze9ihHMJ9}tM*7aydaURDahNnCV>e<!k>7QLSjKg z=_T||rPvf+f~BFmqX7CCTCbUyytNA&zB?3GD2%DQmJ<`kFMwEpG#;MK&+z|`KRFtCo@$=7`1th3@G z9_KWB#~E%=+IeLx$6A`Jc;h2N{s7&@IbQgf{v$Tb^yteFCb1jWm^|xU#}MD!IOaxg=$JQvT5)jjml zj6QO4>-b&|k7S&TAS>x!<*_>K_4mbpE!M{bd3JQzJlhDps%bfrnt_a>$u}t1--UHd zagIQUh2N@3S2pN1F}utyNdyCxqU;mP6mXyk1E%dNyGl?0P`3Ek^sqltP)JVN@PHdB zYV*Ywkq8CLOs&$Yjk+4;hbdg*<+_`XJPX`vmkcVMo}LN{B+}3$C#a-9wZB;iwA*v{ z$}Y&SXt6qu`Fy1i>ENL|O-mD?_Wgf3ObP{f7Gz>ld*F@HwV(|E9oPOD#*{pRU8 z_AO-bhw6}WQ(t9A=GHe^I|WiFfm?xD?Ace=QhQlK4Yh$6Ou5l?%963)re!Ny=?D>N z{Mu*-^U>R@NntnL==$m9uF?MUe+2SVmv$YC9NA6u_RsWs>`?WM%}>Q?#I74h4PMAj zdb9N$l&@*tGkw^&mA$E=Nx>InGufKl7&VhCsvw~ z`X#xFm+5;eKcEpfcNW z68lzU2#sBZGi*h|NAYZYH%>x%D;5ee8|f0iH8Vg0=1ysNiLT_gNyrJ>ps@{Ntud8~ z2V@qF9h(-LFa2$P->G@M&u#pg+nRmITE!2!-Y*jf05Fj0`ViVSiB3=zV(eoMtnm3M zL&}L$uoP2(WNjzpQiaYJ>VfqGJ!e4{-*%K(jMwr~FK48P6y%BWB+n z74SRrP-n$Ngniqrt?_$f>i>9+2_$aDB2;cd<&B1Wbhbc!Fp;0@a2hZ47ghQv@}^~l zf@%ff0okKQEQz2B4g;Ms*w6BVk*;rRjH02BA!p!n`}Uqg*E5-zX9JILOV~G?MU5ys zADS;H1Y0V1`+hLeMKz3+ zq{;{HF@S}98IkMZp2y2kNxvO)1M(LGHHEyX{kHW3OnUBD$ z<_w>6Lq;w~>A=aOcJw}t=0SwT*v#k>A1$=$?`^wHPrwJJMehpWYE~h*nDLdpPvQwh z@IjR)uWmp&taNmUtB*F9>3W0ibf-sp%%kjKR#A}^W|g}?!L8;EShY_=G_xPA0pt{ z=Di!Ry+La=v?DWJ6Wh0k{`C!T&$#k8=XIIy79yW{Ja8w%WILiE0wHC$?w&+ z?*;L@%UHx~&wjUUjNS`SAHD#i&m!`liMc;@3u5|*#(pade=C4Pg>&^daPRaw^WBg8 z5=kg9CASP;N(KVhc=jfieZTZ7`i{5jyQ*f9+wZV8Gl|N%pU6}$|8Fr*`by))xBWwN z)}+&MfVZw&9q~MW3EQusD-mOQK5ZWP3lWxo4qSQ~_!xI^e{gj*E(I8MJr#M+9ulz3 zknP~%j%Wj0&%9<)q^L^0g=L1$2mK%rR!#n~1_{?Arz?R(*nk&_1l7n}*gYu;Db)s1 za37^^$e4SZvfA}ftr>;>C7eW@llFesW)rXyINk9HqAVgpQ7^Vq26=*dz%tu(71K1- z8(q-y37y_2&dF@oUmQA(Itur(9n(IvH-zSqPs0M4)DB>l>n*OpXLna3$_Ut;mqUNq z<=50cbp>vh1ykI{P=o}U3{bF$rgybG&yr+zUhRB?avuc}aYkrKdJ#{S)$I)?$kg?! z=OunzSzP;|Wi`%lCP5wzxBwI2m+7aSk^ZLbN zU;>)jOd{XPYFwLolmAq##Sjf2e2>pz;aU27&Krc#oaFU5ghaP2HuQ7MVIWf!v+=)u zbzEiqnwXKNVlMi>c&DyW0OG3l`Z?7`0AV+5nN~kS?0GS;>GMHbP`X+o>`T(K-!}ouCcn$x*p^tyJLDEA)`fNmPr#6jJNkI{Rf%zx^1jm9hBRq{lNX24o z9Ds?dwcDw6YyH><;MGZc03dTGMcJag?PBh~)-5LYQNnjsxH2DK=+$9i@2ce*b{+@G z7W9}rmgw%a%lPFF>TlvK`^#sobwd^;XnB6)y3OPHq80~R$;8v`(FVbS<&z)7nZx$Z z0QC~(Lv}02b!eCh1!qW&qnD%-#ch~-@0Z}TeltTI*FUNovIrwKlF}x>gRP0fie(f% zA6ghVc<|r!$l`z92qf^sR`0NalT}7t`u=^!v{MWdQ2mX_OD9SF6bQSkeJ-JLSh{Jv zT*P=BC&{^43ND}a%xg&PxJQ8$75o^l+wriBJ^^Z0DypuJ^2=|aCyd`I1`UD|pU2u7 z%j4xe#yiP9E>T~n4x>k$geCAf@aNhidri(An-a3+*VUyAV>Tdn?j5{BX z5E=^IWMdCkVgtN$(P(v;vr-_K9n-{3^;4IErWD2|5Tk3k@!n-}4sEA`L+1M#;u!~g&Q literal 0 HcmV?d00001 diff --git a/res/drawable/background_pattern.png b/res/drawable/background_pattern.png new file mode 100644 index 0000000000000000000000000000000000000000..ac627053e84e057a716d95ce1871f1565eb69745 GIT binary patch literal 291 zcmeAS@N?(olHy`uVBq!ia0vp^!XV56BpAZ2GX;PYXMsm#F#`iPP=Z^Skzv*x37{Z* ziKnkC`&~v!CQf!c^}GV0&>>G3#}J9jtOpwl84P)t3=W(t|8Ke5L4V^yq58kJ+n2>Y zTUO!!y;ft5nxtt;p96P{NWl)N}u_r zCpm{_lE}Wb`#Bf{FRCTWi-bfa)P(RWxUc!9Io-ggl6BpJxYuh}Gs`X9d69McQw8n` lljr4$o3v@V-8lc3|AqPl)r1;3bD(b+JYD@<);T3K0RWAWWn%yU literal 0 HcmV?d00001 diff --git a/res/drawable/background_pattern_repeat.xml b/res/drawable/background_pattern_repeat.xml new file mode 100644 index 0000000000..5e3165a49f --- /dev/null +++ b/res/drawable/background_pattern_repeat.xml @@ -0,0 +1,3 @@ + + diff --git a/res/layout/change_passphrase_activity.xml b/res/layout/change_passphrase_activity.xml index 0b901dbd3a..4f2b9bf007 100644 --- a/res/layout/change_passphrase_activity.xml +++ b/res/layout/change_passphrase_activity.xml @@ -1,90 +1,81 @@ + + android:layout_width="fill_parent" + android:layout_height="fill_parent" + android:fillViewport="true" + android:background="@drawable/background_pattern_repeat"> - + android:layout_height="fill_parent" + android:gravity="center" > + + + + + + - + + + - + + + - + - - - - - - - - - - - - -