Add cancel and retry buttons on layout contribution

This commit is contained in:
neslihanturan 2018-12-12 17:15:15 +03:00
parent f3a90c004c
commit c7f6849cef
14 changed files with 101 additions and 26 deletions

View file

@ -1,6 +1,8 @@
package fr.free.nrw.commons.contributions; package fr.free.nrw.commons.contributions;
import android.view.View; import android.view.View;
import android.widget.Button;
import android.widget.ImageButton;
import android.widget.ProgressBar; import android.widget.ProgressBar;
import android.widget.TextView; import android.widget.TextView;
@ -13,6 +15,8 @@ class ContributionViewHolder {
final TextView stateView; final TextView stateView;
final TextView seqNumView; final TextView seqNumView;
final ProgressBar progressView; final ProgressBar progressView;
final ImageButton retryButton;
final ImageButton cancelButton;
ContributionViewHolder(View parent) { ContributionViewHolder(View parent) {
imageView = parent.findViewById(R.id.contributionImage); imageView = parent.findViewById(R.id.contributionImage);
@ -20,5 +24,7 @@ class ContributionViewHolder {
stateView = parent.findViewById(R.id.contributionState); stateView = parent.findViewById(R.id.contributionState);
seqNumView = parent.findViewById(R.id.contributionSequenceNumber); seqNumView = parent.findViewById(R.id.contributionSequenceNumber);
progressView = parent.findViewById(R.id.contributionProgress); progressView = parent.findViewById(R.id.contributionProgress);
retryButton = parent.findViewById(R.id.retryButton);
cancelButton = parent.findViewById(R.id.cancelButton);
} }
} }

View file

