mirror of
https://github.com/commons-app/apps-android-commons.git
synced 2025-10-26 12:23:58 +01:00
Migrated Contributions Package From Butterknife to ViewBinding (#5593)
* Butterknife to ViewBinding * code fix to pass all tests * test fix * test fix * test fix * test fix * Update ContributionsFragmentUnitTests.kt * code cleanup and tests improved * tests fixed * adjustments and code cleanup * adjustments and code cleanup
This commit is contained in:
parent
2076bf9b29
commit
c94f607107
7 changed files with 127 additions and 190 deletions
|
|
@ -12,14 +12,12 @@ import androidx.annotation.Nullable;
|
||||||
import androidx.appcompat.app.AlertDialog;
|
import androidx.appcompat.app.AlertDialog;
|
||||||
import androidx.appcompat.app.AlertDialog.Builder;
|
import androidx.appcompat.app.AlertDialog.Builder;
|
||||||
import androidx.recyclerview.widget.RecyclerView;
|
import androidx.recyclerview.widget.RecyclerView;
|
||||||
import butterknife.BindView;
|
|
||||||
import butterknife.ButterKnife;
|
|
||||||
import butterknife.OnClick;
|
|
||||||
import com.facebook.drawee.view.SimpleDraweeView;
|
import com.facebook.drawee.view.SimpleDraweeView;
|
||||||
import com.facebook.imagepipeline.request.ImageRequest;
|
import com.facebook.imagepipeline.request.ImageRequest;
|
||||||
import com.facebook.imagepipeline.request.ImageRequestBuilder;
|
import com.facebook.imagepipeline.request.ImageRequestBuilder;
|
||||||
import fr.free.nrw.commons.R;
|
import fr.free.nrw.commons.R;
|
||||||
import fr.free.nrw.commons.contributions.ContributionsListAdapter.Callback;
|
import fr.free.nrw.commons.contributions.ContributionsListAdapter.Callback;
|
||||||
|
import fr.free.nrw.commons.databinding.LayoutContributionBinding;
|
||||||
import fr.free.nrw.commons.media.MediaClient;
|
import fr.free.nrw.commons.media.MediaClient;
|
||||||
import io.reactivex.android.schedulers.AndroidSchedulers;
|
import io.reactivex.android.schedulers.AndroidSchedulers;
|
||||||
import io.reactivex.disposables.CompositeDisposable;
|
import io.reactivex.disposables.CompositeDisposable;
|
||||||
|
|
@ -29,29 +27,8 @@ import java.io.File;
|
||||||
public class ContributionViewHolder extends RecyclerView.ViewHolder {
|
public class ContributionViewHolder extends RecyclerView.ViewHolder {
|
||||||
|
|
||||||
private final Callback callback;
|
private final Callback callback;
|
||||||
@BindView(R.id.contributionImage)
|
|
||||||
SimpleDraweeView imageView;
|
|
||||||
@BindView(R.id.contributionTitle)
|
|
||||||
TextView titleView;
|
|
||||||
@BindView(R.id.authorView)
|
|
||||||
TextView authorView;
|
|
||||||
@BindView(R.id.contributionState)
|
|
||||||
TextView stateView;
|
|
||||||
@BindView(R.id.contributionSequenceNumber)
|
|
||||||
TextView seqNumView;
|
|
||||||
@BindView(R.id.contributionProgress)
|
|
||||||
ProgressBar progressView;
|
|
||||||
@BindView(R.id.image_options)
|
|
||||||
RelativeLayout imageOptions;
|
|
||||||
@BindView(R.id.wikipediaButton)
|
|
||||||
ImageButton addToWikipediaButton;
|
|
||||||
@BindView(R.id.retryButton)
|
|
||||||
ImageButton retryButton;
|
|
||||||
@BindView(R.id.cancelButton)
|
|
||||||
ImageButton cancelButton;
|
|
||||||
@BindView(R.id.pauseResumeButton)
|
|
||||||
ImageButton pauseResumeButton;
|
|
||||||
|
|
||||||
|
LayoutContributionBinding binding;
|
||||||
|
|
||||||
private int position;
|
private int position;
|
||||||
private Contribution contribution;
|
private Contribution contribution;
|
||||||
|
|
@ -67,9 +44,16 @@ public class ContributionViewHolder extends RecyclerView.ViewHolder {
|
||||||
super(parent);
|
super(parent);
|
||||||
this.parent = parent;
|
this.parent = parent;
|
||||||
this.mediaClient = mediaClient;
|
this.mediaClient = mediaClient;
|
||||||
ButterKnife.bind(this, parent);
|
|
||||||
this.callback = callback;
|
this.callback = callback;
|
||||||
|
|
||||||
|
binding = LayoutContributionBinding.bind(parent);
|
||||||
|
|
||||||
|
binding.retryButton.setOnClickListener(v -> retryUpload());
|
||||||
|
binding.cancelButton.setOnClickListener(v -> deleteUpload());
|
||||||
|
binding.contributionImage.setOnClickListener(v -> imageClicked());
|
||||||
|
binding.wikipediaButton.setOnClickListener(v -> wikipediaButtonClicked());
|
||||||
|
binding.pauseResumeButton.setOnClickListener(v -> onPauseResumeButtonClicked());
|
||||||
|
|
||||||
/* Set a dialog indicating that the upload is being paused. This is needed because pausing
|
/* Set a dialog indicating that the upload is being paused. This is needed because pausing
|
||||||
an upload might take a dozen seconds. */
|
an upload might take a dozen seconds. */
|
||||||
AlertDialog.Builder builder = new Builder(parent.getContext());
|
AlertDialog.Builder builder = new Builder(parent.getContext());
|
||||||
|
|
@ -87,14 +71,17 @@ public class ContributionViewHolder extends RecyclerView.ViewHolder {
|
||||||
|
|
||||||
this.contribution = contribution;
|
this.contribution = contribution;
|
||||||
this.position = position;
|
this.position = position;
|
||||||
titleView.setText(contribution.getMedia().getMostRelevantCaption());
|
binding.contributionTitle.setText(contribution.getMedia().getMostRelevantCaption());
|
||||||
authorView.setText(contribution.getMedia().getAuthor());
|
binding.authorView.setText(contribution.getMedia().getAuthor());
|
||||||
|
|
||||||
//Removes flicker of loading image.
|
//Removes flicker of loading image.
|
||||||
imageView.getHierarchy().setFadeDuration(0);
|
binding.contributionImage.getHierarchy().setFadeDuration(0);
|
||||||
|
|
||||||
imageView.getHierarchy().setPlaceholderImage(R.drawable.image_placeholder);
|
binding.contributionImage.getHierarchy().setPlaceholderImage(R.drawable.image_placeholder);
|
||||||
imageView.getHierarchy().setFailureImage(R.drawable.image_placeholder);
|
binding.contributionImage.getHierarchy().setFailureImage(R.drawable.image_placeholder);
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
final String imageSource = chooseImageSource(contribution.getMedia().getThumbUrl(),
|
final String imageSource = chooseImageSource(contribution.getMedia().getThumbUrl(),
|
||||||
contribution.getLocalUri());
|
contribution.getLocalUri());
|
||||||
|
|
@ -109,67 +96,67 @@ public class ContributionViewHolder extends RecyclerView.ViewHolder {
|
||||||
}
|
}
|
||||||
|
|
||||||
if(imageRequest != null){
|
if(imageRequest != null){
|
||||||
imageView.setImageRequest(imageRequest);
|
binding.contributionImage.setImageRequest(imageRequest);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
seqNumView.setText(String.valueOf(position + 1));
|
binding.contributionSequenceNumber.setText(String.valueOf(position + 1));
|
||||||
seqNumView.setVisibility(View.VISIBLE);
|
binding.contributionSequenceNumber.setVisibility(View.VISIBLE);
|
||||||
|
|
||||||
addToWikipediaButton.setVisibility(View.GONE);
|
binding.wikipediaButton.setVisibility(View.GONE);
|
||||||
switch (contribution.getState()) {
|
switch (contribution.getState()) {
|
||||||
case Contribution.STATE_COMPLETED:
|
case Contribution.STATE_COMPLETED:
|
||||||
stateView.setVisibility(View.GONE);
|
binding.contributionState.setVisibility(View.GONE);
|
||||||
progressView.setVisibility(View.GONE);
|
binding.contributionProgress.setVisibility(View.GONE);
|
||||||
imageOptions.setVisibility(View.GONE);
|
binding.imageOptions.setVisibility(View.GONE);
|
||||||
stateView.setText("");
|
binding.contributionState.setText("");
|
||||||
checkIfMediaExistsOnWikipediaPage(contribution);
|
checkIfMediaExistsOnWikipediaPage(contribution);
|
||||||
break;
|
break;
|
||||||
case Contribution.STATE_QUEUED:
|
case Contribution.STATE_QUEUED:
|
||||||
case Contribution.STATE_QUEUED_LIMITED_CONNECTION_MODE:
|
case Contribution.STATE_QUEUED_LIMITED_CONNECTION_MODE:
|
||||||
progressView.setVisibility(View.GONE);
|
binding.contributionProgress.setVisibility(View.GONE);
|
||||||
stateView.setVisibility(View.VISIBLE);
|
binding.contributionState.setVisibility(View.VISIBLE);
|
||||||
stateView.setText(R.string.contribution_state_queued);
|
binding.contributionState.setText(R.string.contribution_state_queued);
|
||||||
imageOptions.setVisibility(View.GONE);
|
binding.imageOptions.setVisibility(View.GONE);
|
||||||
break;
|
break;
|
||||||
case Contribution.STATE_IN_PROGRESS:
|
case Contribution.STATE_IN_PROGRESS:
|
||||||
stateView.setVisibility(View.GONE);
|
binding.contributionState.setVisibility(View.GONE);
|
||||||
progressView.setVisibility(View.VISIBLE);
|
binding.contributionProgress.setVisibility(View.VISIBLE);
|
||||||
addToWikipediaButton.setVisibility(View.GONE);
|
binding.wikipediaButton.setVisibility(View.GONE);
|
||||||
pauseResumeButton.setVisibility(View.VISIBLE);
|
binding.pauseResumeButton.setVisibility(View.VISIBLE);
|
||||||
cancelButton.setVisibility(View.GONE);
|
binding.cancelButton.setVisibility(View.GONE);
|
||||||
retryButton.setVisibility(View.GONE);
|
binding.retryButton.setVisibility(View.GONE);
|
||||||
imageOptions.setVisibility(View.VISIBLE);
|
binding.imageOptions.setVisibility(View.VISIBLE);
|
||||||
final long total = contribution.getDataLength();
|
final long total = contribution.getDataLength();
|
||||||
final long transferred = contribution.getTransferred();
|
final long transferred = contribution.getTransferred();
|
||||||
if (transferred == 0 || transferred >= total) {
|
if (transferred == 0 || transferred >= total) {
|
||||||
progressView.setIndeterminate(true);
|
binding.contributionProgress.setIndeterminate(true);
|
||||||
} else {
|
} else {
|
||||||
progressView.setIndeterminate(false);
|
binding.contributionProgress.setIndeterminate(false);
|
||||||
progressView.setProgress((int) (((double) transferred / (double) total) * 100));
|
binding.contributionProgress.setProgress((int) (((double) transferred / (double) total) * 100));
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
case Contribution.STATE_PAUSED:
|
case Contribution.STATE_PAUSED:
|
||||||
progressView.setVisibility(View.GONE);
|
binding.contributionProgress.setVisibility(View.GONE);
|
||||||
stateView.setVisibility(View.VISIBLE);
|
binding.contributionState.setVisibility(View.VISIBLE);
|
||||||
stateView.setText(R.string.paused);
|
binding.contributionState.setText(R.string.paused);
|
||||||
cancelButton.setVisibility(View.VISIBLE);
|
binding.cancelButton.setVisibility(View.VISIBLE);
|
||||||
retryButton.setVisibility(View.GONE);
|
binding.retryButton.setVisibility(View.GONE);
|
||||||
pauseResumeButton.setVisibility(View.VISIBLE);
|
binding.pauseResumeButton.setVisibility(View.VISIBLE);
|
||||||
imageOptions.setVisibility(View.VISIBLE);
|
binding.imageOptions.setVisibility(View.VISIBLE);
|
||||||
setResume();
|
setResume();
|
||||||
if(pausingPopUp.isShowing()){
|
if(pausingPopUp.isShowing()){
|
||||||
pausingPopUp.hide();
|
pausingPopUp.hide();
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
case Contribution.STATE_FAILED:
|
case Contribution.STATE_FAILED:
|
||||||
stateView.setVisibility(View.VISIBLE);
|
binding.contributionState.setVisibility(View.VISIBLE);
|
||||||
stateView.setText(R.string.contribution_state_failed);
|
binding.contributionState.setText(R.string.contribution_state_failed);
|
||||||
progressView.setVisibility(View.GONE);
|
binding.contributionProgress.setVisibility(View.GONE);
|
||||||
cancelButton.setVisibility(View.VISIBLE);
|
binding.cancelButton.setVisibility(View.VISIBLE);
|
||||||
retryButton.setVisibility(View.VISIBLE);
|
binding.retryButton.setVisibility(View.VISIBLE);
|
||||||
pauseResumeButton.setVisibility(View.GONE);
|
binding.pauseResumeButton.setVisibility(View.GONE);
|
||||||
imageOptions.setVisibility(View.VISIBLE);
|
binding.imageOptions.setVisibility(View.VISIBLE);
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
@ -203,11 +190,11 @@ public class ContributionViewHolder extends RecyclerView.ViewHolder {
|
||||||
*/
|
*/
|
||||||
private void displayWikipediaButton(Boolean mediaExists) {
|
private void displayWikipediaButton(Boolean mediaExists) {
|
||||||
if (!mediaExists) {
|
if (!mediaExists) {
|
||||||
addToWikipediaButton.setVisibility(View.VISIBLE);
|
binding.wikipediaButton.setVisibility(View.VISIBLE);
|
||||||
isWikipediaButtonDisplayed = true;
|
isWikipediaButtonDisplayed = true;
|
||||||
cancelButton.setVisibility(View.GONE);
|
binding.cancelButton.setVisibility(View.GONE);
|
||||||
retryButton.setVisibility(View.GONE);
|
binding.retryButton.setVisibility(View.GONE);
|
||||||
imageOptions.setVisibility(View.VISIBLE);
|
binding.imageOptions.setVisibility(View.VISIBLE);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -229,7 +216,6 @@ public class ContributionViewHolder extends RecyclerView.ViewHolder {
|
||||||
/**
|
/**
|
||||||
* Retry upload when it is failed
|
* Retry upload when it is failed
|
||||||
*/
|
*/
|
||||||
@OnClick(R.id.retryButton)
|
|
||||||
public void retryUpload() {
|
public void retryUpload() {
|
||||||
callback.retryUpload(contribution);
|
callback.retryUpload(contribution);
|
||||||
}
|
}
|
||||||
|
|
@ -237,17 +223,14 @@ public class ContributionViewHolder extends RecyclerView.ViewHolder {
|
||||||
/**
|
/**
|
||||||
* Delete a failed upload attempt
|
* Delete a failed upload attempt
|
||||||
*/
|
*/
|
||||||
@OnClick(R.id.cancelButton)
|
|
||||||
public void deleteUpload() {
|
public void deleteUpload() {
|
||||||
callback.deleteUpload(contribution);
|
callback.deleteUpload(contribution);
|
||||||
}
|
}
|
||||||
|
|
||||||
@OnClick(R.id.contributionImage)
|
|
||||||
public void imageClicked() {
|
public void imageClicked() {
|
||||||
callback.openMediaDetail(position, isWikipediaButtonDisplayed);
|
callback.openMediaDetail(position, isWikipediaButtonDisplayed);
|
||||||
}
|
}
|
||||||
|
|
||||||
@OnClick(R.id.wikipediaButton)
|
|
||||||
public void wikipediaButtonClicked() {
|
public void wikipediaButtonClicked() {
|
||||||
callback.addImageToWikipedia(contribution);
|
callback.addImageToWikipedia(contribution);
|
||||||
}
|
}
|
||||||
|
|
@ -255,9 +238,8 @@ public class ContributionViewHolder extends RecyclerView.ViewHolder {
|
||||||
/**
|
/**
|
||||||
* Triggers a callback for pause/resume
|
* Triggers a callback for pause/resume
|
||||||
*/
|
*/
|
||||||
@OnClick(R.id.pauseResumeButton)
|
|
||||||
public void onPauseResumeButtonClicked() {
|
public void onPauseResumeButtonClicked() {
|
||||||
if (pauseResumeButton.getTag().toString().equals("pause")) {
|
if (binding.pauseResumeButton.getTag().toString().equals("pause")) {
|
||||||
pause();
|
pause();
|
||||||
} else {
|
} else {
|
||||||
resume();
|
resume();
|
||||||
|
|
@ -279,16 +261,16 @@ public class ContributionViewHolder extends RecyclerView.ViewHolder {
|
||||||
* Update pause/resume button to show pause state
|
* Update pause/resume button to show pause state
|
||||||
*/
|
*/
|
||||||
private void setPaused() {
|
private void setPaused() {
|
||||||
pauseResumeButton.setImageResource(R.drawable.pause_icon);
|
binding.pauseResumeButton.setImageResource(R.drawable.pause_icon);
|
||||||
pauseResumeButton.setTag(parent.getContext().getString(R.string.pause));
|
binding.pauseResumeButton.setTag(parent.getContext().getString(R.string.pause));
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Update pause/resume button to show resume state
|
* Update pause/resume button to show resume state
|
||||||
*/
|
*/
|
||||||
private void setResume() {
|
private void setResume() {
|
||||||
pauseResumeButton.setImageResource(R.drawable.play_icon);
|
binding.pauseResumeButton.setImageResource(R.drawable.play_icon);
|
||||||
pauseResumeButton.setTag(parent.getContext().getString(R.string.resume));
|
binding.pauseResumeButton.setTag(parent.getContext().getString(R.string.resume));
|
||||||
}
|
}
|
||||||
|
|
||||||
public ImageRequest getImageRequest() {
|
public ImageRequest getImageRequest() {
|
||||||
|
|
|
||||||
|
|
@ -39,6 +39,7 @@ import androidx.fragment.app.FragmentTransaction;
|
||||||
import fr.free.nrw.commons.CommonsApplication;
|
import fr.free.nrw.commons.CommonsApplication;
|
||||||
import fr.free.nrw.commons.Utils;
|
import fr.free.nrw.commons.Utils;
|
||||||
import fr.free.nrw.commons.auth.SessionManager;
|
import fr.free.nrw.commons.auth.SessionManager;
|
||||||
|
import fr.free.nrw.commons.databinding.FragmentContributionsBinding;
|
||||||
import fr.free.nrw.commons.notification.models.Notification;
|
import fr.free.nrw.commons.notification.models.Notification;
|
||||||
import fr.free.nrw.commons.notification.NotificationController;
|
import fr.free.nrw.commons.notification.NotificationController;
|
||||||
import fr.free.nrw.commons.profile.ProfileActivity;
|
import fr.free.nrw.commons.profile.ProfileActivity;
|
||||||
|
|
@ -49,8 +50,6 @@ import java.util.Map;
|
||||||
import javax.inject.Inject;
|
import javax.inject.Inject;
|
||||||
import javax.inject.Named;
|
import javax.inject.Named;
|
||||||
import androidx.work.WorkManager;
|
import androidx.work.WorkManager;
|
||||||
import butterknife.BindView;
|
|
||||||
import butterknife.ButterKnife;
|
|
||||||
import fr.free.nrw.commons.Media;
|
import fr.free.nrw.commons.Media;
|
||||||
import fr.free.nrw.commons.R;
|
import fr.free.nrw.commons.R;
|
||||||
import fr.free.nrw.commons.campaigns.models.Campaign;
|
import fr.free.nrw.commons.campaigns.models.Campaign;
|
||||||
|
|
@ -106,10 +105,8 @@ public class ContributionsFragment
|
||||||
static final String MEDIA_DETAIL_PAGER_FRAGMENT_TAG = "MediaDetailFragmentTag";
|
static final String MEDIA_DETAIL_PAGER_FRAGMENT_TAG = "MediaDetailFragmentTag";
|
||||||
private static final int MAX_RETRIES = 10;
|
private static final int MAX_RETRIES = 10;
|
||||||
|
|
||||||
@BindView(R.id.card_view_nearby) public NearbyNotificationCardView nearbyNotificationCardView;
|
|
||||||
@BindView(R.id.campaigns_view) CampaignView campaignView;
|
public FragmentContributionsBinding binding;
|
||||||
@BindView(R.id.limited_connection_enabled_layout) LinearLayout limitedConnectionEnabledLayout;
|
|
||||||
@BindView(R.id.limited_connection_description_text_view) TextView limitedConnectionDescriptionTextView;
|
|
||||||
|
|
||||||
@Inject ContributionsPresenter contributionsPresenter;
|
@Inject ContributionsPresenter contributionsPresenter;
|
||||||
|
|
||||||
|
|
@ -147,7 +144,7 @@ public class ContributionsFragment
|
||||||
&& store.getBoolean("displayLocationPermissionForCardView", true)
|
&& store.getBoolean("displayLocationPermissionForCardView", true)
|
||||||
&& !store.getBoolean("doNotAskForLocationPermission", false)
|
&& !store.getBoolean("doNotAskForLocationPermission", false)
|
||||||
&& (((MainActivity) getActivity()).activeFragment == ActiveFragment.CONTRIBUTIONS)) {
|
&& (((MainActivity) getActivity()).activeFragment == ActiveFragment.CONTRIBUTIONS)) {
|
||||||
nearbyNotificationCardView.permissionType = NearbyNotificationCardView.PermissionType.ENABLE_LOCATION_PERMISSION;
|
binding.cardViewNearby.permissionType = NearbyNotificationCardView.PermissionType.ENABLE_LOCATION_PERMISSION;
|
||||||
showNearbyCardPermissionRationale();
|
showNearbyCardPermissionRationale();
|
||||||
} else {
|
} else {
|
||||||
displayYouWontSeeNearbyMessage();
|
displayYouWontSeeNearbyMessage();
|
||||||
|
|
@ -179,12 +176,13 @@ public class ContributionsFragment
|
||||||
@Nullable
|
@Nullable
|
||||||
@Override
|
@Override
|
||||||
public View onCreateView(LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) {
|
public View onCreateView(LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) {
|
||||||
View view = inflater.inflate(R.layout.fragment_contributions, container, false);
|
|
||||||
ButterKnife.bind(this, view);
|
binding = FragmentContributionsBinding.inflate(inflater, container, false);
|
||||||
|
|
||||||
initWLMCampaign();
|
initWLMCampaign();
|
||||||
presenter.onAttachView(this);
|
presenter.onAttachView(this);
|
||||||
contributionsPresenter.onAttachView(this);
|
contributionsPresenter.onAttachView(this);
|
||||||
campaignView.setVisibility(View.GONE);
|
binding.campaignsView.setVisibility(View.GONE);
|
||||||
checkBoxView = View.inflate(getActivity(), R.layout.nearby_permission_dialog, null);
|
checkBoxView = View.inflate(getActivity(), R.layout.nearby_permission_dialog, null);
|
||||||
checkBox = (CheckBox) checkBoxView.findViewById(R.id.never_ask_again);
|
checkBox = (CheckBox) checkBoxView.findViewById(R.id.never_ask_again);
|
||||||
checkBox.setOnCheckedChangeListener((buttonView, isChecked) -> {
|
checkBox.setOnCheckedChangeListener((buttonView, isChecked) -> {
|
||||||
|
|
@ -204,7 +202,7 @@ public class ContributionsFragment
|
||||||
|
|
||||||
initFragments();
|
initFragments();
|
||||||
if(isUserProfile) {
|
if(isUserProfile) {
|
||||||
limitedConnectionEnabledLayout.setVisibility(View.GONE);
|
binding.limitedConnectionEnabledLayout.setVisibility(View.GONE);
|
||||||
}else {
|
}else {
|
||||||
upDateUploadCount();
|
upDateUploadCount();
|
||||||
}
|
}
|
||||||
|
|
@ -221,9 +219,9 @@ public class ContributionsFragment
|
||||||
&& sessionManager.getCurrentAccount() != null && !isUserProfile) {
|
&& sessionManager.getCurrentAccount() != null && !isUserProfile) {
|
||||||
setUploadCount();
|
setUploadCount();
|
||||||
}
|
}
|
||||||
limitedConnectionEnabledLayout.setOnClickListener(toggleDescriptionListener);
|
binding.limitedConnectionEnabledLayout.setOnClickListener(toggleDescriptionListener);
|
||||||
setHasOptionsMenu(true);
|
setHasOptionsMenu(true);
|
||||||
return view;
|
return binding.getRoot();
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|
@ -283,22 +281,17 @@ public class ContributionsFragment
|
||||||
.getBoolean(CommonsApplication.IS_LIMITED_CONNECTION_MODE_ENABLED, false);
|
.getBoolean(CommonsApplication.IS_LIMITED_CONNECTION_MODE_ENABLED, false);
|
||||||
|
|
||||||
checkable.setChecked(isEnabled);
|
checkable.setChecked(isEnabled);
|
||||||
if (isEnabled) {
|
if (binding!=null) {
|
||||||
limitedConnectionEnabledLayout.setVisibility(View.VISIBLE);
|
binding.limitedConnectionEnabledLayout.setVisibility(isEnabled ? View.VISIBLE : View.GONE);
|
||||||
} else {
|
|
||||||
limitedConnectionEnabledLayout.setVisibility(View.GONE);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
checkable.setIcon((isEnabled) ? R.drawable.ic_baseline_cloud_off_24:R.drawable.ic_baseline_cloud_queue_24);
|
checkable.setIcon((isEnabled) ? R.drawable.ic_baseline_cloud_off_24:R.drawable.ic_baseline_cloud_queue_24);
|
||||||
checkable.setOnMenuItemClickListener(new OnMenuItemClickListener() {
|
checkable.setOnMenuItemClickListener(new OnMenuItemClickListener() {
|
||||||
@Override
|
@Override
|
||||||
public boolean onMenuItemClick(MenuItem item) {
|
public boolean onMenuItemClick(MenuItem item) {
|
||||||
((MainActivity) getActivity()).toggleLimitedConnectionMode();
|
((MainActivity) getActivity()).toggleLimitedConnectionMode();
|
||||||
boolean isEnabled = store.getBoolean(CommonsApplication.IS_LIMITED_CONNECTION_MODE_ENABLED, false);
|
boolean isEnabled = store.getBoolean(CommonsApplication.IS_LIMITED_CONNECTION_MODE_ENABLED, false);
|
||||||
if (isEnabled) {
|
binding.limitedConnectionEnabledLayout.setVisibility(isEnabled ? View.VISIBLE : View.GONE);
|
||||||
limitedConnectionEnabledLayout.setVisibility(View.VISIBLE);
|
|
||||||
} else {
|
|
||||||
limitedConnectionEnabledLayout.setVisibility(View.GONE);
|
|
||||||
}
|
|
||||||
checkable.setIcon((isEnabled) ? R.drawable.ic_baseline_cloud_off_24:R.drawable.ic_baseline_cloud_queue_24);
|
checkable.setIcon((isEnabled) ? R.drawable.ic_baseline_cloud_off_24:R.drawable.ic_baseline_cloud_queue_24);
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
@ -326,14 +319,14 @@ public class ContributionsFragment
|
||||||
*/
|
*/
|
||||||
private void showContributionsListFragment() {
|
private void showContributionsListFragment() {
|
||||||
// show nearby card view on contributions list is visible
|
// show nearby card view on contributions list is visible
|
||||||
if (nearbyNotificationCardView != null && !isUserProfile) {
|
if (binding.cardViewNearby != null && !isUserProfile) {
|
||||||
if (store.getBoolean("displayNearbyCardView", true)) {
|
if (store.getBoolean("displayNearbyCardView", true)) {
|
||||||
if (nearbyNotificationCardView.cardViewVisibilityState
|
if (binding.cardViewNearby.cardViewVisibilityState
|
||||||
== NearbyNotificationCardView.CardViewVisibilityState.READY) {
|
== NearbyNotificationCardView.CardViewVisibilityState.READY) {
|
||||||
nearbyNotificationCardView.setVisibility(View.VISIBLE);
|
binding.cardViewNearby.setVisibility(View.VISIBLE);
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
nearbyNotificationCardView.setVisibility(View.GONE);
|
binding.cardViewNearby.setVisibility(View.GONE);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
showFragment(contributionsListFragment, CONTRIBUTION_LIST_FRAGMENT_TAG, mediaDetailPagerFragment);
|
showFragment(contributionsListFragment, CONTRIBUTION_LIST_FRAGMENT_TAG, mediaDetailPagerFragment);
|
||||||
|
|
@ -346,8 +339,9 @@ public class ContributionsFragment
|
||||||
}
|
}
|
||||||
|
|
||||||
private void setupViewForMediaDetails() {
|
private void setupViewForMediaDetails() {
|
||||||
campaignView.setVisibility(View.GONE);
|
if (binding!=null) {
|
||||||
nearbyNotificationCardView.setVisibility(View.GONE);
|
binding.campaignsView.setVisibility(View.GONE);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
|
|
@ -453,7 +447,12 @@ public class ContributionsFragment
|
||||||
super.onResume();
|
super.onResume();
|
||||||
contributionsPresenter.onAttachView(this);
|
contributionsPresenter.onAttachView(this);
|
||||||
locationManager.addLocationListener(this);
|
locationManager.addLocationListener(this);
|
||||||
nearbyNotificationCardView.permissionRequestButton.setOnClickListener(v -> {
|
|
||||||
|
if (binding==null) {
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
binding.cardViewNearby.permissionRequestButton.setOnClickListener(v -> {
|
||||||
showNearbyCardPermissionRationale();
|
showNearbyCardPermissionRationale();
|
||||||
});
|
});
|
||||||
|
|
||||||
|
|
@ -468,13 +467,13 @@ public class ContributionsFragment
|
||||||
} catch (Exception e) {
|
} catch (Exception e) {
|
||||||
Timber.e(e);
|
Timber.e(e);
|
||||||
}
|
}
|
||||||
if (nearbyNotificationCardView.cardViewVisibilityState == NearbyNotificationCardView.CardViewVisibilityState.READY) {
|
if (binding.cardViewNearby.cardViewVisibilityState == NearbyNotificationCardView.CardViewVisibilityState.READY) {
|
||||||
nearbyNotificationCardView.setVisibility(View.VISIBLE);
|
binding.cardViewNearby.setVisibility(View.VISIBLE);
|
||||||
}
|
}
|
||||||
|
|
||||||
} else {
|
} else {
|
||||||
// Hide nearby notification card view if related shared preferences is false
|
// Hide nearby notification card view if related shared preferences is false
|
||||||
nearbyNotificationCardView.setVisibility(View.GONE);
|
binding.cardViewNearby.setVisibility(View.GONE);
|
||||||
}
|
}
|
||||||
|
|
||||||
// Notification Count and Campaigns should not be set, if it is used in User Profile
|
// Notification Count and Campaigns should not be set, if it is used in User Profile
|
||||||
|
|
@ -493,7 +492,7 @@ public class ContributionsFragment
|
||||||
&& store.getBoolean("displayLocationPermissionForCardView", true)
|
&& store.getBoolean("displayLocationPermissionForCardView", true)
|
||||||
&& !store.getBoolean("doNotAskForLocationPermission", false)
|
&& !store.getBoolean("doNotAskForLocationPermission", false)
|
||||||
&& (((MainActivity) getActivity()).activeFragment == ActiveFragment.CONTRIBUTIONS)) {
|
&& (((MainActivity) getActivity()).activeFragment == ActiveFragment.CONTRIBUTIONS)) {
|
||||||
nearbyNotificationCardView.permissionType = NearbyNotificationCardView.PermissionType.ENABLE_LOCATION_PERMISSION;
|
binding.cardViewNearby.permissionType = NearbyNotificationCardView.PermissionType.ENABLE_LOCATION_PERMISSION;
|
||||||
showNearbyCardPermissionRationale();
|
showNearbyCardPermissionRationale();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
@ -503,7 +502,7 @@ public class ContributionsFragment
|
||||||
}
|
}
|
||||||
|
|
||||||
private void onLocationPermissionGranted() {
|
private void onLocationPermissionGranted() {
|
||||||
nearbyNotificationCardView.permissionType = NearbyNotificationCardView.PermissionType.NO_PERMISSION_NEEDED;
|
binding.cardViewNearby.permissionType = NearbyNotificationCardView.PermissionType.NO_PERMISSION_NEEDED;
|
||||||
locationManager.registerLocationManager();
|
locationManager.registerLocationManager();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -548,21 +547,21 @@ public class ContributionsFragment
|
||||||
}
|
}
|
||||||
|
|
||||||
if(closestNearbyPlace == null) {
|
if(closestNearbyPlace == null) {
|
||||||
nearbyNotificationCardView.setVisibility(View.GONE);
|
binding.cardViewNearby.setVisibility(View.GONE);
|
||||||
}else{
|
}else{
|
||||||
String distance = formatDistanceBetween(curLatLng, closestNearbyPlace.location);
|
String distance = formatDistanceBetween(curLatLng, closestNearbyPlace.location);
|
||||||
closestNearbyPlace.setDistance(distance);
|
closestNearbyPlace.setDistance(distance);
|
||||||
direction = (float) computeBearing(curLatLng, closestNearbyPlace.location);
|
direction = (float) computeBearing(curLatLng, closestNearbyPlace.location);
|
||||||
nearbyNotificationCardView.updateContent(closestNearbyPlace);
|
binding.cardViewNearby.updateContent(closestNearbyPlace);
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
// Means that no close nearby place is found
|
// Means that no close nearby place is found
|
||||||
nearbyNotificationCardView.setVisibility(View.GONE);
|
binding.cardViewNearby.setVisibility(View.GONE);
|
||||||
}
|
}
|
||||||
|
|
||||||
// Prevent Nearby banner from appearing in Media Details, fixing bug https://github.com/commons-app/apps-android-commons/issues/4731
|
// Prevent Nearby banner from appearing in Media Details, fixing bug https://github.com/commons-app/apps-android-commons/issues/4731
|
||||||
if (mediaDetailPagerFragment != null && !contributionsListFragment.isVisible()) {
|
if (mediaDetailPagerFragment != null && !contributionsListFragment.isVisible()) {
|
||||||
nearbyNotificationCardView.setVisibility(View.GONE);
|
binding.cardViewNearby.setVisibility(View.GONE);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -614,12 +613,16 @@ public class ContributionsFragment
|
||||||
*/
|
*/
|
||||||
private void fetchCampaigns() {
|
private void fetchCampaigns() {
|
||||||
if (Utils.isMonumentsEnabled(new Date())) {
|
if (Utils.isMonumentsEnabled(new Date())) {
|
||||||
campaignView.setCampaign(wlmCampaign);
|
if (binding!=null) {
|
||||||
campaignView.setVisibility(View.VISIBLE);
|
binding.campaignsView.setCampaign(wlmCampaign);
|
||||||
|
binding.campaignsView.setVisibility(View.VISIBLE);
|
||||||
|
}
|
||||||
} else if (store.getBoolean(CampaignView.CAMPAIGNS_DEFAULT_PREFERENCE, true)) {
|
} else if (store.getBoolean(CampaignView.CAMPAIGNS_DEFAULT_PREFERENCE, true)) {
|
||||||
presenter.getCampaigns();
|
presenter.getCampaigns();
|
||||||
} else {
|
} else {
|
||||||
campaignView.setVisibility(View.GONE);
|
if (binding!=null) {
|
||||||
|
binding.campaignsView.setVisibility(View.GONE);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -629,7 +632,9 @@ public class ContributionsFragment
|
||||||
|
|
||||||
@Override public void showCampaigns(Campaign campaign) {
|
@Override public void showCampaigns(Campaign campaign) {
|
||||||
if (campaign != null && !isUserProfile) {
|
if (campaign != null && !isUserProfile) {
|
||||||
campaignView.setCampaign(campaign);
|
if (binding!=null) {
|
||||||
|
binding.campaignsView.setCampaign(campaign);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -746,11 +751,11 @@ public class ContributionsFragment
|
||||||
public boolean backButtonClicked() {
|
public boolean backButtonClicked() {
|
||||||
if (mediaDetailPagerFragment != null && mediaDetailPagerFragment.isVisible()) {
|
if (mediaDetailPagerFragment != null && mediaDetailPagerFragment.isVisible()) {
|
||||||
if (store.getBoolean("displayNearbyCardView", true) && !isUserProfile) {
|
if (store.getBoolean("displayNearbyCardView", true) && !isUserProfile) {
|
||||||
if (nearbyNotificationCardView.cardViewVisibilityState == NearbyNotificationCardView.CardViewVisibilityState.READY) {
|
if (binding.cardViewNearby.cardViewVisibilityState == NearbyNotificationCardView.CardViewVisibilityState.READY) {
|
||||||
nearbyNotificationCardView.setVisibility(View.VISIBLE);
|
binding.cardViewNearby.setVisibility(View.VISIBLE);
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
nearbyNotificationCardView.setVisibility(View.GONE);
|
binding.cardViewNearby.setVisibility(View.GONE);
|
||||||
}
|
}
|
||||||
removeFragment(mediaDetailPagerFragment);
|
removeFragment(mediaDetailPagerFragment);
|
||||||
showFragment(contributionsListFragment, CONTRIBUTION_LIST_FRAGMENT_TAG, mediaDetailPagerFragment);
|
showFragment(contributionsListFragment, CONTRIBUTION_LIST_FRAGMENT_TAG, mediaDetailPagerFragment);
|
||||||
|
|
@ -812,7 +817,7 @@ public class ContributionsFragment
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void onClick(View view) {
|
public void onClick(View view) {
|
||||||
View view2 = limitedConnectionDescriptionTextView;
|
View view2 = binding.limitedConnectionDescriptionTextView;
|
||||||
if (view2.getVisibility() == View.GONE) {
|
if (view2.getVisibility() == View.GONE) {
|
||||||
view2.setVisibility(View.VISIBLE);
|
view2.setVisibility(View.VISIBLE);
|
||||||
} else {
|
} else {
|
||||||
|
|
@ -827,7 +832,7 @@ public class ContributionsFragment
|
||||||
@Override
|
@Override
|
||||||
public void onSensorChanged(SensorEvent event) {
|
public void onSensorChanged(SensorEvent event) {
|
||||||
float rotateDegree = Math.round(event.values[0]);
|
float rotateDegree = Math.round(event.values[0]);
|
||||||
nearbyNotificationCardView.rotateCompass(rotateDegree, direction);
|
binding.cardViewNearby.rotateCompass(rotateDegree, direction);
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
|
|
|
||||||
|
|
@ -428,7 +428,7 @@ public class MediaDetailFragment extends CommonsDaggerSupportFragment implements
|
||||||
// in the case when MediaDetailPagerFragment is directly started by the CategoryImagesActivity
|
// in the case when MediaDetailPagerFragment is directly started by the CategoryImagesActivity
|
||||||
if (getParentFragment() instanceof ContributionsFragment) {
|
if (getParentFragment() instanceof ContributionsFragment) {
|
||||||
((ContributionsFragment) (getParentFragment()
|
((ContributionsFragment) (getParentFragment()
|
||||||
.getParentFragment())).nearbyNotificationCardView
|
.getParentFragment())).binding.cardViewNearby
|
||||||
.setVisibility(View.GONE);
|
.setVisibility(View.GONE);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -374,7 +374,7 @@ public class UploadCategoriesFragment extends UploadBaseFragment implements Cate
|
||||||
if (getParentFragment().getParentFragment().getParentFragment()
|
if (getParentFragment().getParentFragment().getParentFragment()
|
||||||
instanceof ContributionsFragment) {
|
instanceof ContributionsFragment) {
|
||||||
((ContributionsFragment) (getParentFragment()
|
((ContributionsFragment) (getParentFragment()
|
||||||
.getParentFragment().getParentFragment())).nearbyNotificationCardView
|
.getParentFragment().getParentFragment())).binding.cardViewNearby
|
||||||
.setVisibility(View.GONE);
|
.setVisibility(View.GONE);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -404,7 +404,7 @@ public class DepictsFragment extends UploadBaseFragment implements DepictsContra
|
||||||
if (getParentFragment().getParentFragment().getParentFragment()
|
if (getParentFragment().getParentFragment().getParentFragment()
|
||||||
instanceof ContributionsFragment) {
|
instanceof ContributionsFragment) {
|
||||||
((ContributionsFragment) (getParentFragment()
|
((ContributionsFragment) (getParentFragment()
|
||||||
.getParentFragment().getParentFragment())).nearbyNotificationCardView
|
.getParentFragment().getParentFragment())).binding.cardViewNearby
|
||||||
.setVisibility(View.GONE);
|
.setVisibility(View.GONE);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -16,6 +16,7 @@ import fr.free.nrw.commons.Media
|
||||||
import fr.free.nrw.commons.R
|
import fr.free.nrw.commons.R
|
||||||
import fr.free.nrw.commons.TestCommonsApplication
|
import fr.free.nrw.commons.TestCommonsApplication
|
||||||
import fr.free.nrw.commons.TestUtility.setFinalStatic
|
import fr.free.nrw.commons.TestUtility.setFinalStatic
|
||||||
|
import fr.free.nrw.commons.databinding.LayoutContributionBinding
|
||||||
import fr.free.nrw.commons.media.MediaClient
|
import fr.free.nrw.commons.media.MediaClient
|
||||||
import fr.free.nrw.commons.profile.ProfileActivity
|
import fr.free.nrw.commons.profile.ProfileActivity
|
||||||
import io.reactivex.disposables.CompositeDisposable
|
import io.reactivex.disposables.CompositeDisposable
|
||||||
|
|
@ -46,17 +47,6 @@ class ContributionViewHolderUnitTests {
|
||||||
private lateinit var contributionViewHolder: ContributionViewHolder
|
private lateinit var contributionViewHolder: ContributionViewHolder
|
||||||
private lateinit var activity: ProfileActivity
|
private lateinit var activity: ProfileActivity
|
||||||
private lateinit var parent: View
|
private lateinit var parent: View
|
||||||
private lateinit var pauseResumeButton: ImageButton
|
|
||||||
private lateinit var addToWikipediaButton: ImageButton
|
|
||||||
private lateinit var cancelButton: ImageButton
|
|
||||||
private lateinit var retryButton: ImageButton
|
|
||||||
private lateinit var imageOptions: RelativeLayout
|
|
||||||
private lateinit var imageView: SimpleDraweeView
|
|
||||||
private lateinit var titleView: TextView
|
|
||||||
private lateinit var authorView: TextView
|
|
||||||
private lateinit var stateView: TextView
|
|
||||||
private lateinit var seqNumView: TextView
|
|
||||||
private lateinit var progressView: ProgressBar
|
|
||||||
|
|
||||||
@Mock
|
@Mock
|
||||||
private lateinit var callback: ContributionsListAdapter.Callback
|
private lateinit var callback: ContributionsListAdapter.Callback
|
||||||
|
|
@ -76,6 +66,8 @@ class ContributionViewHolderUnitTests {
|
||||||
@Mock
|
@Mock
|
||||||
private lateinit var media: Media
|
private lateinit var media: Media
|
||||||
|
|
||||||
|
private lateinit var bindind : LayoutContributionBinding
|
||||||
|
|
||||||
@Before
|
@Before
|
||||||
fun setUp() {
|
fun setUp() {
|
||||||
MockitoAnnotations.initMocks(this)
|
MockitoAnnotations.initMocks(this)
|
||||||
|
|
@ -85,42 +77,10 @@ class ContributionViewHolderUnitTests {
|
||||||
parent = LayoutInflater.from(activity).inflate(R.layout.layout_contribution, null)
|
parent = LayoutInflater.from(activity).inflate(R.layout.layout_contribution, null)
|
||||||
contributionViewHolder = ContributionViewHolder(parent, callback, mediaClient)
|
contributionViewHolder = ContributionViewHolder(parent, callback, mediaClient)
|
||||||
|
|
||||||
pauseResumeButton = parent.findViewById(R.id.pauseResumeButton)
|
bindind = LayoutContributionBinding.bind(parent)
|
||||||
Whitebox.setInternalState(contributionViewHolder, "pauseResumeButton", pauseResumeButton)
|
|
||||||
|
|
||||||
addToWikipediaButton = parent.findViewById(R.id.wikipediaButton)
|
Whitebox.setInternalState(contributionViewHolder, "binding", bindind)
|
||||||
Whitebox.setInternalState(
|
|
||||||
contributionViewHolder,
|
|
||||||
"addToWikipediaButton",
|
|
||||||
addToWikipediaButton
|
|
||||||
)
|
|
||||||
|
|
||||||
cancelButton = parent.findViewById(R.id.cancelButton)
|
|
||||||
Whitebox.setInternalState(contributionViewHolder, "cancelButton", cancelButton)
|
|
||||||
|
|
||||||
retryButton = parent.findViewById(R.id.retryButton)
|
|
||||||
Whitebox.setInternalState(contributionViewHolder, "retryButton", retryButton)
|
|
||||||
|
|
||||||
imageOptions = parent.findViewById(R.id.image_options)
|
|
||||||
Whitebox.setInternalState(contributionViewHolder, "imageOptions", imageOptions)
|
|
||||||
|
|
||||||
imageView = parent.findViewById(R.id.contributionImage)
|
|
||||||
Whitebox.setInternalState(contributionViewHolder, "imageView", imageView)
|
|
||||||
|
|
||||||
titleView = parent.findViewById(R.id.contributionTitle)
|
|
||||||
Whitebox.setInternalState(contributionViewHolder, "titleView", titleView)
|
|
||||||
|
|
||||||
authorView = parent.findViewById(R.id.authorView)
|
|
||||||
Whitebox.setInternalState(contributionViewHolder, "authorView", authorView)
|
|
||||||
|
|
||||||
stateView = parent.findViewById(R.id.contributionState)
|
|
||||||
Whitebox.setInternalState(contributionViewHolder, "stateView", stateView)
|
|
||||||
|
|
||||||
seqNumView = parent.findViewById(R.id.contributionSequenceNumber)
|
|
||||||
Whitebox.setInternalState(contributionViewHolder, "seqNumView", seqNumView)
|
|
||||||
|
|
||||||
progressView = parent.findViewById(R.id.contributionProgress)
|
|
||||||
Whitebox.setInternalState(contributionViewHolder, "progressView", progressView)
|
|
||||||
setFinalStatic(
|
setFinalStatic(
|
||||||
ContributionViewHolder::class.java.getDeclaredField("compositeDisposable"),
|
ContributionViewHolder::class.java.getDeclaredField("compositeDisposable"),
|
||||||
compositeDisposable)
|
compositeDisposable)
|
||||||
|
|
@ -185,7 +145,7 @@ class ContributionViewHolderUnitTests {
|
||||||
@Test
|
@Test
|
||||||
@Throws(Exception::class)
|
@Throws(Exception::class)
|
||||||
fun testOnPauseResumeButtonClickedCaseFalse() {
|
fun testOnPauseResumeButtonClickedCaseFalse() {
|
||||||
pauseResumeButton.tag = ""
|
bindind.pauseResumeButton.tag = ""
|
||||||
contributionViewHolder.onPauseResumeButtonClicked()
|
contributionViewHolder.onPauseResumeButtonClicked()
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -356,4 +316,4 @@ class ContributionViewHolderUnitTests {
|
||||||
contributionViewHolder.init(0, contribution)
|
contributionViewHolder.init(0, contribution)
|
||||||
Assert.assertNotNull(contributionViewHolder.imageRequest)
|
Assert.assertNotNull(contributionViewHolder.imageRequest)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -15,6 +15,7 @@ import fr.free.nrw.commons.TestCommonsApplication
|
||||||
import fr.free.nrw.commons.createTestClient
|
import fr.free.nrw.commons.createTestClient
|
||||||
import fr.free.nrw.commons.campaigns.CampaignView
|
import fr.free.nrw.commons.campaigns.CampaignView
|
||||||
import fr.free.nrw.commons.campaigns.models.Campaign
|
import fr.free.nrw.commons.campaigns.models.Campaign
|
||||||
|
import fr.free.nrw.commons.databinding.FragmentContributionsBinding
|
||||||
import fr.free.nrw.commons.kvstore.JsonKvStore
|
import fr.free.nrw.commons.kvstore.JsonKvStore
|
||||||
import fr.free.nrw.commons.media.MediaDetailPagerFragment
|
import fr.free.nrw.commons.media.MediaDetailPagerFragment
|
||||||
import fr.free.nrw.commons.mwapi.OkHttpJsonApiClient
|
import fr.free.nrw.commons.mwapi.OkHttpJsonApiClient
|
||||||
|
|
@ -120,21 +121,10 @@ class ContributionsFragmentUnitTests {
|
||||||
|
|
||||||
Whitebox.setInternalState(fragment, "contributionsListFragment", contributionsListFragment)
|
Whitebox.setInternalState(fragment, "contributionsListFragment", contributionsListFragment)
|
||||||
Whitebox.setInternalState(fragment, "store", store)
|
Whitebox.setInternalState(fragment, "store", store)
|
||||||
Whitebox.setInternalState(
|
|
||||||
fragment,
|
|
||||||
"limitedConnectionEnabledLayout",
|
|
||||||
limitedConnectionEnabledLayout
|
|
||||||
)
|
|
||||||
Whitebox.setInternalState(fragment, "notificationCount", notificationCount)
|
Whitebox.setInternalState(fragment, "notificationCount", notificationCount)
|
||||||
Whitebox.setInternalState(fragment, "notificationController", notificationController)
|
Whitebox.setInternalState(fragment, "notificationController", notificationController)
|
||||||
Whitebox.setInternalState(fragment, "compositeDisposable", compositeDisposable)
|
Whitebox.setInternalState(fragment, "compositeDisposable", compositeDisposable)
|
||||||
Whitebox.setInternalState(fragment, "okHttpJsonApiClient", okHttpJsonApiClient)
|
Whitebox.setInternalState(fragment, "okHttpJsonApiClient", okHttpJsonApiClient)
|
||||||
Whitebox.setInternalState(
|
|
||||||
fragment,
|
|
||||||
"nearbyNotificationCardView",
|
|
||||||
nearbyNotificationCardView
|
|
||||||
)
|
|
||||||
Whitebox.setInternalState(fragment, "campaignView", campaignView)
|
|
||||||
}
|
}
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
|
|
@ -360,4 +350,4 @@ class ContributionsFragmentUnitTests {
|
||||||
fragment.showDetail(0, false)
|
fragment.showDetail(0, false)
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue