From c7f6849cefcca66ab6f839f29dfc59a7822cfebe Mon Sep 17 00:00:00 2001 From: neslihanturan Date: Wed, 12 Dec 2018 17:15:15 +0300 Subject: [PATCH] Add cancel and retry buttons on layout contribution --- .../contributions/ContributionViewHolder.java | 6 ++ .../ContributionsListAdapter.java | 23 +++++ .../mwapi/ApacheHttpClientMediaWikiApi.java | 2 + .../res/drawable-hdpi/ic_cancel_white.png | Bin 0 -> 351 bytes .../main/res/drawable-hdpi/ic_retry_white.png | Bin 0 -> 449 bytes .../res/drawable-mdpi/ic_cancel_white.png | Bin 0 -> 256 bytes .../main/res/drawable-mdpi/ic_retry_white.png | Bin 0 -> 279 bytes .../res/drawable-xhdpi/ic_cancel_white.png | Bin 0 -> 470 bytes .../res/drawable-xhdpi/ic_retry_white.png | Bin 0 -> 570 bytes .../res/drawable-xxhdpi/ic_cancel_white.png | Bin 0 -> 764 bytes .../res/drawable-xxhdpi/ic_retry_white.png | Bin 0 -> 945 bytes .../res/drawable-xxxhdpi/ic_cancel_white.png | Bin 0 -> 1016 bytes .../res/drawable-xxxhdpi/ic_retry_white.png | Bin 0 -> 1293 bytes .../main/res/layout/layout_contribution.xml | 96 +++++++++++++----- 14 files changed, 101 insertions(+), 26 deletions(-) create mode 100644 app/src/main/res/drawable-hdpi/ic_cancel_white.png create mode 100644 app/src/main/res/drawable-hdpi/ic_retry_white.png create mode 100644 app/src/main/res/drawable-mdpi/ic_cancel_white.png create mode 100644 app/src/main/res/drawable-mdpi/ic_retry_white.png create mode 100644 app/src/main/res/drawable-xhdpi/ic_cancel_white.png create mode 100644 app/src/main/res/drawable-xhdpi/ic_retry_white.png create mode 100644 app/src/main/res/drawable-xxhdpi/ic_cancel_white.png create mode 100644 app/src/main/res/drawable-xxhdpi/ic_retry_white.png create mode 100644 app/src/main/res/drawable-xxxhdpi/ic_cancel_white.png create mode 100644 app/src/main/res/drawable-xxxhdpi/ic_retry_white.png diff --git a/app/src/main/java/fr/free/nrw/commons/contributions/ContributionViewHolder.java b/app/src/main/java/fr/free/nrw/commons/contributions/ContributionViewHolder.java index 3dc79a50b..43a2af725 100644 --- a/app/src/main/java/fr/free/nrw/commons/contributions/ContributionViewHolder.java +++ b/app/src/main/java/fr/free/nrw/commons/contributions/ContributionViewHolder.java @@ -1,6 +1,8 @@ package fr.free.nrw.commons.contributions; import android.view.View; +import android.widget.Button; +import android.widget.ImageButton; import android.widget.ProgressBar; import android.widget.TextView; @@ -13,6 +15,8 @@ class ContributionViewHolder { final TextView stateView; final TextView seqNumView; final ProgressBar progressView; + final ImageButton retryButton; + final ImageButton cancelButton; ContributionViewHolder(View parent) { imageView = parent.findViewById(R.id.contributionImage); @@ -20,5 +24,7 @@ class ContributionViewHolder { stateView = parent.findViewById(R.id.contributionState); seqNumView = parent.findViewById(R.id.contributionSequenceNumber); progressView = parent.findViewById(R.id.contributionProgress); + retryButton = parent.findViewById(R.id.retryButton); + cancelButton = parent.findViewById(R.id.cancelButton); } } diff --git a/app/src/main/java/fr/free/nrw/commons/contributions/ContributionsListAdapter.java b/app/src/main/java/fr/free/nrw/commons/contributions/ContributionsListAdapter.java index a31caf54f..eec0ab201 100644 --- a/app/src/main/java/fr/free/nrw/commons/contributions/ContributionsListAdapter.java +++ b/app/src/main/java/fr/free/nrw/commons/contributions/ContributionsListAdapter.java @@ -3,6 +3,7 @@ package fr.free.nrw.commons.contributions; import android.content.Context; import android.database.Cursor; import android.support.v4.widget.CursorAdapter; +import android.util.Log; import android.view.LayoutInflater; import android.view.View; import android.view.ViewGroup; @@ -37,20 +38,40 @@ class ContributionsListAdapter extends CursorAdapter { views.seqNumView.setText(String.valueOf(cursor.getPosition() + 1)); views.seqNumView.setVisibility(View.VISIBLE); + views.retryButton.setOnClickListener(new View.OnClickListener() { + @Override + public void onClick(View view) { + Log.d("deneme","Retry button is clicked"); + } + }); + + views.cancelButton.setOnClickListener(new View.OnClickListener() { + @Override + public void onClick(View view) { + Log.d("deneme","Cancel button is clicked"); + } + }); + switch (contribution.getState()) { case Contribution.STATE_COMPLETED: views.stateView.setVisibility(View.GONE); views.progressView.setVisibility(View.GONE); + views.retryButton.setVisibility(View.GONE); + views.cancelButton.setVisibility(View.GONE); views.stateView.setText(""); break; case Contribution.STATE_QUEUED: views.stateView.setVisibility(View.VISIBLE); views.progressView.setVisibility(View.GONE); views.stateView.setText(R.string.contribution_state_queued); + views.retryButton.setVisibility(View.GONE); + views.cancelButton.setVisibility(View.GONE); break; case Contribution.STATE_IN_PROGRESS: views.stateView.setVisibility(View.GONE); views.progressView.setVisibility(View.VISIBLE); + views.retryButton.setVisibility(View.GONE); + views.cancelButton.setVisibility(View.GONE); long total = contribution.getDataLength(); long transferred = contribution.getTransferred(); if (transferred == 0 || transferred >= total) { @@ -63,6 +84,8 @@ class ContributionsListAdapter extends CursorAdapter { views.stateView.setVisibility(View.VISIBLE); views.stateView.setText(R.string.contribution_state_failed); views.progressView.setVisibility(View.GONE); + views.retryButton.setVisibility(View.VISIBLE); + views.cancelButton.setVisibility(View.VISIBLE); break; } } diff --git a/app/src/main/java/fr/free/nrw/commons/mwapi/ApacheHttpClientMediaWikiApi.java b/app/src/main/java/fr/free/nrw/commons/mwapi/ApacheHttpClientMediaWikiApi.java index 2e1cbb1ac..815182480 100644 --- a/app/src/main/java/fr/free/nrw/commons/mwapi/ApacheHttpClientMediaWikiApi.java +++ b/app/src/main/java/fr/free/nrw/commons/mwapi/ApacheHttpClientMediaWikiApi.java @@ -8,6 +8,7 @@ import android.support.annotation.NonNull; import android.support.annotation.Nullable; import android.support.annotation.VisibleForTesting; import android.text.TextUtils; +import android.util.Log; import com.google.gson.Gson; @@ -897,6 +898,7 @@ public class ApacheHttpClientMediaWikiApi implements MediaWikiApi { if (!resultStatus.equals("Success")) { String errorCode = result.getString("/api/error/@code"); + Log.d("deneme","error code: "+errorCode); Timber.e(errorCode); return new UploadResult(resultStatus, errorCode); } else { diff --git a/app/src/main/res/drawable-hdpi/ic_cancel_white.png b/app/src/main/res/drawable-hdpi/ic_cancel_white.png new file mode 100644 index 0000000000000000000000000000000000000000..f8709859d18c8e40328df1ecd372c30c16878e7e GIT binary patch literal 351 zcmV-l0igbgP)|3_wc+j2wxXvA5s^SvUem=)gV5*pcK;)Ksp7QZObE)m0nmEy&S8Tnh|GkhggR!iE+r0; zndqohyJrsDH>p4whdGm_hh(^7yCYINWgO2ks?j5urnzv@&p$80LIF~K+>epCZHkjbomG7 zU>MH8-L08LJorFv_lD19cV;%1JH;mq!z-_3z?)Yx;KwT&b0L;lM>3{DdSy(74#_Y> z&<8D0wwBRs!4qiuA{6lrM&QCi>Jhwv_n5I)&@kE5_+0?kV5a7*z@^!-$GbcjfSs5( zC1KOVh_PGVOOaI1ymVkZ5JEJ+WLjJ?UICv%>c+hNP^&cdp%{0B(9#E?n#$z)Bp*{Q zxdZo1!GTaw2z@2m*qlSQB0$Z7P$TsUae$==&@tabbP_~>z=2SJ}fsgx~3T3+Ejp^~KyD?-TUY`=j>MEY<|iVDpE_hUXmb r))6CC<~vxQ?_~dbFFQZy=fLv|dbkFO;dJGM00000NkvXXu0mjf*;Udb literal 0 HcmV?d00001 diff --git a/app/src/main/res/drawable-mdpi/ic_cancel_white.png b/app/src/main/res/drawable-mdpi/ic_cancel_white.png new file mode 100644 index 0000000000000000000000000000000000000000..2d693927fb2f78d1adb235343184aeb43da6fe11 GIT binary patch literal 256 zcmV+b0ssDqP)JQm&* zRDc6K5P%H{_^ia#U2zMnK>9*?$NrjzxkI>S?n>WH@x!DiE$Jcls-Shw7r+3K5Q-RE zh?*$Mz!4$_V^d{P<`c#YvCmNkzVVg2kj8aEH;i{YWe^%UJqzk;9vgcCbu_n&!W||Z z;t91zIRo|-Nfnv>nDYK;?5#qi*@?7k_6tYs$`rZu-xwde1j5l7_{G`)0000#h*m8;Ddn=+GMjslAW!pUm7vS zooaG0s3unt7$+xl&E&!f1kiw5L*P33_Fz>~WD6{Cpyk}Yn8;+_fCJaON|{nbPSO{7 zlPB|zr)ac%Vkr<(f)_%jz>)&zmp;Mb3>?8lHf0EGk^~qW7;Lq!s9~_n5J-PyDK(ay zl%7e5&o5Kjf1ruXo8>dCB002ovPDHLkV1jWQcV_?q literal 0 HcmV?d00001 diff --git a/app/src/main/res/drawable-xhdpi/ic_cancel_white.png b/app/src/main/res/drawable-xhdpi/ic_cancel_white.png new file mode 100644 index 0000000000000000000000000000000000000000..495fed7ac6131bce605a6c8ba6fec1ca453d0cf4 GIT binary patch literal 470 zcmV;{0V)28P)g)ikFRu zTo_QUApS||V!;k88Za0yYz&om;v_Z#DbXo5F`yvE@CzUe#0wlt*-HwO9kwTkKTCO! z&=eow*fVjiM8|-f@ar!#(W)Yduhi&*f8vun(M;AVh`CcpF(B1+ z1*#wugH=+B0h#7voO21)ohW@MWE2Bx!-(?g>)N=DN=-4KF^uW2gxb1|OhYLHJBy8} zdY8W#x{XZtwmil9^r%t=Zi`2YX_ M07*qoM6N<$f%A_P)t6B0d9d$sRDiu4}6JCoAB_W1Vqy&JiIgkzYZ@( z08bk+0^-t!;S4wxl{O4-zzgsQjDa4|%yrr%z#5nW9jO9BY=I$gp63+$NFZd9$=66& z#7)2k9KZ#hVxD^iu5#Z-gN_6YVuUO+tBZXvGWs(2G3itlVI}Bm+$ls1#h5ufQwAQG z06*&%yO*7&bmBEJ6*bUMVMhgQfSQ<*63<$I$3*m`4MQ#yFqS63VFKpT1hkldm5ySp z2E`P@umDTpTCHOVgX{f00?VL)npOcsx@4p+g92>sjdYOC8L4AXz_s=w2FZkxx+%8N zi4M{pBlS$wfw7B>3TwlN2L=R~vl1YhG4jB8H8dW+p)hkZoxe_pEN=7#fdwvW;7-R* z)AoQ59;0KHRy5FzQWuyX}QKuOggDHZ+?R1R{D!Ays$!r?H{pP^ogUA zrH8j^QM*21xohWX7-^F27?S~9Q3`G8?|H7)>qQh%L=jrz8-5q7tvpHB&j0`b07*qo IM6N<$f-m>;O8@`> literal 0 HcmV?d00001 diff --git a/app/src/main/res/drawable-xxhdpi/ic_cancel_white.png b/app/src/main/res/drawable-xxhdpi/ic_cancel_white.png new file mode 100644 index 0000000000000000000000000000000000000000..8c4acd5247b5098a6c5610df6bffd8ecc9f15b0d GIT binary patch literal 764 zcmVuq*IZs^p-tD~lnK9w`0b-Ik@>oiFA*W855w1BP=ZPziss3qlnuK+Z zh)F_?t@$Z(T7;h*lkpP)3k*19NY9^Nfj(&u19Fs(fOS^+9##pi%aVnNoS3cw;UpkOT{}qVl#tYQ5!P3h)2f=Hb6{yn zQIeblNjB4MB?|jowF@nr=je@IQ%gFfkrUH7vT)q$**X$}CITlKXpj_1EGMQb5CnmV zgrJSknMxnbCDCcvNOm92!ib|YHHInoQQr+6Pt|+MeHu0d^(}WFY%S@W7_@K8iSL&5 zZ3vn=T-fPaQpm`{a^jfU5Hxq38blga5orDhS|zi9d?m)IHg0&w%d-ebw(Y+^|-BAqL!XRVor_=D%VOsHc?!bPAi4o0CK1YwGa zrx=_x!o09}hJ_+h4RNZ0WEJHOLAe73Gn8DNlw47?$F`5K+XEYi*m_3uLKe*nXn#Qi z6$q00005hE zD<-s}{7>~e_GxO{ncdReo!OoDlJ5oBdBdk~XWqPdbsRRf*jTgKJjWE|a1u~~Nk}3G zT8Dlzjoy*-LcoDenMil!{DZ@Qx+7=39S#HfKXMA4a2Svxau`tCRxX2MHK6vbTn5Kl zKwcupT0mYS$4Wq*NuWnvf-XSktxEzu>I?J<`T$j+B9w=&TCSDl3&51ZYajD@M+DCC+af1ZYMw$K5cTS0v6C4Fa^JZJVbX&0fw+5l9q^VK~oA zobLy^L-e;m?`u11hy$OZSe`Qgklw>8?PQyhNt6u$RMuYZ5XC3OrCnAd95V`La5hfK zVXujZvgeQnI72Qa*YU6?B-_nI;e15{pcO^YzNjOd(~A2jaRoCM;#}qw*FIv7X{pCSS67tm)h_MxY(V* z*6`SBcR+{AM^v5=uj&;lmtKSJQ1QLw(&Ez9g6EiQqLI>NO;WYaiMHM&=-6XVV&|F@ zjV4afk_){HsRj6yd_}GeI7v<3wE)4?$VbwNs!_&Wq*uo;Fh?|I+KG$dpBbYsqP(Rw zre7$>^sE?T%!#W}E|a0kWRYszdz2A3NQd;Z_OC-_BHg~i#>U3R#>U3R7BBk^v-?ws TB4n~`00000NkvXXu0mjf8oarl literal 0 HcmV?d00001 diff --git a/app/src/main/res/drawable-xxxhdpi/ic_cancel_white.png b/app/src/main/res/drawable-xxxhdpi/ic_cancel_white.png new file mode 100644 index 0000000000000000000000000000000000000000..8f131ab243469d0585f93e75704fbef2cb5561af GIT binary patch literal 1016 zcmV5M85RPC#f@08C`yjkFXqO^Yet?z#La?<@ZDnzdASejWDkg=ssQ<~#h7s=FGbVDg zJ9FMQ@HHm7d*A5n?9A-!%?$(sfj}S-2m}H-Cx^qKK)5B82xUT*QRdg&-wI$#j_?|x zP3RH^gb`svm=l(SH^!1*oACb(_&x5uH8A;m!tV)Bgg#+P*b(+AvE$F`^Jm|K>3>PT zBRmp@gq0BK=ajMHvD}zEGd<=TyCB;){f5 z!om>oNi2Ad#cLzKNq8k}4U>Pwmgm~M7Qg+4u+9MSNvwJ9g{+caVSjv+LGq8-@H14h zMt+?z&M@&wxM!(nh5Ux`g*MFs-LOvn1L5x#l7EDIwg=1K{A(sZu7rj~o4?2b`Ehep zx8&`Nb3}f8VXkPCUtl+FpHmD}_X)gF+2mLO?%7{7!wc&ilONwPH$#(OSIy8mv8RYUlV3@U+2XlKW!6eQ70?y@=C=YzQooI8vJ#|z30jfr4%j_i4msG$s zq;H<$+p1}Hl9)=7UkgyXDM6gJ**Rr~Y7z=)TPyuIVLGgsog~_pcE7&NktMSuzbjTq zIbKSrCA0Hi%2FcdJIZ<`nqsBiC{@mw54}y4vP{1=N5;%f9FDu&wBhHuVyZ7n^Gi@N zJ8{fYg{S%W=Q4|hu|^7n9e3rl>Bl$ahq%}rDVv>S(y0msWLN<(LCPiwi?H${3^!ES z4aG)Gb0daOgmNeX!8jYiIE15>!_i2{XeMNkl2lGfA}MbpDUY%g<+2nMW@#2?p)^ss zG!ezQHi~mmo~~J*F1#zo0gV*lX&h0~I-yd$))S5^Wpa4@0>Tw!8B3An_^h$3)}l@UeYA~z$7z*UBZl!41UjVT1z*&5te m;6i5z1OkCTAP@*7oqPhkWyb2u*IIl40000 z)RnAE)Be+T2F~^%xHI?eot>Gz-+}K%bnbW0=RGrXX3p_E7z_r31+iQ%R{<}WbN(U1 z19-yFf4*=&;SaoF#`zsnw z(%3H~0xU%8DD$8%LF3px5&?b@PI@qH0*ElQCJ~_rp3)~kC7-NeQ)WaYO4)-OZ(_E;g3cN`Yr zzU=0l4J3yoBvUTlEaMekO7d<)HV~C%4cA<(R&*vAMimxBUyDWs#DZ6I2$ zFcD8XD8RHc2QoxtTtarmrCl-a;$=sY<2Dg)S2)BTaY%p>h4*Q6Xy!4z@DB2jXb=fA1n?DJi77NhH9A)!ay{#`WtPndti;J)pa&KjB z?q1F%atX!KpLv_gKsoI^ufSWpTf+89tY5L%VakRIM8Sc%sBrFgVF_2k z2D#SysE(O)=KNO_wDEDBN*QR{#Fm~@C~3uN`c>zO^oVeuk8)Gda;&3-+&cJ~s{JGS zTuY_o*VLmvimrD!7Pn~R)WXl$@xg1<*+Ole;AVU_&B$_FfkcQr5&>Ej>@jz@TNUsU zFO>_{4N)}O=nk@E<>z+u7|Q{kpDLSU zIDh8*oU;nWcCsaM%qu73OHLDn?GPF(?Qs{x4Gt^c+2O@DZrWy!<=L=_C*~Ug`}gR^ z26HR_&M5SfNp6&9L(jN;)4rq^CF7&aTZAQp&R=2<(XI93*&2EI+fsgZ&pG z&TWO?X$nodJhpg793C&cWW7ij<6h63ML2zv#~9-=WAL#5Ra25Le~H7MS9~30k;BL~ zBg;Qq;NQu&uTMs%-x~}DgTY`h7z_r3!C){L%zFC=uGp{L3CbbI00000NkvXXu0mjf Dyv|VG literal 0 HcmV?d00001 diff --git a/app/src/main/res/layout/layout_contribution.xml b/app/src/main/res/layout/layout_contribution.xml index 87e7fe9e3..7b04c9140 100644 --- a/app/src/main/res/layout/layout_contribution.xml +++ b/app/src/main/res/layout/layout_contribution.xml @@ -28,39 +28,83 @@ - - + android:layout_weight="3" + android:layout_gravity="center|bottom" + android:orientation="vertical" + android:padding="@dimen/small_gap" + > + - + + + + + + + android:layout_weight="1" + android:orientation="horizontal" + android:padding="@dimen/small_gap" + > + + + + + + + \ No newline at end of file