From b999f542c0d63e950b64c0caab7baee22073c41c Mon Sep 17 00:00:00 2001 From: Bartek Przybylski Date: Tue, 15 May 2012 21:52:59 +0200 Subject: [PATCH] new icons, new uploader --- AndroidManifest.xml | 2 + res/drawable-hdpi/ic_action_create_dir.png | Bin 0 -> 591 bytes res/drawable-hdpi/ic_action_search.png | Bin 3119 -> 867 bytes res/drawable-hdpi/ic_action_upload.png | Bin 1318 -> 486 bytes res/drawable-ldpi/ic_action_create_dir.png | Bin 0 -> 779 bytes res/drawable-ldpi/ic_action_search.png | Bin 3198 -> 629 bytes res/drawable-ldpi/ic_action_upload.png | Bin 1467 -> 683 bytes res/drawable-mdpi/ic_action_create_dir.png | Bin 0 -> 455 bytes res/drawable-mdpi/ic_action_search.png | Bin 3029 -> 629 bytes res/drawable-mdpi/ic_action_upload.png | Bin 1221 -> 430 bytes res/drawable/main_header_bg.xml | 3 +- res/drawable/split_action_bg.xml | 8 ++ res/layout/progressbar_layout.xml | 22 +++ res/menu/menu.xml | 2 +- res/values/styles.xml | 2 +- .../owncloud/files/services/FileUploader.java | 153 +++++++++++++++++++++ .../files/services/OnUploadCompletedListener.java | 8 ++ .../owncloud/ui/activity/FileDisplayActivity.java | 62 +++++---- src/eu/alefzero/webdav/WebdavClient.java | 11 +- 19 files changed, 243 insertions(+), 30 deletions(-) create mode 100644 res/drawable-hdpi/ic_action_create_dir.png create mode 100644 res/drawable-ldpi/ic_action_create_dir.png create mode 100644 res/drawable-mdpi/ic_action_create_dir.png create mode 100644 res/drawable/split_action_bg.xml create mode 100644 res/layout/progressbar_layout.xml create mode 100644 src/eu/alefzero/owncloud/files/services/FileUploader.java create mode 100644 src/eu/alefzero/owncloud/files/services/OnUploadCompletedListener.java diff --git a/AndroidManifest.xml b/AndroidManifest.xml index 39d90852..68def42e 100644 --- a/AndroidManifest.xml +++ b/AndroidManifest.xml @@ -147,6 +147,8 @@ + + \ No newline at end of file diff --git a/res/drawable-hdpi/ic_action_create_dir.png b/res/drawable-hdpi/ic_action_create_dir.png new file mode 100644 index 0000000000000000000000000000000000000000..1d1a03e6ec493b272fee08198c7d5b588643bd38 GIT binary patch literal 591 zcmV-V0O1vPI(s9JGk zSoH@I_JDq%9e7R@Hw{*v3wXi)k6L>WD7bN2`7D?M+5sU+)Qa<@fCOJ2-xmn{abq$} zMnSi0OwjA`btU*;a_MYUi28Y3VM%wQ9j_4WKpJvE(!D1VU&U={5jdpK_jobp$8lR) z1acggvt|>-`-1LFBt1d=bcz&F$~ss7MRr7|>ytEIbV5 zUta`%k@9CbZEzClx?y*~2vprTUj%mP`7%9kq*#-RqwCJMNq3|*vRg|Ez6e;t0g6pH z1>4c>JjnbNj7W)O+ZO>#*oUI`g^7q6IoZa6UUVi6z6q$;?uxCDjdm7np7Bj!i_9~Y zov{;q14e2IJqt|seG#w+%x^LuS$4*cKm<&FpzPR$u_yxZZE^gsR);y=bxw4aTd{`i z8k^hmJoZZ`E)W3)y;p`v@YzYCR;&Rn&Rw9j;xSYN7C|%6Q_E$`^i86IXVE{^8hy%H dVSUh4$bSG+bF_zs|9k)d002ovPDHLkV1i^F`OW|U literal 0 HcmV?d00001 diff --git a/res/drawable-hdpi/ic_action_search.png b/res/drawable-hdpi/ic_action_search.png index 720fc9bba290c3f7edccce5850c1e3204d5ae5bc..a08722ce6e09cf4520106e91cb7e6c52ecab555d 100644 GIT binary patch literal 867 zcmV-p1DyPcP)G>^s2>zUI0*a`YyU^U^uV(t^Ad3b_`Ff((ucGB zEI-`>$n$_svn`}2o|Bbi=iqdK(=Jzsc8lf3{2)N5-8O$p+!sso^Kd)BRaZj~(BZj0 zhLiLF?QIYs_1ir$FD7RJcyH=_$6uD0r-L^L7J^_8aju1+=t!fNaJ34-rsAv*L2Q(O zB|u}an-r7!R_wYprHTGMv4YA;CC76zLgoY*JTU2mABT%*6mk%tQKz}nlN-hGkGmRr`tC+K`Yi}p30be66>*Zd*nOTPd*FU^`G@nG zR|TX_lALh`B<2#BA1lOfz2GSD&BvMRisjk)bOkhl%>;LWT?P62FwvjQR-lVTH|Iuh z3_Jp!uUMyl#5RigRRI+d10>!DSw%IcJHl^OjQbVt&RF9xUn8I*Lbuly5Gx#;*J^xr zd0&Vdil`G%RrdEoO}E+*SO>KK zS{+?p+GD+Dx4{@iKQg99&TgFZK;M_av>p54X=Q88EBY5P9V8-aCF%}lbPFac1Od7m zaz(UFfF7WTh_(vI5iy+pKG~%%lFv%)&Df4l%q`c6Zo47!B2D%KUD?6(AvE0fEwC#@ tL#>4F1sxFGFPs0X0Exj?fy-c<;y;r36TVf!4xRu2002ovPDHLkV1jwXi(dc$ literal 3119 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 diff --git a/res/drawable-hdpi/ic_action_upload.png b/res/drawable-hdpi/ic_action_upload.png index 0faf43b06b308a428b21e5f18f89bad68ad2e16f..61b1d71b9bad4b003247d0cc472a656346764125 100644 GIT binary patch literal 486 zcmV@P)&dR zLmaw7IL!dY`{<_v;G6$;Tp+9gD7=L}D$MmPywhjh7QzaEf~)A&!dyeV(09cKq85Nc zi|EP0TthsP)2oB11fakIy7MsC5b~(bS3#5lkT`|T1I#tVfEt}L2qORqVt$Ntk<^Apl>K336`y8lt1@@0Z2Sx(%Q_lEru? z@49%guI>9a>>3Ii2V>}$yW|UyD-zOZ0ooa8XTWy`WUDTQ*FNBtg!3($M)GweAp^Pp cJ9GT`1;=&FwPqk4Q~&?~07*qoM6N<$f&&NEdjJ3c literal 1318 zcmeAS@N?(olHy`uVBq!ia0vp^1|ZDA1|-9oezpTC$r9IylHmNblJdl&R0hYC{G?O` z&)mfH)S%SFl*+=BsWuD@%qp275hW46K32*3xq68pHF_1f1wh>l3^w)^1&PVosU-?Y zsp*+{wo31J?^jaDOtDo8H}y5}EpSfF$n>ZxN)4{^3rViZPPR-@vbR&PsjvbXkegbP zs8ErclUHn2VXFi-*9yo63F|8hm3bwJ6}oxF$}kgLQj3#|G7CyF^YauyCMG83 zmzLNn0bL65LT&-v*t}wBFaZNhzap_f-%!s00+w{G(#^lGsVil(agZy(Amt?$G&eP`1g19yq1POzUQlAlEdbi=l3J8mmYU*Ll%J~r_Ow+dHn&*1 znp&8c;5HAcHwBwpAbKruxPZ!6Kid%1HZ1iGw6ll{wS?M@2BT?$8Q?%u0N@40gGP)|FHvoTSRWL3P0$LWERzA@}Bd1ea&5l zDa+dvj+8bAZa6NS*RpSYvylZ`<7%e6bG|d%Jj}Szccwu%oYm~0$%?H%{CnSfY+lEy z)6grg_CJ>2?vrR;h?w|dwrGiv>b-Y{obhwqDsJMRoKgJ0YW`>4uOl~n!Wh0?XfEnF)a fK&YcnpOKAWVpoXt!io=(ppwhe)z4*}Q$iB}c+u32 diff --git a/res/drawable-ldpi/ic_action_create_dir.png b/res/drawable-ldpi/ic_action_create_dir.png new file mode 100644 index 0000000000000000000000000000000000000000..49a226e22c558c61fc867f86db3d9e08893037cf GIT binary patch literal 779 zcmV+m1N8ifP)ahX%FPm4F2=-VJ7eGAn|TIBfmvE~_Uq zq4!r(ISF=T%KXA6n$O_3I^S$`tqGw;T2n>OE#M}Y0)xs|43B|VgF2M7n`cx%cs@#C zFE|C(gYDn|C@W8Jcv04=z+T)mg&%>-B+>Tlul5X!=KHwX=ioQ#tu3vAU0!Al(Q9f8 zQBeZ!&_q4zSEeH$eejH%6#$~ zn~*?@E%L2Lut?v81ax3^g)7Mfg+pM)KTY@dC%<<|@`ur7#U><>k)f~|TmW`+`A%IY zePa`_y}b&e`+)6O&3{{`x*%@Df=Oj1?KIya(cT2QU(_ux)m^cMu2Dq|SBUc(WOKe3 zcXpWgbtZ6!h4{FDZ0z5kTs-}vp(=^AF&wl)%RBf4;ew4f*P(VZxiRu(jD z8FBq6@wHusq69)tYtWqsvGwyHG!6rfs(z5b=bYf-2xz2EIJOhxNn}-bC{359XVU-x002ov JPDHLkV1hEYV(9R7ef2ls`xuK@`Sak0XdhQixsf55_3i#E{xnK?pWhij9Io zBC$#-1Z>0vk|1J=2!d6xR1lKNMhg+EkV?TuF-1@diN^Ey-R+Zio7p|V8~E+Ko%!DT zW@i6Hg+iew)S@VAW4s$Wpbmb)o*?I%{%%bM91{3-Oo6R`G`V2m2+M;04ALwF9hLLE_y z<~)o&gm-WSrXBT~WLzwOc-18+&L@Tbp82;4Ym2YT4H zi@}giW3`B0Ks~6fF?d)C)30d$F}vgxJuWT_WzgwHc3fO3)Hh)dw>eEL16#c`dRy+= zE)nX8)O2LQCWD`DrrpJr!d3)U_&7~01HI=uQ?-7+2fw4zX!ttlhPPe(UzlfP3+#=U z*3-`dZ7*EJIe+Mz()9Kn48&rY=xnE;Hk8D;iXVY3XeOkyF*ArrSaeBB{thFcue=Lh z!ZPSZu;S`JLh+YlMSXvJ6o~3T1$?q%{T7l%lbR1`f+n{Ha;52^zk&lu7O{Js`7C@+ zXo4nX2DUX48(;{&zy|z)6_|v!criLw9gi8Se-C9l2^yGDrJiEiai+<=4C0++n%vtU z!(@)#<*H)fOg>T6Ka*i?uPO}_{aN3D-Y#nm#V2le)#&+`Y0T4FT literal 3198 zcmb7`f z5K!VCO6=kO6Q1+=T<3ao&WrQC-kdlSBW+r$TT}o5T3sCtvnyBqPZT6q9n}>6^U5fF zbgcXUpl19}L=%f)=KxR{yF;NSCT`yT-hOW0K3uv`D3{MuZ&&vxE&v41qs$R7^KBL- z{L-x)r}Ua@jbeyj69CsvjlqprFarku;S?(v+*;zWzO;ucvoq zT|_mUiq{7)P}Dnf`(5x5fzvQW#d~);$lC!?;3PE#=rGLd5aWm;(C?_{*b*Tli8}mK z?(0(^nSg3=qIwBX)gnToviZ$H0V%K_a&lY)Cc?m8;N|8dK%!1_LWqD(IyW;>K?>ly z;S#F>+!R37=!1Ao02c#HuKGQ4U{)B2=~}w#fZ8U|fn}hs0~9ns%rrLYE+7p7_We9O zfgmymFlilHD*nD#!>|RpB9&98h~bsf47Z^W_9eHp6uB*k)n&cMB;!ErkgF=v6_mp! z5iUjl{b(3~f)wVfYmY7hv2-<9tV|-B&Q5se3mM^#qvP7;#%QI_Rd6f*VdIxVqV>0s z3S>yn%lCZyq;8L>3!dQ(mrpZCY*Cl-s#bG#K0j; zYo?68i5j`Dk0grk#Hpv={mM5%a9&*&IwMhDmIk$tm5D-9gv%Z}k^HMKzySB}Sj7Wy z*y7#!O^|{F=@zjv8bCNuxzH})14vihR9^rdY4D1`2J2P&C;-qX2#3_Fu^)Hd6zU-3 z=)AVjNqufF6RFPI)1}U!PUVc`cxr#Q>Xo`+^hhly#9s89DyLM3satfK51mMt#b-Jt zANs!z6#1Qkt>KiUYW);99JuFWi5%nMJc$&nIZ>zFojRn93A|hbu}r3S^i!mD#LePi zToyWK9kP&zQXB#_EQ5|Mgc8DmfyrQIHse;<#$YKbVRQ||3v_{K9(tNF)@>^!5MFq-a*PPuPQLa!H zQ-LV+hN*lAv$}{Qv+6eJHimvME%;=&*4oQO?Zj3eD8%hSTN(W05sz$}PdttfR2_C8mSBt9RK;qzo|PF18*O znOT|eN}Wp6O6}b?nVP*)R7sm=i`7{;om!usfUSTwA_;p9wPikMzF10C%3`P_e^Mh- z;Ze+9*rE~e#jA8bJHP!AGT*?vbSbE9>n}&B=mqS;^Ka>iHVvGto`#nUM}xho_*L51 zTai<=5BJ*?`mkFSTI`VFkhKz-f*DsVn$misMgQ8p*LIC}&9m3Dw}_vNpPOIbaK~^z z*US)8a<@dmK*6AIWO(HL$aIc$o|5>C#8%!`-b~(dlf8AIwGg@t{n}wT_vYAXP95ZQzrQb@=LkcxBDugUyn1lMG^2(hS6Ec zHS~?4yFKnG^SnuI1STl73^|{m}2G8{;a}?=r+ZmaD>yp~m5e#w{LEC(#tk>Y3W6 z;(!Xg!vU-EzsgVFttqc5$}UMPS=kNCb~N=j4HV z;i6W{jShdKQS8dhaq%@wIMyuYm$QNk zfg9{G-h*Fq7SbEaD|;}`qplOK+nY^oQDoQgZVbaIiUnIOPap7t4-JU zPx~e6AV8Q_hSuWE+ul_kAB~{(Z9L^N{x+@r{PWi#RV(C^|2*eJaEd-w&ppi5$}`VB zvvIU(HXc?UpWaytKG(+mL;qGv(JDyq2sYq8zx`@54RJX78kKln;Wlnqezwg0C~xPvMok#ieSufvT4%M)-h=!d`?apAwv&Rdw4ztp}c)lpU*y-41`-to9>b>1Q z5GX1B==j0eUT45U0Ovu`GQIKo3$B-f1h+q*PRz$j&(he^(g>s^*+=J2lES#Ff0N5e z$IK9bU_Jnl5di!lT=_Nt&%^-Ou?Ijt8vs`CRJ*TQSF@5P1~5&+|6dynKeVsb8T`$R z%mD+Jn5v1r4>Gx+wqxx3FWC38egKG!bT!mq@b0~g&gT(a44P^t4BUPMf=A2PJa3e9 zy8q;wO;^rt9ywjFZS!%~;SxQIBj(_pi zByUKGG$d<4j<_unlb5Wl@6#6PCQn(k&C@@CYq+5`shvF>r0L+hIZ^zwOq5KB6Hams R|M7}C(A6~3s8P3n^*_&n3|jyI diff --git a/res/drawable-ldpi/ic_action_upload.png b/res/drawable-ldpi/ic_action_upload.png index 2369348c9d9622b68fd125d30f592a8946eb1d8b..5cc5246e02529fe927619ce91f01d21af59082f6 100644 GIT binary patch literal 683 zcmV;c0#yBpP)e5m_JCvKorIst=d5mL_u^D1P5_+aBvWD6C9iz1aWl{ zS8;a{9K}H=7eQQ{1Q7>8#8KRYf+#K`{=q**>hFmsZAsE3cR4u8!Pg}B?%wx(??{@9 zm&@g5z$hpKmzsyzlRQ6TVBRI=6fl|f z-vQbjHSp|}%dS2Ct4sYaZsKZ7j$LId5Vl~R=kiF4IX7zUU)fOniYk<9sF)B5)df z0#)_e<14WVqnxIaA#4OZhKN^Y?in*=jMqdW1oeYr1o6tm6=QpiaO);PNGG_6Azqm{ zW=@+nzfJ-K6u<#cqT(KRn48zqkaRM{@+!WeAzqnXO{ziWCH@mb__6`<%EUra6NwBU zd=|)aT?x=VevoS_iHX<-AQ}g<1=ST@JO6>4!*NZ-G62CKxJyC2GILGtzBnc#8z6BH zxJ*&JGI0h+M^qD$43MxD99a;rOzgwe9K}Rk1Ha<;EQ(hqw%{z(Ga=uF>NVL>$+Di- z8%VqnECHG0*KX)s_Y3&+$#z#h`P}-%{<@6s$k>U=d(OZgL-oly6&8;pFvjSo%rG*&(pZ|E8L(97K$>g?0!w2lkgb5FLI=`hD-c*3OMz?!EEPJCCR>5P z(pU$f&8q~sKL32X;qikqG6VwFdQ_D8!2C}oNZ1NgiWIs^bUpXfB`8PgQzfx!B RC4m3{002ovPDHLkV1i{&BEtXx literal 1467 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 literal 3029 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 diff --git a/res/drawable/split_action_bg.xml b/res/drawable/split_action_bg.xml new file mode 100644 index 00000000..633340c6 --- /dev/null +++ b/res/drawable/split_action_bg.xml @@ -0,0 +1,8 @@ + + + + \ No newline at end of file diff --git a/res/layout/progressbar_layout.xml b/res/layout/progressbar_layout.xml new file mode 100644 index 00000000..f398d4cb --- /dev/null +++ b/res/layout/progressbar_layout.xml @@ -0,0 +1,22 @@ + + + + + + + + + + + + \ No newline at end of file diff --git a/res/menu/menu.xml b/res/menu/menu.xml index f6a7db93..b630c7c9 100644 --- a/res/menu/menu.xml +++ b/res/menu/menu.xml @@ -2,7 +2,7 @@ - + diff --git a/res/values/styles.xml b/res/values/styles.xml index a09945e5..8d5491fb 100644 --- a/res/values/styles.xml +++ b/res/values/styles.xml @@ -18,10 +18,10 @@ @drawable/main_header_bg @drawable/main_header_bg #ffffff - #222222 1 1 + @drawable/split_action_bg diff --git a/src/eu/alefzero/owncloud/files/services/FileUploader.java b/src/eu/alefzero/owncloud/files/services/FileUploader.java new file mode 100644 index 00000000..323ae73c --- /dev/null +++ b/src/eu/alefzero/owncloud/files/services/FileUploader.java @@ -0,0 +1,153 @@ +package eu.alefzero.owncloud.files.services; + +import java.net.URLEncoder; + +import eu.alefzero.owncloud.AccountUtils; +import eu.alefzero.owncloud.R; +import eu.alefzero.owncloud.authenticator.AccountAuthenticator; +import eu.alefzero.owncloud.utils.OwnCloudVersion; +import eu.alefzero.webdav.WebdavClient; +import android.accounts.Account; +import android.accounts.AccountManager; +import android.app.Notification; +import android.app.NotificationManager; +import android.app.Service; +import android.content.Intent; +import android.net.Uri; +import android.os.Handler; +import android.os.HandlerThread; +import android.os.IBinder; +import android.os.Looper; +import android.os.Message; +import android.os.Process; +import android.util.Log; +import android.webkit.MimeTypeMap; +import android.widget.RemoteViews; +import android.widget.Toast; + +public class FileUploader extends Service { + + public static final String KEY_LOCAL_FILE = "LOCAL_FILE"; + public static final String KEY_REMOTE_FILE = "REMOTE_FILE"; + public static final String KEY_ACCOUNT = "ACCOUNT"; + public static final String KEY_UPLOAD_TYPE = "UPLOAD_TYPE"; + + public static final int UPLOAD_SINGLE_FILE = 0; + public static final int UPLOAD_MULTIPLE_FILES = 1; + + private static final String TAG = "FileUploader"; + private NotificationManager mNotificationManager; + private Looper mServiceLooper; + private ServiceHandler mServiceHandler; + private AccountManager mAccountManager; + private Account mAccount; + private String[] mLocalPaths, mRemotePaths; + private boolean mResult; + private int mUploadType; + + @Override + public IBinder onBind(Intent arg0) { + return null; + } + + private final class ServiceHandler extends Handler { + public ServiceHandler(Looper looper) { + super(looper); + } + @Override + public void handleMessage(Message msg) { + uploadFile(); + stopSelf(msg.arg1); + } + } + + @Override + public void onCreate() { + super.onCreate(); + mNotificationManager = (NotificationManager) getSystemService(NOTIFICATION_SERVICE); + HandlerThread thread = new HandlerThread("FileUploaderThread", Process.THREAD_PRIORITY_BACKGROUND); + thread.start(); + mServiceLooper = thread.getLooper(); + mServiceHandler = new ServiceHandler(mServiceLooper); + mAccountManager = AccountManager.get(this); + } + + @Override + public int onStartCommand(Intent intent, int flags, int startId) { + if (!intent.hasExtra(KEY_ACCOUNT) && !intent.hasExtra(KEY_UPLOAD_TYPE)) { + Log.e(TAG, "Not enought data in intent provided"); + return Service.START_NOT_STICKY; + } + mAccount = intent.getParcelableExtra(KEY_ACCOUNT); + mUploadType = intent.getIntExtra(KEY_UPLOAD_TYPE, -1); + if (mUploadType == -1) { + Log.e(TAG, "Incorrect upload type provided"); + return Service.START_NOT_STICKY; + } + if (mUploadType == UPLOAD_SINGLE_FILE) { + mLocalPaths = new String[] { intent.getStringExtra(KEY_LOCAL_FILE) }; + mRemotePaths = new String[] { intent.getStringExtra(KEY_REMOTE_FILE) }; + } else { // mUploadType == UPLOAD_MULTIPLE_FILES + mLocalPaths = intent.getStringArrayExtra(KEY_LOCAL_FILE); + mRemotePaths = intent.getStringArrayExtra(KEY_REMOTE_FILE); + } + + for (int i = 0; i < mRemotePaths.length; ++i) + mRemotePaths[i] = mRemotePaths[i].replace(' ', '+'); + + if (mLocalPaths.length != mRemotePaths.length) { + Log.e(TAG, "Remote paths and local paths are not equal!"); + return Service.START_NOT_STICKY; + } + + Message msg = mServiceHandler.obtainMessage(); + msg.arg1 = startId; + mServiceHandler.sendMessage(msg); + + return Service.START_NOT_STICKY; + } + + public void run() { + if (mResult) { + Toast.makeText(this, "Upload successfull", Toast.LENGTH_SHORT).show(); + } else { + Toast.makeText(this, "No i kupa", Toast.LENGTH_SHORT).show(); + } + } + + public void uploadFile() { + String baseUrl = mAccountManager.getUserData(mAccount, AccountAuthenticator.KEY_OC_BASE_URL), + ocVerStr = mAccountManager.getUserData(mAccount, AccountAuthenticator.KEY_OC_VERSION); + OwnCloudVersion ocVer = new OwnCloudVersion(ocVerStr); + String webdav_path = AccountUtils.getWebdavPath(ocVer); + Uri ocUri = Uri.parse(baseUrl + webdav_path); + String username = mAccount.name.substring(0, mAccount.name.lastIndexOf('@')); + String password = mAccountManager.getPassword(mAccount); + Notification notification = new Notification(eu.alefzero.owncloud.R.drawable.icon, + "Uploading...", System.currentTimeMillis()); + notification.flags |= Notification.FLAG_ONGOING_EVENT; + notification.contentView = new RemoteViews(getApplicationContext().getPackageName(), + R.layout.progressbar_layout); + notification.contentView.setProgressBar(R.id.status_progress, mLocalPaths.length-1, 0, false); + notification.contentView.setImageViewResource(R.id.status_icon, R.drawable.icon); + + mNotificationManager.notify(42, notification); + + WebdavClient wc = new WebdavClient(ocUri); + wc.setCredentials(username, password); + + for (int i = 0; i < mLocalPaths.length; ++i) { + String mimeType = MimeTypeMap.getSingleton().getMimeTypeFromExtension(mLocalPaths[i].substring(mLocalPaths[i].lastIndexOf('.')+1)); + mResult = false; + if (wc.putFile(mLocalPaths[i], mRemotePaths[i], mimeType)) { + mResult |= true; + } + notification.contentView.setProgressBar(R.id.status_progress, mLocalPaths.length-1, i+1, false); + + mNotificationManager.notify(42, notification); + } + //notification.contentView.setProgressBar(R.id.status_progress, mLocalPaths.length-1, mLocalPaths.length-1, false); + mNotificationManager.cancel(42); + run(); + } +} diff --git a/src/eu/alefzero/owncloud/files/services/OnUploadCompletedListener.java b/src/eu/alefzero/owncloud/files/services/OnUploadCompletedListener.java new file mode 100644 index 00000000..750e2896 --- /dev/null +++ b/src/eu/alefzero/owncloud/files/services/OnUploadCompletedListener.java @@ -0,0 +1,8 @@ +package eu.alefzero.owncloud.files.services; + +public interface OnUploadCompletedListener extends Runnable { + + public boolean getUploadResult(); + + public void setUploadResult(boolean result); +} diff --git a/src/eu/alefzero/owncloud/ui/activity/FileDisplayActivity.java b/src/eu/alefzero/owncloud/ui/activity/FileDisplayActivity.java index b87fd1d1..46e9be93 100644 --- a/src/eu/alefzero/owncloud/ui/activity/FileDisplayActivity.java +++ b/src/eu/alefzero/owncloud/ui/activity/FileDisplayActivity.java @@ -18,6 +18,9 @@ package eu.alefzero.owncloud.ui.activity; +import java.io.File; +import java.net.URLEncoder; + import android.accounts.Account; import android.accounts.AccountManager; import android.app.AlertDialog; @@ -55,8 +58,10 @@ import eu.alefzero.owncloud.authenticator.AccountAuthenticator; import eu.alefzero.owncloud.datamodel.DataStorageManager; import eu.alefzero.owncloud.datamodel.FileDataStorageManager; import eu.alefzero.owncloud.datamodel.OCFile; +import eu.alefzero.owncloud.files.services.FileUploader; import eu.alefzero.owncloud.syncadapter.FileSyncService; import eu.alefzero.owncloud.ui.fragment.FileListFragment; +import eu.alefzero.owncloud.utils.OwnCloudVersion; import eu.alefzero.webdav.WebdavClient; /** @@ -164,6 +169,9 @@ public class FileDisplayActivity extends SherlockFragmentActivity implements requestWindowFeature(Window.FEATURE_INDETERMINATE_PROGRESS); setProgressBarIndeterminateVisibility(false); + //if (getSupportFragmentManager().findFragmentById(R.id.fileList) == null) + setContentView(R.layout.files); + } @Override @@ -245,8 +253,6 @@ public class FileDisplayActivity extends SherlockFragmentActivity implements IntentFilter f = new IntentFilter(FileSyncService.SYNC_MESSAGE); syncBroadcastRevceiver = new SyncBroadcastReceiver(); registerReceiver(syncBroadcastRevceiver, f); - if (getSupportFragmentManager().findFragmentById(R.id.fileList) == null) - setContentView(R.layout.files); mDirectories = new CustomArrayAdapter(this, R.layout.sherlock_spinner_dropdown_item); @@ -261,28 +267,40 @@ public class FileDisplayActivity extends SherlockFragmentActivity implements } public void onActivityResult(int requestCode, int resultCode, Intent data) { + Log.e("ASD", requestCode + " " + resultCode); if (resultCode == RESULT_OK) { if (requestCode == ACTION_SELECT_FILE) { - Uri selectedImageUri = data.getData(); - - String filemanagerstring = selectedImageUri.getPath(); - - String selectedImagePath = getPath(selectedImageUri); - - //DEBUG PURPOSE - you can delete this if you want - if(selectedImagePath!=null) - System.out.println(selectedImagePath); - else System.out.println("selectedImagePath is null"); - if(filemanagerstring!=null) - System.out.println(filemanagerstring); - else System.out.println("filemanagerstring is null"); - - //NOW WE HAVE OUR WANTED STRING - if(selectedImagePath!=null) - System.out.println("selectedImagePath is the right one for you!"); - else - System.out.println("filemanagerstring is the right one for you!"); + Uri selectedImageUri = data.getData(); + + String filemanagerstring = selectedImageUri.getPath(); + String selectedImagePath = getPath(selectedImageUri); + String filepath; + + if(selectedImagePath!=null) + filepath = selectedImagePath; + else + filepath = filemanagerstring; + + if (filepath == null) { + Log.e("FileDisplay", "Couldnt resolve path to file"); + return; } + + Intent i = new Intent(this, FileUploader.class); + i.putExtra(FileUploader.KEY_ACCOUNT, AccountUtils.getCurrentOwnCloudAccount(this)); + String remotepath = new String(); + for (int j = mDirectories.getCount() - 2; j >= 0; --j) { + remotepath += "/" + mDirectories.getItem(j); + } + if (!remotepath.endsWith("/")) remotepath += "/"; + remotepath += new File(filepath).getName(); + Log.e("ASD", remotepath+""); + + i.putExtra(FileUploader.KEY_LOCAL_FILE, filepath); + i.putExtra(FileUploader.KEY_REMOTE_FILE, remotepath); + i.putExtra(FileUploader.KEY_UPLOAD_TYPE, FileUploader.UPLOAD_SINGLE_FILE); + startService(i); + } } } @@ -291,8 +309,6 @@ public class FileDisplayActivity extends SherlockFragmentActivity implements Cursor cursor = managedQuery(uri, projection, null, null, null); if(cursor!=null) { - //HERE YOU WILL GET A NULLPOINTER IF CURSOR IS NULL - //THIS CAN BE, IF YOU USED OI FILE MANAGER FOR PICKING THE MEDIA int column_index = cursor .getColumnIndexOrThrow(MediaStore.Images.Media.DATA); cursor.moveToFirst(); diff --git a/src/eu/alefzero/webdav/WebdavClient.java b/src/eu/alefzero/webdav/WebdavClient.java index 1416d17b..4b719fb6 100644 --- a/src/eu/alefzero/webdav/WebdavClient.java +++ b/src/eu/alefzero/webdav/WebdavClient.java @@ -31,6 +31,7 @@ import org.apache.commons.httpclient.auth.AuthScope; import org.apache.commons.httpclient.methods.GetMethod; import org.apache.commons.httpclient.methods.HeadMethod; import org.apache.commons.httpclient.methods.PutMethod; +import org.apache.commons.httpclient.methods.RequestEntity; import org.apache.commons.httpclient.params.HttpMethodParams; import org.apache.commons.httpclient.protocol.Protocol; import org.apache.http.HttpStatus; @@ -102,10 +103,14 @@ public class WebdavClient extends HttpClient { String contentType) { boolean result = true; - try { - FileRequestEntity entity = new FileRequestEntity(new File(localFile), contentType); - PutMethod put = new PutMethod(mUri.toString() + remoteTarget.substring(1)); + try { + Log.e("ASD", contentType+""); + File f = new File(localFile); + RequestEntity entity = new FileRequestEntity(f, contentType); + Log.e("ASD", f.exists()+" " + entity.getContentLength()); + PutMethod put = new PutMethod(mUri.toString() + remoteTarget); put.setRequestEntity(entity); + Log.d(TAG, "" + put.getURI().toString()); int status = executeMethod(put); Log.d(TAG, "PUT method return with status "+status); -- 2.11.0