mirror of
https://github.com/commons-app/apps-android-commons.git
synced 2025-10-28 21:33:53 +01:00
Use JSON SPARQL query for fetching nearby places (#2398)
* Use JSON response for nearby places * Move okhttp calls to a different class * wip * Fetch picture of the day using JSON API * Search images using JSON APIs * tests * Fix injection based on code review comments
This commit is contained in:
parent
323527b3be
commit
f12837650a
44 changed files with 1472 additions and 418 deletions
|
|
@ -2,50 +2,37 @@ package fr.free.nrw.commons.delete;
|
|||
|
||||
import android.accounts.Account;
|
||||
import android.content.Context;
|
||||
import android.util.Log;
|
||||
|
||||
import com.google.gson.JsonObject;
|
||||
|
||||
import org.json.JSONException;
|
||||
import org.json.JSONObject;
|
||||
|
||||
import java.text.SimpleDateFormat;
|
||||
import java.util.Date;
|
||||
import java.util.Locale;
|
||||
|
||||
import javax.inject.Inject;
|
||||
import javax.inject.Singleton;
|
||||
|
||||
import fr.free.nrw.commons.Media;
|
||||
import fr.free.nrw.commons.R;
|
||||
import fr.free.nrw.commons.achievements.FeedbackResponse;
|
||||
import fr.free.nrw.commons.auth.SessionManager;
|
||||
import fr.free.nrw.commons.mwapi.MediaWikiApi;
|
||||
import fr.free.nrw.commons.mwapi.OkHttpJsonApiClient;
|
||||
import fr.free.nrw.commons.utils.ViewUtil;
|
||||
import io.reactivex.android.schedulers.AndroidSchedulers;
|
||||
import io.reactivex.disposables.CompositeDisposable;
|
||||
import io.reactivex.schedulers.Schedulers;
|
||||
import io.reactivex.Single;
|
||||
import timber.log.Timber;
|
||||
|
||||
@Singleton
|
||||
public class ReasonBuilder {
|
||||
|
||||
private SessionManager sessionManager;
|
||||
private MediaWikiApi mediaWikiApi;
|
||||
private CompositeDisposable compositeDisposable = new CompositeDisposable();
|
||||
|
||||
private String reason;
|
||||
private OkHttpJsonApiClient okHttpJsonApiClient;
|
||||
private Context context;
|
||||
private Media media;
|
||||
|
||||
public ReasonBuilder(String reason,
|
||||
Context context,
|
||||
Media media,
|
||||
@Inject
|
||||
public ReasonBuilder(Context context,
|
||||
SessionManager sessionManager,
|
||||
MediaWikiApi mediaWikiApi){
|
||||
this.reason = reason;
|
||||
OkHttpJsonApiClient okHttpJsonApiClient) {
|
||||
this.context = context;
|
||||
this.media = media;
|
||||
this.sessionManager = sessionManager;
|
||||
this.mediaWikiApi = mediaWikiApi;
|
||||
this.okHttpJsonApiClient = okHttpJsonApiClient;
|
||||
}
|
||||
|
||||
private String prettyUploadedDate(Media media) {
|
||||
|
|
@ -57,31 +44,27 @@ public class ReasonBuilder {
|
|||
return formatter.format(date);
|
||||
}
|
||||
|
||||
private void fetchArticleNumber() {
|
||||
private Single<String> fetchArticleNumber(Media media, String reason) {
|
||||
if (checkAccount()) {
|
||||
compositeDisposable.add(mediaWikiApi
|
||||
return okHttpJsonApiClient
|
||||
.getAchievements(sessionManager.getCurrentAccount().name)
|
||||
.subscribeOn(Schedulers.io())
|
||||
.observeOn(AndroidSchedulers.mainThread())
|
||||
.subscribe(
|
||||
this::appendArticlesUsed,
|
||||
t -> Timber.e(t, "Fetching achievements statistics failed")
|
||||
));
|
||||
.map(feedbackResponse -> appendArticlesUsed(feedbackResponse, media, reason));
|
||||
}
|
||||
return Single.just("");
|
||||
}
|
||||
|
||||
private void appendArticlesUsed(FeedbackResponse object){
|
||||
reason += context.getString(R.string.uploaded_by_myself).toString() + prettyUploadedDate(media);
|
||||
reason += context.getString(R.string.used_by).toString()
|
||||
private String appendArticlesUsed(FeedbackResponse object, Media media, String reason) {
|
||||
reason += context.getString(R.string.uploaded_by_myself) + prettyUploadedDate(media);
|
||||
reason += context.getString(R.string.used_by)
|
||||
+ object.getArticlesUsingImages()
|
||||
+ context.getString(R.string.articles).toString();
|
||||
Log.i("New Reason", reason);
|
||||
+ context.getString(R.string.articles);
|
||||
Timber.i("New Reason %s", reason);
|
||||
return reason;
|
||||
}
|
||||
|
||||
|
||||
public String getReason(){
|
||||
fetchArticleNumber();
|
||||
return reason;
|
||||
public Single<String> getReason(Media media, String reason) {
|
||||
return fetchArticleNumber(media, reason);
|
||||
}
|
||||
|
||||
/**
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue