Bump data client library version (#2926)

* Bump data client library version

* Fix tests

* Add javadocs
This commit is contained in:
Vivek Maskara 2019-04-25 10:54:51 +05:30 committed by Ashish Kumar
parent 5419733299
commit 98d28c60a2
11 changed files with 48 additions and 22 deletions

View file

@ -28,7 +28,7 @@ dependencies {
implementation 'com.jakewharton.rxbinding2:rxbinding-design:2.1.1'
implementation 'com.facebook.fresco:fresco:1.13.0'
implementation 'com.drewnoakes:metadata-extractor:2.11.0'
implementation 'com.dmitrybrant:wikimedia-android-data-client:0.0.12'
implementation 'com.dmitrybrant:wikimedia-android-data-client:0.0.18'
// UI
implementation 'fr.avianey.com.viewpagerindicator:library:2.4.1.1@aar'

View file

@ -9,7 +9,6 @@ import org.wikipedia.dataclient.mwapi.MwQueryPage;
import org.wikipedia.gallery.ExtMetadata;
import org.wikipedia.gallery.ImageInfo;
import org.wikipedia.page.PageTitle;
import org.wikipedia.util.DateUtil;
import org.wikipedia.util.StringUtil;
import java.text.ParseException;
@ -24,6 +23,7 @@ import java.util.Map;
import androidx.annotation.NonNull;
import androidx.annotation.Nullable;
import fr.free.nrw.commons.location.LatLng;
import fr.free.nrw.commons.utils.CommonsDateUtil;
import fr.free.nrw.commons.utils.MediaDataExtractorUtil;
public class Media implements Parcelable {
@ -477,7 +477,7 @@ public class Media implements Parcelable {
@Nullable private static Date safeParseDate(String dateStr) {
try {
return DateUtil.getIso8601DateFormatShort().parse(dateStr);
return CommonsDateUtil.getIso8601DateFormatShort().parse(dateStr);
} catch (ParseException e) {
return null;
}

View file

@ -18,6 +18,7 @@ import butterknife.ButterKnife;
import fr.free.nrw.commons.R;
import fr.free.nrw.commons.Utils;
import fr.free.nrw.commons.contributions.MainActivity;
import fr.free.nrw.commons.utils.CommonsDateUtil;
import fr.free.nrw.commons.utils.SwipableCardView;
import fr.free.nrw.commons.utils.ViewUtil;
@ -87,8 +88,8 @@ public class CampaignView extends SwipableCardView {
tvTitle.setText(campaign.getTitle());
tvDescription.setText(campaign.getDescription());
try {
Date startDate = DateUtil.getIso8601DateFormatShort().parse(campaign.getStartDate());
Date endDate = DateUtil.getIso8601DateFormatShort().parse(campaign.getEndDate());
Date startDate = CommonsDateUtil.getIso8601DateFormatShort().parse(campaign.getStartDate());
Date endDate = CommonsDateUtil.getIso8601DateFormatShort().parse(campaign.getEndDate());
tvDates.setText(String.format("%1s - %2s", DateUtil.getExtraShortDateString(startDate),
DateUtil.getExtraShortDateString(endDate)));
} catch (ParseException e) {

View file

@ -15,6 +15,7 @@ import javax.inject.Singleton;
import fr.free.nrw.commons.BasePresenter;
import fr.free.nrw.commons.MvpView;
import fr.free.nrw.commons.mwapi.OkHttpJsonApiClient;
import fr.free.nrw.commons.utils.CommonsDateUtil;
import io.reactivex.Single;
import io.reactivex.SingleObserver;
import io.reactivex.android.schedulers.AndroidSchedulers;
@ -79,8 +80,9 @@ public class CampaignsPresenter implements BasePresenter {
Collections.sort(campaigns, (campaign, t1) -> {
Date date1, date2;
try {
date1 = DateUtil.getIso8601DateFormatShort().parse(campaign.getStartDate());
date2 = DateUtil.getIso8601DateFormatShort().parse(t1.getStartDate());
date1 = CommonsDateUtil.getIso8601DateFormatShort().parse(campaign.getStartDate());
date2 = CommonsDateUtil.getIso8601DateFormatShort().parse(t1.getStartDate());
} catch (ParseException e) {
e.printStackTrace();
return -1;
@ -91,8 +93,8 @@ public class CampaignsPresenter implements BasePresenter {
Date currentDate = new Date();
try {
for (Campaign aCampaign : campaigns) {
campaignEndDate = DateUtil.getIso8601DateFormatShort().parse(aCampaign.getEndDate());
campaignStartDate = DateUtil.getIso8601DateFormatShort().parse(aCampaign.getStartDate());
campaignEndDate = CommonsDateUtil.getIso8601DateFormatShort().parse(aCampaign.getEndDate());
campaignStartDate = CommonsDateUtil.getIso8601DateFormatShort().parse(aCampaign.getStartDate());
if (campaignEndDate.compareTo(currentDate) >= 0
&& campaignStartDate.compareTo(currentDate) <= 0) {
campaign = aCampaign;

View file

@ -7,15 +7,14 @@ import android.os.Parcel;
import org.apache.commons.lang3.StringUtils;
import org.wikipedia.util.DateUtil;
import androidx.annotation.NonNull;
import androidx.annotation.StringDef;
import java.lang.annotation.Retention;
import java.util.Calendar;
import java.util.Date;
import java.util.Locale;
import java.util.TimeZone;
import androidx.annotation.NonNull;
import androidx.annotation.StringDef;
import fr.free.nrw.commons.CommonsApplication;
import fr.free.nrw.commons.Media;
import fr.free.nrw.commons.filepicker.UploadableFile;
@ -203,7 +202,7 @@ public class Contribution extends Media {
private String getTemplatizedCreatedDate() {
if (dateCreated != null) {
if (UploadableFile.DateTimeWithSource.EXIF_SOURCE.equals(dateCreatedSource)) {
return String.format(Locale.ENGLISH, TEMPLATE_DATE_ACC_TO_EXIF, DateUtil.getIso8601DateFormatShort().format(dateCreated)) + "\n";
return String.format(Locale.ENGLISH, TEMPLATE_DATE_ACC_TO_EXIF, DateUtil.getDateStringWithSkeletonPattern(dateCreated, "yyyy-MM-dd")) + "\n";
} else {
Calendar calendar = Calendar.getInstance();
calendar.setTime(dateCreated);

View file

@ -148,7 +148,7 @@ public class ContributionsSyncAdapter extends AbstractThreadedSyncAdapter {
done = true;
}
}
defaultKvStore.putString("lastSyncTimestamp", DateUtil.getIso8601DateFormat().format(curTime));
defaultKvStore.putString("lastSyncTimestamp", DateUtil.iso8601DateFormat(curTime));
Timber.d("Oh hai, everyone! Look, a kitty!");
}
}

View file

@ -857,7 +857,7 @@ public class ApacheHttpClientMediaWikiApi implements MediaWikiApi {
private Date parseMWDate(String mwDate) {
try {
return DateUtil.getIso8601DateFormat().parse(mwDate);
return DateUtil.iso8601DateParse(mwDate);
} catch (ParseException e) {
throw new RuntimeException(e);
}

View file

@ -33,6 +33,7 @@ import fr.free.nrw.commons.nearby.Place;
import fr.free.nrw.commons.nearby.model.NearbyResponse;
import fr.free.nrw.commons.nearby.model.NearbyResultItem;
import fr.free.nrw.commons.upload.FileUtils;
import fr.free.nrw.commons.utils.CommonsDateUtil;
import fr.free.nrw.commons.wikidata.model.GetWikidataEditCountResponse;
import io.reactivex.Observable;
import io.reactivex.Single;
@ -222,7 +223,7 @@ public class OkHttpJsonApiClient {
*/
@Nullable
public Single<Media> getPictureOfTheDay() {
String date = DateUtil.getIso8601DateFormatShort().format(new Date());
String date = CommonsDateUtil.getIso8601DateFormatShort().format(new Date());
Timber.d("Current date is %s", date);
String template = "Template:Potd/" + date;
return getMedia(template, true);
@ -419,7 +420,7 @@ public class OkHttpJsonApiClient {
Date now = new Date();
Date startDate = new Date(now.getTime() - r.nextInt(RANDOM_SECONDS) * 1000L);
String rcStart = DateUtil.getIso8601DateFormat().format(startDate);
String rcStart = DateUtil.iso8601DateFormat(startDate);
HttpUrl.Builder urlBuilder = HttpUrl
.parse(commonsBaseUrl)
.newBuilder()

View file

@ -0,0 +1,23 @@
package fr.free.nrw.commons.utils;
import java.text.SimpleDateFormat;
import java.util.Locale;
import java.util.TimeZone;
/**
* Provides util functions for formatting date time
* Most of our formatting needs are addressed by the data library's DateUtil class
* Methods should be added here only if DateUtil class doesn't provide for it already
*/
public class CommonsDateUtil {
/**
* Gets SimpleDateFormat for short date pattern
* @return
*/
public static SimpleDateFormat getIso8601DateFormatShort() {
SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyy-MM-dd", Locale.ROOT);
simpleDateFormat.setTimeZone(TimeZone.getTimeZone("UTC"));
return simpleDateFormat;
}
}

View file

@ -262,7 +262,7 @@ class ApacheHttpClientMediaWikiApiTest {
fun isUserBlockedFromCommonsForTimeBlockedUser() {
val currentDate = Date()
val expiredDate = Date(currentDate.time + 10000)
server.enqueue(MockResponse().setBody("<?xml version=\"1.0\"?><api><query><userinfo id=\"1000\" name=\"testusername\" blockid=\"3000\" blockedby=\"blockerusername\" blockedbyid=\"1001\" blockreason=\"testing\" blockedtimestamp=\"2018-05-24T15:32:09Z\" blockexpiry=\"" + DateUtil.getIso8601DateFormat().format(expiredDate) + "\"></userinfo></query></api>"))
server.enqueue(MockResponse().setBody("<?xml version=\"1.0\"?><api><query><userinfo id=\"1000\" name=\"testusername\" blockid=\"3000\" blockedby=\"blockerusername\" blockedbyid=\"1001\" blockreason=\"testing\" blockedtimestamp=\"2018-05-24T15:32:09Z\" blockexpiry=\"" + DateUtil.iso8601DateFormat(expiredDate) + "\"></userinfo></query></api>"))
val result = testObject.isUserBlockedFromCommons()
@ -282,7 +282,7 @@ class ApacheHttpClientMediaWikiApiTest {
fun isUserBlockedFromCommonsForExpiredBlockedUser() {
val currentDate = Date()
val expiredDate = Date(currentDate.time - 10000)
server.enqueue(MockResponse().setBody("<?xml version=\"1.0\"?><api><query><userinfo id=\"1000\" name=\"testusername\" blockid=\"3000\" blockedby=\"blockerusername\" blockedbyid=\"1001\" blockreason=\"testing\" blockedtimestamp=\"2018-05-24T15:32:09Z\" blockexpiry=\"" + DateUtil.getIso8601DateFormat().format(expiredDate) + "\"></userinfo></query></api>"))
server.enqueue(MockResponse().setBody("<?xml version=\"1.0\"?><api><query><userinfo id=\"1000\" name=\"testusername\" blockid=\"3000\" blockedby=\"blockerusername\" blockedbyid=\"1001\" blockreason=\"testing\" blockedtimestamp=\"2018-05-24T15:32:09Z\" blockexpiry=\"" + DateUtil.iso8601DateFormat(expiredDate) + "\"></userinfo></query></api>"))
val result = testObject.isUserBlockedFromCommons()

View file

@ -6,6 +6,7 @@ import fr.free.nrw.commons.Media
import fr.free.nrw.commons.TestCommonsApplication
import fr.free.nrw.commons.kvstore.JsonKvStore
import fr.free.nrw.commons.mwapi.OkHttpJsonApiClient.mapType
import fr.free.nrw.commons.utils.CommonsDateUtil
import junit.framework.Assert.assertEquals
import okhttp3.HttpUrl
import okhttp3.OkHttpClient
@ -21,7 +22,6 @@ import org.mockito.Mockito
import org.mockito.Mockito.`when`
import org.robolectric.RobolectricTestRunner
import org.robolectric.annotation.Config
import org.wikipedia.util.DateUtil
import java.util.*
import kotlin.random.Random
@ -190,7 +190,7 @@ class OkHttpJsonApiClientTest {
*/
@Test
fun getImageWithGenerator() {
val template = "Template:Potd/" + DateUtil.getIso8601DateFormatShort().format(Date())
val template = "Template:Potd/" + CommonsDateUtil.getIso8601DateFormatShort().format(Date())
server.enqueue(getMediaList("", "", "", 1))
val media = testObject.getMedia(template, true)!!.blockingGet()
@ -216,7 +216,7 @@ class OkHttpJsonApiClientTest {
*/
@Test
fun getPictureOfTheDay() {
val template = "Template:Potd/" + DateUtil.getIso8601DateFormatShort().format(Date())
val template = "Template:Potd/" + CommonsDateUtil.getIso8601DateFormatShort().format(Date())
server.enqueue(getMediaList("", "", "", 1))
val media = testObject.pictureOfTheDay?.blockingGet()