mirror of
https://github.com/commons-app/apps-android-commons.git
synced 2025-10-26 12:23:58 +01:00
* Fixed #4908 : Thumbnail image is grey during upload * Test Added and minor changes
This commit is contained in:
parent
4ba463c6b2
commit
e58322ed63
2 changed files with 54 additions and 4 deletions
|
|
@ -3,6 +3,7 @@ package fr.free.nrw.commons.contributions;
|
|||
import android.net.Uri;
|
||||
import android.text.TextUtils;
|
||||
import android.view.View;
|
||||
import android.webkit.URLUtil;
|
||||
import android.widget.ImageButton;
|
||||
import android.widget.ProgressBar;
|
||||
import android.widget.RelativeLayout;
|
||||
|
|
@ -23,6 +24,7 @@ import fr.free.nrw.commons.media.MediaClient;
|
|||
import io.reactivex.android.schedulers.AndroidSchedulers;
|
||||
import io.reactivex.disposables.CompositeDisposable;
|
||||
import io.reactivex.schedulers.Schedulers;
|
||||
import java.io.File;
|
||||
|
||||
public class ContributionViewHolder extends RecyclerView.ViewHolder {
|
||||
|
||||
|
|
@ -58,6 +60,7 @@ public class ContributionViewHolder extends RecyclerView.ViewHolder {
|
|||
private boolean isWikipediaButtonDisplayed;
|
||||
private AlertDialog pausingPopUp;
|
||||
private View parent;
|
||||
private ImageRequest imageRequest;
|
||||
|
||||
ContributionViewHolder(final View parent, final Callback callback,
|
||||
final MediaClient mediaClient) {
|
||||
|
|
@ -96,11 +99,18 @@ public class ContributionViewHolder extends RecyclerView.ViewHolder {
|
|||
final String imageSource = chooseImageSource(contribution.getMedia().getThumbUrl(),
|
||||
contribution.getLocalUri());
|
||||
if (!TextUtils.isEmpty(imageSource)) {
|
||||
final ImageRequest imageRequest =
|
||||
ImageRequestBuilder.newBuilderWithSource(Uri.parse(imageSource))
|
||||
if (URLUtil.isHttpsUrl(imageSource)) {
|
||||
imageRequest = ImageRequestBuilder.newBuilderWithSource(Uri.parse(imageSource))
|
||||
.setProgressiveRenderingEnabled(true)
|
||||
.build();
|
||||
imageView.setImageRequest(imageRequest);
|
||||
} else if(imageSource != null) {
|
||||
final File file = new File(imageSource);
|
||||
imageRequest = ImageRequest.fromFile(file);
|
||||
}
|
||||
|
||||
if(imageRequest != null){
|
||||
imageView.setImageRequest(imageRequest);
|
||||
}
|
||||
}
|
||||
|
||||
seqNumView.setText(String.valueOf(position + 1));
|
||||
|
|
@ -280,4 +290,8 @@ public class ContributionViewHolder extends RecyclerView.ViewHolder {
|
|||
pauseResumeButton.setImageResource(R.drawable.play_icon);
|
||||
pauseResumeButton.setTag(parent.getContext().getString(R.string.resume));
|
||||
}
|
||||
|
||||
public ImageRequest getImageRequest() {
|
||||
return imageRequest;
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -10,7 +10,9 @@ import android.widget.RelativeLayout
|
|||
import android.widget.TextView
|
||||
import com.facebook.drawee.backends.pipeline.Fresco
|
||||
import com.facebook.drawee.view.SimpleDraweeView
|
||||
import com.facebook.imagepipeline.request.ImageRequest
|
||||
import com.facebook.soloader.SoLoader
|
||||
import com.nhaarman.mockitokotlin2.verify
|
||||
import fr.free.nrw.commons.Media
|
||||
import fr.free.nrw.commons.R
|
||||
import fr.free.nrw.commons.TestCommonsApplication
|
||||
|
|
@ -22,7 +24,8 @@ import org.junit.Before
|
|||
import org.junit.Test
|
||||
import org.junit.runner.RunWith
|
||||
import org.mockito.Mock
|
||||
import org.mockito.Mockito.`when`
|
||||
import org.mockito.Mockito
|
||||
import org.mockito.Mockito.*
|
||||
import org.mockito.MockitoAnnotations
|
||||
import org.powermock.reflect.Whitebox
|
||||
import org.robolectric.Robolectric
|
||||
|
|
@ -31,6 +34,7 @@ import org.robolectric.RuntimeEnvironment
|
|||
import org.robolectric.Shadows
|
||||
import org.robolectric.annotation.Config
|
||||
import org.robolectric.annotation.LooperMode
|
||||
import java.io.File
|
||||
import java.lang.reflect.Method
|
||||
|
||||
@RunWith(RobolectricTestRunner::class)
|
||||
|
|
@ -324,4 +328,36 @@ class ContributionViewHolderUnitTests {
|
|||
contributionViewHolder.init(0, contribution)
|
||||
}
|
||||
|
||||
@Test
|
||||
@Throws(Exception::class)
|
||||
fun testInitCaseImageSource_HttpURL() {
|
||||
Shadows.shadowOf(Looper.getMainLooper()).idle()
|
||||
`when`(contribution.media).thenReturn(media)
|
||||
`when`(contribution.media.thumbUrl).thenReturn("https://demo/sample.png")
|
||||
`when`(contribution.localUri).thenReturn(null)
|
||||
contributionViewHolder.init(0, contribution)
|
||||
Assert.assertNotNull(contributionViewHolder.imageRequest)
|
||||
}
|
||||
|
||||
@Test
|
||||
@Throws(Exception::class)
|
||||
fun testInitCaseImageSource_NULL() {
|
||||
Shadows.shadowOf(Looper.getMainLooper()).idle()
|
||||
`when`(contribution.media).thenReturn(media)
|
||||
`when`(contribution.media.thumbUrl).thenReturn(null)
|
||||
`when`(contribution.localUri).thenReturn(null)
|
||||
contributionViewHolder.init(0, contribution)
|
||||
Assert.assertNull(contributionViewHolder.imageRequest)
|
||||
}
|
||||
|
||||
@Test
|
||||
@Throws(Exception::class)
|
||||
fun testInitCaseImageSource_LocalUri() {
|
||||
Shadows.shadowOf(Looper.getMainLooper()).idle()
|
||||
`when`(contribution.media).thenReturn(media)
|
||||
`when`(contribution.media.thumbUrl).thenReturn(null)
|
||||
`when`(contribution.localUri).thenReturn(Uri.parse("/data/android/demo.png"))
|
||||
contributionViewHolder.init(0, contribution)
|
||||
Assert.assertNotNull(contributionViewHolder.imageRequest)
|
||||
}
|
||||
}
|
||||
Loading…
Add table
Add a link
Reference in a new issue