@ -3,6 +3,7 @@ package fr.free.nrw.commons.contributions;
import android.content.Context; import android.content.Context;
import android.database.Cursor; import android.database.Cursor;
import android.support.v4.widget.CursorAdapter; import android.support.v4.widget.CursorAdapter;
import android.util.Log;
import android.view.LayoutInflater; import android.view.LayoutInflater;
import android.view.View; import android.view.View;
import android.view.ViewGroup; import android.view.ViewGroup;
@ -37,20 +38,40 @@ class ContributionsListAdapter extends CursorAdapter {
views.seqNumView.setText(String.valueOf(cursor.getPosition() + 1)); views.seqNumView.setText(String.valueOf(cursor.getPosition() + 1));
views.seqNumView.setVisibility(View.VISIBLE); 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()) { switch (contribution.getState()) {
case Contribution.STATE_COMPLETED: case Contribution.STATE_COMPLETED:
views.stateView.setVisibility(View.GONE); views.stateView.setVisibility(View.GONE);
views.progressView.setVisibility(View.GONE); views.progressView.setVisibility(View.GONE);
views.retryButton.setVisibility(View.GONE);
views.cancelButton.setVisibility(View.GONE);
views.stateView.setText(""); views.stateView.setText("");
break; break;
case Contribution.STATE_QUEUED: case Contribution.STATE_QUEUED:
views.stateView.setVisibility(View.VISIBLE); views.stateView.setVisibility(View.VISIBLE);
views.progressView.setVisibility(View.GONE); views.progressView.setVisibility(View.GONE);
views.stateView.setText(R.string.contribution_state_queued); views.stateView.setText(R.string.contribution_state_queued);
views.retryButton.setVisibility(View.GONE);
views.cancelButton.setVisibility(View.GONE);
break; break;
case Contribution.STATE_IN_PROGRESS: case Contribution.STATE_IN_PROGRESS:
views.stateView.setVisibility(View.GONE); views.stateView.setVisibility(View.GONE);
views.progressView.setVisibility(View.VISIBLE); views.progressView.setVisibility(View.VISIBLE);
views.retryButton.setVisibility(View.GONE);
views.cancelButton.setVisibility(View.GONE);
long total = contribution.getDataLength(); long total = contribution.getDataLength();
long transferred = contribution.getTransferred(); long transferred = contribution.getTransferred();
if (transferred == 0 || transferred >= total) { if (transferred == 0 || transferred >= total) {
@ -63,6 +84,8 @@ class ContributionsListAdapter extends CursorAdapter {
views.stateView.setVisibility(View.VISIBLE); views.stateView.setVisibility(View.VISIBLE);
views.stateView.setText(R.string.contribution_state_failed); views.stateView.setText(R.string.contribution_state_failed);
views.progressView.setVisibility(View.GONE); views.progressView.setVisibility(View.GONE);
views.retryButton.setVisibility(View.VISIBLE);
views.cancelButton.setVisibility(View.VISIBLE);
break; break;
} }
} }

View file

@ -8,6 +8,7 @@ import android.support.annotation.NonNull;
import android.support.annotation.Nullable; import android.support.annotation.Nullable;
import android.support.annotation.VisibleForTesting; import android.support.annotation.VisibleForTesting;
import android.text.TextUtils; import android.text.TextUtils;
import android.util.Log;
import com.google.gson.Gson; import com.google.gson.Gson;
@ -897,6 +898,7 @@ public class ApacheHttpClientMediaWikiApi implements MediaWikiApi {
if (!resultStatus.equals("Success")) { if (!resultStatus.equals("Success")) {
String errorCode = result.getString("/api/error/@code"); String errorCode = result.getString("/api/error/@code");
Log.d("deneme","error code: "+errorCode);
Timber.e(errorCode); Timber.e(errorCode);
return new UploadResult(resultStatus, errorCode); return new UploadResult(resultStatus, errorCode);
} else { } else {

Binary file not shown.

After

Width:  |  Height:  |  Size: 351 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 449 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 256 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 279 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 470 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 570 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 764 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 945 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 1,016 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.3 KiB

View file

@ -28,39 +28,83 @@
<LinearLayout <LinearLayout
android:layout_width="match_parent" android:layout_width="match_parent"
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:orientation="horizontal"
android:layout_gravity="center|bottom" android:layout_gravity="center|bottom"
android:background="#AA000000" android:background="#AA000000"
android:orientation="vertical" android:weightSum="4"
android:padding="@dimen/small_gap"
> >
<ProgressBar
android:id="@+id/contributionProgress"
android:layout_width="match_parent"
android:layout_height="wrap_content"
style="@style/ProgressBar"
android:indeterminateOnly="false"
android:max="100"
android:visibility="gone"
/>
<TextView <LinearLayout
android:id="@+id/contributionState" android:layout_width="0dp"
android:layout_width="wrap_content"
android:layout_height="wrap_content" android:layout_height="wrap_content"
style="?android:textAppearanceSmall" android:layout_weight="3"
android:textColor="#FFFFFFFF" android:layout_gravity="center|bottom"
android:visibility="gone" android:orientation="vertical"
/> android:padding="@dimen/small_gap"
>
<ProgressBar
android:id="@+id/contributionProgress"
android:layout_width="match_parent"
android:layout_height="wrap_content"
style="@style/ProgressBar"
android:indeterminateOnly="false"
android:max="100"
android:visibility="gone"
/>
<TextView <TextView
android:id="@+id/contributionTitle" android:id="@+id/contributionState"
android:layout_width="wrap_content" android:layout_width="wrap_content"
android:layout_height="wrap_content"
style="?android:textAppearanceSmall"
android:textColor="#FFFFFFFF"
android:visibility="gone"
/>
<TextView
android:id="@+id/contributionTitle"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:textColor="#FFFFFFFF"
style="?android:textAppearanceMedium"
android:maxLines="2"
android:ellipsize="end"
/>
</LinearLayout>
<LinearLayout
android:layout_width="0dp"
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:textColor="#FFFFFFFF" android:layout_weight="1"
style="?android:textAppearanceMedium" android:orientation="horizontal"
android:maxLines="2" android:padding="@dimen/small_gap"
android:ellipsize="end" >
/>
<ImageButton
android:id="@+id/cancelButton"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:src="@drawable/ic_cancel_white"
android:text="@string/menu_cancel_upload"
android:background="@android:color/transparent"
android:layout_margin="8dp"
android:visibility="gone"
/>
<ImageButton
android:id="@+id/retryButton"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:src="@drawable/ic_retry_white"
android:text="@string/menu_retry_upload"
android:background="@android:color/transparent"
android:layout_margin="8dp"
android:visibility="gone"
/>
</LinearLayout>
</LinearLayout> </LinearLayout>
</FrameLayout> </FrameLayout>