From ccd7b3d3d278774f063aac6754606dec316cef06 Mon Sep 17 00:00:00 2001 From: Ilgaz Er Date: Sat, 5 Oct 2019 14:43:49 +0300 Subject: [PATCH] As per #3026, removed the obsolete classes in package mwapi (#3150) --- .../free/nrw/commons/MediaDataExtractor.java | 6 +- .../free/nrw/commons/auth/LoginActivity.java | 4 - .../free/nrw/commons/auth/SessionManager.java | 6 - .../nrw/commons/category/CategoriesModel.java | 17 +- .../category/SubCategoryListFragment.java | 9 +- .../contributions/ContributionsFragment.java | 20 +- .../ContributionsSyncAdapter.java | 13 -- .../free/nrw/commons/di/NetworkingModule.java | 10 - .../categories/SearchCategoryFragment.java | 10 +- .../media/MediaDetailPagerFragment.java | 17 +- .../mwapi/ApacheHttpClientMediaWikiApi.java | 63 ------ .../nrw/commons/mwapi/CustomApiResult.java | 122 ------------ .../free/nrw/commons/mwapi/CustomMwApi.java | 188 ------------------ .../nrw/commons/mwapi/LogEventResult.java | 51 ----- .../free/nrw/commons/mwapi/MediaWikiApi.java | 19 -- .../commons/mwapi/NetworkInterceptors.java | 85 -------- .../fr/free/nrw/commons/quiz/QuizChecker.java | 2 +- .../nrw/commons/review/ReviewActivity.java | 3 - .../free/nrw/commons/review/ReviewHelper.java | 2 - .../upload/ImageProcessingService.java | 5 +- .../nrw/commons/upload/UploadService.java | 3 - .../commons/wikidata/WikidataEditService.java | 3 +- .../nrw/commons/MediaDataExtractorTest.kt | 5 - .../nrw/commons/review/ReviewHelperTest.kt | 2 - .../upload/ImageProcessingServiceTest.kt | 3 - .../nrw/commons/upload/UploadModelTest.kt | 4 - 26 files changed, 40 insertions(+), 632 deletions(-) delete mode 100644 app/src/main/java/fr/free/nrw/commons/mwapi/ApacheHttpClientMediaWikiApi.java delete mode 100644 app/src/main/java/fr/free/nrw/commons/mwapi/CustomApiResult.java delete mode 100644 app/src/main/java/fr/free/nrw/commons/mwapi/CustomMwApi.java delete mode 100644 app/src/main/java/fr/free/nrw/commons/mwapi/LogEventResult.java delete mode 100644 app/src/main/java/fr/free/nrw/commons/mwapi/MediaWikiApi.java delete mode 100644 app/src/main/java/fr/free/nrw/commons/mwapi/NetworkInterceptors.java diff --git a/app/src/main/java/fr/free/nrw/commons/MediaDataExtractor.java b/app/src/main/java/fr/free/nrw/commons/MediaDataExtractor.java index d07bd4bfb..ab67e9253 100644 --- a/app/src/main/java/fr/free/nrw/commons/MediaDataExtractor.java +++ b/app/src/main/java/fr/free/nrw/commons/MediaDataExtractor.java @@ -6,7 +6,6 @@ import javax.inject.Inject; import javax.inject.Singleton; import fr.free.nrw.commons.media.MediaClient; -import fr.free.nrw.commons.mwapi.MediaWikiApi; import fr.free.nrw.commons.mwapi.OkHttpJsonApiClient; import io.reactivex.Single; import timber.log.Timber; @@ -19,16 +18,13 @@ import timber.log.Timber; */ @Singleton public class MediaDataExtractor { - private final MediaWikiApi mediaWikiApi; private final OkHttpJsonApiClient okHttpJsonApiClient; private final MediaClient mediaClient; @Inject - public MediaDataExtractor(MediaWikiApi mwApi, - OkHttpJsonApiClient okHttpJsonApiClient, + public MediaDataExtractor(OkHttpJsonApiClient okHttpJsonApiClient, MediaClient mediaClient) { this.okHttpJsonApiClient = okHttpJsonApiClient; - this.mediaWikiApi = mwApi; this.mediaClient = mediaClient; } diff --git a/app/src/main/java/fr/free/nrw/commons/auth/LoginActivity.java b/app/src/main/java/fr/free/nrw/commons/auth/LoginActivity.java index 0441abf2b..27b3f4f1c 100644 --- a/app/src/main/java/fr/free/nrw/commons/auth/LoginActivity.java +++ b/app/src/main/java/fr/free/nrw/commons/auth/LoginActivity.java @@ -43,7 +43,6 @@ import fr.free.nrw.commons.contributions.MainActivity; import fr.free.nrw.commons.di.ApplicationlessInjection; import fr.free.nrw.commons.explore.categories.ExploreActivity; import fr.free.nrw.commons.kvstore.JsonKvStore; -import fr.free.nrw.commons.mwapi.MediaWikiApi; import fr.free.nrw.commons.theme.NavigationBaseActivity; import fr.free.nrw.commons.utils.ConfigUtils; import fr.free.nrw.commons.utils.ViewUtil; @@ -64,9 +63,6 @@ import timber.log.Timber; public class LoginActivity extends AccountAuthenticatorActivity { - @Inject - MediaWikiApi mwApi; - @Inject SessionManager sessionManager; diff --git a/app/src/main/java/fr/free/nrw/commons/auth/SessionManager.java b/app/src/main/java/fr/free/nrw/commons/auth/SessionManager.java index 04519e128..32a4bcf3c 100644 --- a/app/src/main/java/fr/free/nrw/commons/auth/SessionManager.java +++ b/app/src/main/java/fr/free/nrw/commons/auth/SessionManager.java @@ -17,10 +17,8 @@ import javax.inject.Singleton; import fr.free.nrw.commons.BuildConfig; import fr.free.nrw.commons.kvstore.JsonKvStore; -import fr.free.nrw.commons.mwapi.MediaWikiApi; import io.reactivex.Completable; import io.reactivex.Observable; -import timber.log.Timber; /** * Manage the current logged in user session. @@ -28,17 +26,14 @@ import timber.log.Timber; @Singleton public class SessionManager { private final Context context; - private final MediaWikiApi mediaWikiApi; private Account currentAccount; // Unlike a savings account... ;-) private JsonKvStore defaultKvStore; private static final String KEY_RAWUSERNAME = "rawusername"; @Inject public SessionManager(Context context, - MediaWikiApi mediaWikiApi, @Named("default_preferences") JsonKvStore defaultKvStore) { this.context = context; - this.mediaWikiApi = mediaWikiApi; this.currentAccount = null; this.defaultKvStore = defaultKvStore; } @@ -146,7 +141,6 @@ public class SessionManager { return Completable.fromObservable(Observable.fromArray(allAccounts) .map(a -> accountManager.removeAccount(a, null, null).getResult())) .doOnComplete(() -> { - mediaWikiApi.logout(); currentAccount = null; }); } diff --git a/app/src/main/java/fr/free/nrw/commons/category/CategoriesModel.java b/app/src/main/java/fr/free/nrw/commons/category/CategoriesModel.java index bd0a6a08d..e2030ee9a 100644 --- a/app/src/main/java/fr/free/nrw/commons/category/CategoriesModel.java +++ b/app/src/main/java/fr/free/nrw/commons/category/CategoriesModel.java @@ -1,19 +1,21 @@ package fr.free.nrw.commons.category; import android.text.TextUtils; -import fr.free.nrw.commons.kvstore.JsonKvStore; -import fr.free.nrw.commons.mwapi.MediaWikiApi; -import fr.free.nrw.commons.upload.GpsCategoryModel; -import fr.free.nrw.commons.utils.StringSortingUtils; -import io.reactivex.Observable; + import java.util.ArrayList; import java.util.Calendar; import java.util.Comparator; import java.util.Date; import java.util.HashMap; import java.util.List; + import javax.inject.Inject; import javax.inject.Named; + +import fr.free.nrw.commons.kvstore.JsonKvStore; +import fr.free.nrw.commons.upload.GpsCategoryModel; +import fr.free.nrw.commons.utils.StringSortingUtils; +import io.reactivex.Observable; import timber.log.Timber; /** @@ -22,7 +24,6 @@ import timber.log.Timber; public class CategoriesModel{ private static final int SEARCH_CATS_LIMIT = 25; - private final MediaWikiApi mwApi; private final CategoryClient categoryClient; private final CategoryDao categoryDao; private final JsonKvStore directKvStore; @@ -32,11 +33,9 @@ public class CategoriesModel{ @Inject GpsCategoryModel gpsCategoryModel; @Inject - public CategoriesModel(MediaWikiApi mwApi, - CategoryClient categoryClient, + public CategoriesModel(CategoryClient categoryClient, CategoryDao categoryDao, @Named("default_preferences") JsonKvStore directKvStore) { - this.mwApi = mwApi; this.categoryClient = categoryClient; this.categoryDao = categoryDao; this.directKvStore = directKvStore; diff --git a/app/src/main/java/fr/free/nrw/commons/category/SubCategoryListFragment.java b/app/src/main/java/fr/free/nrw/commons/category/SubCategoryListFragment.java index 379caf4c1..afae9fae6 100644 --- a/app/src/main/java/fr/free/nrw/commons/category/SubCategoryListFragment.java +++ b/app/src/main/java/fr/free/nrw/commons/category/SubCategoryListFragment.java @@ -4,15 +4,16 @@ package fr.free.nrw.commons.category; import android.content.Intent; import android.content.res.Configuration; import android.os.Bundle; -import androidx.recyclerview.widget.GridLayoutManager; -import androidx.recyclerview.widget.LinearLayoutManager; -import androidx.recyclerview.widget.RecyclerView; import android.view.LayoutInflater; import android.view.View; import android.view.ViewGroup; import android.widget.ProgressBar; import android.widget.TextView; +import androidx.recyclerview.widget.GridLayoutManager; +import androidx.recyclerview.widget.LinearLayoutManager; +import androidx.recyclerview.widget.RecyclerView; + import com.pedrogomez.renderers.RVRendererAdapter; import java.util.ArrayList; @@ -26,10 +27,8 @@ import butterknife.ButterKnife; import fr.free.nrw.commons.R; import fr.free.nrw.commons.di.CommonsDaggerSupportFragment; import fr.free.nrw.commons.explore.categories.SearchCategoriesAdapterFactory; -import fr.free.nrw.commons.mwapi.MediaWikiApi; import fr.free.nrw.commons.utils.NetworkUtils; import fr.free.nrw.commons.utils.ViewUtil; -import io.reactivex.Observable; import io.reactivex.android.schedulers.AndroidSchedulers; import io.reactivex.schedulers.Schedulers; import timber.log.Timber; diff --git a/app/src/main/java/fr/free/nrw/commons/contributions/ContributionsFragment.java b/app/src/main/java/fr/free/nrw/commons/contributions/ContributionsFragment.java index 56feafacd..6d38aee75 100644 --- a/app/src/main/java/fr/free/nrw/commons/contributions/ContributionsFragment.java +++ b/app/src/main/java/fr/free/nrw/commons/contributions/ContributionsFragment.java @@ -1,9 +1,5 @@ package fr.free.nrw.commons.contributions; -import static fr.free.nrw.commons.contributions.Contribution.STATE_FAILED; -import static fr.free.nrw.commons.contributions.MainActivity.CONTRIBUTIONS_TAB_POSITION; -import static fr.free.nrw.commons.utils.LengthUtils.formatDistanceBetween; - import android.Manifest; import android.content.ComponentName; import android.content.Context; @@ -17,12 +13,19 @@ import android.view.View; import android.view.ViewGroup; import android.widget.CheckBox; import android.widget.Toast; + import androidx.annotation.NonNull; import androidx.annotation.Nullable; import androidx.fragment.app.Fragment; import androidx.fragment.app.FragmentManager; import androidx.fragment.app.FragmentManager.OnBackStackChangedListener; import androidx.fragment.app.FragmentTransaction; + +import java.util.ArrayList; + +import javax.inject.Inject; +import javax.inject.Named; + import butterknife.BindView; import butterknife.ButterKnife; import fr.free.nrw.commons.HandlerService; @@ -41,7 +44,6 @@ import fr.free.nrw.commons.location.LocationServiceManager; import fr.free.nrw.commons.location.LocationUpdateListener; import fr.free.nrw.commons.media.MediaDetailPagerFragment; import fr.free.nrw.commons.media.MediaDetailPagerFragment.MediaDetailProvider; -import fr.free.nrw.commons.mwapi.MediaWikiApi; import fr.free.nrw.commons.mwapi.OkHttpJsonApiClient; import fr.free.nrw.commons.nearby.NearbyController; import fr.free.nrw.commons.nearby.NearbyNotificationCardView; @@ -57,11 +59,12 @@ import io.reactivex.Observable; import io.reactivex.android.schedulers.AndroidSchedulers; import io.reactivex.disposables.CompositeDisposable; import io.reactivex.schedulers.Schedulers; -import java.util.ArrayList; -import javax.inject.Inject; -import javax.inject.Named; import timber.log.Timber; +import static fr.free.nrw.commons.contributions.Contribution.STATE_FAILED; +import static fr.free.nrw.commons.contributions.MainActivity.CONTRIBUTIONS_TAB_POSITION; +import static fr.free.nrw.commons.utils.LengthUtils.formatDistanceBetween; + public class ContributionsFragment extends CommonsDaggerSupportFragment implements @@ -72,7 +75,6 @@ public class ContributionsFragment ICampaignsView, ContributionsContract.View { @Inject @Named("default_preferences") JsonKvStore store; @Inject ContributionDao contributionDao; - @Inject MediaWikiApi mediaWikiApi; @Inject NearbyController nearbyController; @Inject OkHttpJsonApiClient okHttpJsonApiClient; @Inject CampaignsPresenter presenter; diff --git a/app/src/main/java/fr/free/nrw/commons/contributions/ContributionsSyncAdapter.java b/app/src/main/java/fr/free/nrw/commons/contributions/ContributionsSyncAdapter.java index eb78ef31d..e6f0e5e39 100644 --- a/app/src/main/java/fr/free/nrw/commons/contributions/ContributionsSyncAdapter.java +++ b/app/src/main/java/fr/free/nrw/commons/contributions/ContributionsSyncAdapter.java @@ -10,25 +10,12 @@ import android.content.SyncResult; import android.database.Cursor; import android.os.Bundle; import android.os.RemoteException; -import android.text.TextUtils; - -import org.wikipedia.dataclient.mwapi.MwQueryLogEvent; -import org.wikipedia.dataclient.mwapi.MwQueryResult; -import org.wikipedia.util.DateUtil; - -import java.io.IOException; -import java.util.ArrayList; -import java.util.Date; -import java.util.List; import javax.inject.Inject; import javax.inject.Named; -import fr.free.nrw.commons.Utils; import fr.free.nrw.commons.di.ApplicationlessInjection; import fr.free.nrw.commons.kvstore.JsonKvStore; -import fr.free.nrw.commons.mwapi.LogEventResult; -import fr.free.nrw.commons.mwapi.MediaWikiApi; import fr.free.nrw.commons.mwapi.UserClient; import timber.log.Timber; diff --git a/app/src/main/java/fr/free/nrw/commons/di/NetworkingModule.java b/app/src/main/java/fr/free/nrw/commons/di/NetworkingModule.java index cb83b44b2..be2d7b5b7 100644 --- a/app/src/main/java/fr/free/nrw/commons/di/NetworkingModule.java +++ b/app/src/main/java/fr/free/nrw/commons/di/NetworkingModule.java @@ -27,8 +27,6 @@ import fr.free.nrw.commons.actions.PageEditInterface; import fr.free.nrw.commons.category.CategoryInterface; import fr.free.nrw.commons.kvstore.JsonKvStore; import fr.free.nrw.commons.media.MediaInterface; -import fr.free.nrw.commons.mwapi.ApacheHttpClientMediaWikiApi; -import fr.free.nrw.commons.mwapi.MediaWikiApi; import fr.free.nrw.commons.mwapi.OkHttpJsonApiClient; import fr.free.nrw.commons.mwapi.UserInterface; import fr.free.nrw.commons.review.ReviewInterface; @@ -78,14 +76,6 @@ public class NetworkingModule { return httpLoggingInterceptor; } - @Provides - @Singleton - public MediaWikiApi provideMediaWikiApi(Context context, - @Named("default_preferences") JsonKvStore defaultKvStore, - Gson gson) { - return new ApacheHttpClientMediaWikiApi(BuildConfig.WIKIMEDIA_API_HOST); - } - @Provides @Singleton public OkHttpJsonApiClient provideOkHttpJsonApiClient(OkHttpClient okHttpClient, diff --git a/app/src/main/java/fr/free/nrw/commons/explore/categories/SearchCategoryFragment.java b/app/src/main/java/fr/free/nrw/commons/explore/categories/SearchCategoryFragment.java index 7cfea064a..988e0a21a 100644 --- a/app/src/main/java/fr/free/nrw/commons/explore/categories/SearchCategoryFragment.java +++ b/app/src/main/java/fr/free/nrw/commons/explore/categories/SearchCategoryFragment.java @@ -3,15 +3,16 @@ package fr.free.nrw.commons.explore.categories; import android.content.res.Configuration; import android.os.Bundle; -import androidx.recyclerview.widget.GridLayoutManager; -import androidx.recyclerview.widget.LinearLayoutManager; -import androidx.recyclerview.widget.RecyclerView; import android.view.LayoutInflater; import android.view.View; import android.view.ViewGroup; import android.widget.ProgressBar; import android.widget.TextView; +import androidx.recyclerview.widget.GridLayoutManager; +import androidx.recyclerview.widget.LinearLayoutManager; +import androidx.recyclerview.widget.RecyclerView; + import com.pedrogomez.renderers.RVRendererAdapter; import java.util.ArrayList; @@ -31,10 +32,8 @@ import fr.free.nrw.commons.di.CommonsDaggerSupportFragment; import fr.free.nrw.commons.explore.recentsearches.RecentSearch; import fr.free.nrw.commons.explore.recentsearches.RecentSearchesDao; import fr.free.nrw.commons.kvstore.JsonKvStore; -import fr.free.nrw.commons.mwapi.MediaWikiApi; import fr.free.nrw.commons.utils.NetworkUtils; import fr.free.nrw.commons.utils.ViewUtil; -import io.reactivex.Observable; import io.reactivex.android.schedulers.AndroidSchedulers; import io.reactivex.schedulers.Schedulers; import timber.log.Timber; @@ -62,7 +61,6 @@ public class SearchCategoryFragment extends CommonsDaggerSupportFragment { boolean isLoadingCategories; @Inject RecentSearchesDao recentSearchesDao; - @Inject MediaWikiApi mwApi; @Inject CategoryClient categoryClient; @Inject diff --git a/app/src/main/java/fr/free/nrw/commons/media/MediaDetailPagerFragment.java b/app/src/main/java/fr/free/nrw/commons/media/MediaDetailPagerFragment.java index dafef0694..5b2e80373 100644 --- a/app/src/main/java/fr/free/nrw/commons/media/MediaDetailPagerFragment.java +++ b/app/src/main/java/fr/free/nrw/commons/media/MediaDetailPagerFragment.java @@ -1,9 +1,5 @@ package fr.free.nrw.commons.media; -import static android.Manifest.permission.WRITE_EXTERNAL_STORAGE; -import static android.content.Context.DOWNLOAD_SERVICE; -import static fr.free.nrw.commons.Utils.handleWebUrl; - import android.annotation.SuppressLint; import android.app.DownloadManager; import android.content.Intent; @@ -18,10 +14,15 @@ import android.view.MenuItem; import android.view.View; import android.view.ViewGroup; import android.widget.Toast; + import androidx.fragment.app.Fragment; import androidx.fragment.app.FragmentManager; import androidx.fragment.app.FragmentStatePagerAdapter; import androidx.viewpager.widget.ViewPager; + +import javax.inject.Inject; +import javax.inject.Named; + import butterknife.BindView; import butterknife.ButterKnife; import fr.free.nrw.commons.Media; @@ -37,18 +38,18 @@ import fr.free.nrw.commons.di.CommonsDaggerSupportFragment; import fr.free.nrw.commons.explore.SearchActivity; import fr.free.nrw.commons.explore.categories.ExploreActivity; import fr.free.nrw.commons.kvstore.JsonKvStore; -import fr.free.nrw.commons.mwapi.MediaWikiApi; import fr.free.nrw.commons.utils.ImageUtils; import fr.free.nrw.commons.utils.NetworkUtils; import fr.free.nrw.commons.utils.PermissionUtils; import fr.free.nrw.commons.utils.ViewUtil; -import javax.inject.Inject; -import javax.inject.Named; import timber.log.Timber; +import static android.Manifest.permission.WRITE_EXTERNAL_STORAGE; +import static android.content.Context.DOWNLOAD_SERVICE; +import static fr.free.nrw.commons.Utils.handleWebUrl; + public class MediaDetailPagerFragment extends CommonsDaggerSupportFragment implements ViewPager.OnPageChangeListener { - @Inject MediaWikiApi mwApi; @Inject SessionManager sessionManager; @Inject @Named("default_preferences") JsonKvStore store; @Inject BookmarkPicturesDao bookmarkDao; diff --git a/app/src/main/java/fr/free/nrw/commons/mwapi/ApacheHttpClientMediaWikiApi.java b/app/src/main/java/fr/free/nrw/commons/mwapi/ApacheHttpClientMediaWikiApi.java deleted file mode 100644 index e1eb9913d..000000000 --- a/app/src/main/java/fr/free/nrw/commons/mwapi/ApacheHttpClientMediaWikiApi.java +++ /dev/null @@ -1,63 +0,0 @@ -package fr.free.nrw.commons.mwapi; - -import android.text.TextUtils; - -import androidx.annotation.NonNull; -import androidx.annotation.Nullable; - -import org.apache.http.conn.ClientConnectionManager; -import org.apache.http.conn.scheme.PlainSocketFactory; -import org.apache.http.conn.scheme.Scheme; -import org.apache.http.conn.scheme.SchemeRegistry; -import org.apache.http.conn.ssl.SSLSocketFactory; -import org.apache.http.impl.client.AbstractHttpClient; -import org.apache.http.impl.client.DefaultHttpClient; -import org.apache.http.impl.conn.tsccm.ThreadSafeClientConnManager; -import org.apache.http.params.BasicHttpParams; -import org.apache.http.params.CoreProtocolPNames; -import org.wikipedia.util.DateUtil; - -import java.io.IOException; -import java.text.ParseException; -import java.util.ArrayList; -import java.util.Date; - -import fr.free.nrw.commons.BuildConfig; -import fr.free.nrw.commons.CommonsApplication; - -import timber.log.Timber; - -/** - * @author Addshore - */ -public class ApacheHttpClientMediaWikiApi implements MediaWikiApi { - private AbstractHttpClient httpClient; - private CustomMwApi api; - - public ApacheHttpClientMediaWikiApi(String apiURL) { - BasicHttpParams params = new BasicHttpParams(); - SchemeRegistry schemeRegistry = new SchemeRegistry(); - schemeRegistry.register(new Scheme("http", PlainSocketFactory.getSocketFactory(), 80)); - final SSLSocketFactory sslSocketFactory = SSLSocketFactory.getSocketFactory(); - schemeRegistry.register(new Scheme("https", sslSocketFactory, 443)); - ClientConnectionManager cm = new ThreadSafeClientConnManager(params, schemeRegistry); - params.setParameter(CoreProtocolPNames.USER_AGENT, CommonsApplication.getInstance().getUserAgent()); - httpClient = new DefaultHttpClient(cm, params); - if (BuildConfig.DEBUG) { - httpClient.addRequestInterceptor(NetworkInterceptors.getHttpRequestInterceptor()); - } - api = new CustomMwApi(apiURL, httpClient); - } - - /** - * Calls media wiki's logout API - */ - public void logout() { - try { - api.logout(); - } catch (IOException e) { - Timber.e(e, "Error occurred while logging out"); - } - } - -} diff --git a/app/src/main/java/fr/free/nrw/commons/mwapi/CustomApiResult.java b/app/src/main/java/fr/free/nrw/commons/mwapi/CustomApiResult.java deleted file mode 100644 index d7823bd09..000000000 --- a/app/src/main/java/fr/free/nrw/commons/mwapi/CustomApiResult.java +++ /dev/null @@ -1,122 +0,0 @@ -package fr.free.nrw.commons.mwapi; - -import org.apache.http.client.HttpClient; -import org.w3c.dom.Document; -import org.w3c.dom.Node; -import org.w3c.dom.NodeList; -import org.xml.sax.SAXException; - -import java.io.IOError; -import java.io.IOException; -import java.io.StringWriter; -import java.util.ArrayList; - -import javax.xml.parsers.DocumentBuilder; -import javax.xml.parsers.DocumentBuilderFactory; -import javax.xml.parsers.ParserConfigurationException; -import javax.xml.transform.Transformer; -import javax.xml.transform.TransformerException; -import javax.xml.transform.TransformerFactory; -import javax.xml.transform.dom.DOMSource; -import javax.xml.transform.stream.StreamResult; -import javax.xml.xpath.XPath; -import javax.xml.xpath.XPathConstants; -import javax.xml.xpath.XPathExpressionException; -import javax.xml.xpath.XPathFactory; - -import in.yuvi.http.fluent.Http; -import timber.log.Timber; - -public class CustomApiResult { - private Node doc; - private XPath evaluator; - - CustomApiResult(Node doc) { - this.doc = doc; - this.evaluator = XPathFactory.newInstance().newXPath(); - } - - static CustomApiResult fromRequestBuilder(String requestIdentifier, Http.HttpRequestBuilder builder, HttpClient client) throws IOException { - try { - DocumentBuilder docBuilder = DocumentBuilderFactory.newInstance().newDocumentBuilder(); - Document doc = docBuilder.parse(builder.use(client).charset("utf-8").data("format", "xml").asResponse().getEntity().getContent()); - printStringFromDocument(requestIdentifier, doc); - return new CustomApiResult(doc); - } catch (ParserConfigurationException e) { - // I don't know wtf I can do about this on... - Timber.e(e, "Error occurred while parsing the response for method %s", requestIdentifier); - throw new RuntimeException(e); - } catch (IllegalStateException e) { - // So, this should never actually happen - since we assume MediaWiki always generates valid json - // So the only thing causing this would be a network truncation - // Sooo... I can throw IOError - // Thanks Java, for making me spend significant time on shit that happens once in a bluemoon - // I surely am writing Nuclear Submarine controller code - Timber.e(e, "Error occurred while parsing the response for method %s", requestIdentifier); - throw new IOError(e); - } catch (SAXException e) { - // See Rant above - Timber.e(e, "Error occurred while parsing the response for method %s", requestIdentifier); - throw new IOError(e); - } - } - - public static void printStringFromDocument(String requestIdentifier, Document doc) - { - try - { - DOMSource domSource = new DOMSource(doc); - StringWriter writer = new StringWriter(); - StreamResult result = new StreamResult(writer); - TransformerFactory tf = TransformerFactory.newInstance(); - Transformer transformer = tf.newTransformer(); - transformer.transform(domSource, result); - Timber.d("API response for method %s is\n %s", requestIdentifier, writer.toString()); - } - catch(TransformerException ex) - { - Timber.e(ex, "Error occurred in transforming response for method %s", requestIdentifier); - } - } - - public Node getDocument() { - return doc; - } - - public ArrayList getNodes(String xpath) { - try { - ArrayList results = new ArrayList<>(); - NodeList nodes = (NodeList) evaluator.evaluate(xpath, doc, XPathConstants.NODESET); - for(int i = 0; i < nodes.getLength(); i++) { - results.add(new CustomApiResult(nodes.item(i))); - } - return results; - } catch (XPathExpressionException e) { - return null; - } - - } - public CustomApiResult getNode(String xpath) { - try { - return new CustomApiResult((Node) evaluator.evaluate(xpath, doc, XPathConstants.NODE)); - } catch (XPathExpressionException e) { - return null; - } - } - - public Double getNumber(String xpath) { - try { - return (Double) evaluator.evaluate(xpath, doc, XPathConstants.NUMBER); - } catch (XPathExpressionException e) { - return null; - } - } - - public String getString(String xpath) { - try { - return (String) evaluator.evaluate(xpath, doc, XPathConstants.STRING); - } catch (XPathExpressionException e) { - return null; - } - } -} diff --git a/app/src/main/java/fr/free/nrw/commons/mwapi/CustomMwApi.java b/app/src/main/java/fr/free/nrw/commons/mwapi/CustomMwApi.java deleted file mode 100644 index 7500a97ee..000000000 --- a/app/src/main/java/fr/free/nrw/commons/mwapi/CustomMwApi.java +++ /dev/null @@ -1,188 +0,0 @@ -package fr.free.nrw.commons.mwapi; - -import org.apache.http.cookie.Cookie; -import org.apache.http.impl.client.AbstractHttpClient; -import org.apache.http.impl.cookie.BasicClientCookie; - -import java.io.IOException; -import java.io.InputStream; -import java.net.MalformedURLException; -import java.net.URL; -import java.util.HashMap; -import java.util.List; - -import in.yuvi.http.fluent.Http; -import in.yuvi.http.fluent.ProgressListener; -import timber.log.Timber; - -public class CustomMwApi { - public class RequestBuilder { - private HashMap params; - private CustomMwApi api; - - RequestBuilder(CustomMwApi api) { - params = new HashMap<>(); - this.api = api; - } - - public RequestBuilder param(String key, Object value) { - params.put(key, value); - return this; - } - - public CustomApiResult get() throws IOException { - return api.makeRequest("GET", params); - } - - public CustomApiResult post() throws IOException { - return api.makeRequest("POST", params); - } - } - - private AbstractHttpClient client; - private String apiURL; - public boolean isLoggedIn; - private String authCookie = null; - private String userName = null; - private String userID = null; - - public CustomMwApi(String apiURL, AbstractHttpClient client) { - this.apiURL = apiURL; - this.client = client; - } - - public RequestBuilder action(String action) { - RequestBuilder builder = new RequestBuilder(this); - builder.param("action", action); - return builder; - } - - public String getAuthCookie() { - if (authCookie == null){ - authCookie = ""; - List cookies = client.getCookieStore().getCookies(); - for(Cookie cookie: cookies) { - authCookie += cookie.getName() + "=" + cookie.getValue() + ";"; - } - } - return authCookie; - } - - public void setAuthCookie(String authCookie) { - if (authCookie == null) {//If the authCookie is null, no need to proceed - return; - } - - this.authCookie = authCookie; - this.isLoggedIn = true; - String[] cookies = authCookie.split(";"); - String domain; - try { - domain = new URL(apiURL).getHost(); - } catch (MalformedURLException e) { - // Mighty well better not happen! - e.printStackTrace(); - throw new RuntimeException(e); - } - // This works because I know which cookies are going to be set by MediaWiki, and they don't contain a = or ; in them :D - for(String cookie: cookies) { - String[] parts = cookie.split("="); - BasicClientCookie c = new BasicClientCookie(parts[0], parts[1]); - c.setDomain(domain); - client.getCookieStore().addCookie(c); - } - } - - public void removeAllCookies() { - client.getCookieStore().clear(); - } - - public boolean validateLogin() throws IOException { - CustomApiResult userMeta = this.action("query").param("meta", "userinfo").get(); - this.userID = userMeta.getString("/api/query/userinfo/@id"); - this.userName = userMeta.getString("/api/query/userinfo/@name"); - Timber.d("User id is %s and user name is %s", userID, userName); - return !userID.equals("0"); - } - - public String getUserID() throws IOException { - if (this.userID == null || this.userID.equals("0")) { - this.validateLogin(); - } - return userID; - } - - public String getUserName() throws IOException { - if (this.userID == null || this.userID.equals("0")) { - this.validateLogin(); - } - return userName; - } - - public String login(String username, String password) throws IOException { - CustomApiResult tokenData = this.action("login").param("lgname", username).param("lgpassword", password).post(); - String result = tokenData.getString("/api/login/@result"); - if (result.equals("NeedToken")) { - String token = tokenData.getString("/api/login/@token"); - CustomApiResult confirmData = this.action("login").param("lgname", username).param("lgpassword", password).param("lgtoken", token).post(); - String finalResult = confirmData.getString("/api/login/@result"); - if (finalResult.equals("Success")) { - isLoggedIn = true; - } - return finalResult; - } else { - return result; - } - } - - public CustomApiResult uploadToStash(String filename, InputStream file, long length, String token, ProgressListener uploadProgressListener) throws IOException { - Timber.d("Initiating upload for file %s", filename); - Http.HttpRequestBuilder builder = Http.multipart(apiURL) - .data("action", "upload") - .data("stash", "1") - .data("token", token) - .data("ignorewarnings", "1") - .data("filename", filename) - .sendProgressListener(uploadProgressListener); - if (length != -1) { - builder.file("file", filename, file, length); - } else { - builder.file("file", filename, file); - } - - return CustomApiResult.fromRequestBuilder("uploadToStash", builder, client); - } - - public CustomApiResult uploadFromStash(String filename, String filekey, String text, String comment, String token) throws IOException { - Http.HttpRequestBuilder builder = Http.multipart(apiURL) - .data("action", "upload") - .data("token", token) - .data("ignorewarnings", "1") - .data("text", text) - .data("comment", comment) - .data("filename", filename) - .data("filekey", filekey); - - return CustomApiResult.fromRequestBuilder("uploadFromStash", builder, client); - } - - public void logout() throws IOException { - // I should be doing more validation here, but meh - isLoggedIn = false; - this.action("logout").post(); - removeAllCookies(); - authCookie = null; - } - - private CustomApiResult makeRequest(String method, HashMap params) throws IOException { - Http.HttpRequestBuilder builder; - if (method.equals("POST")) { - builder = Http.post(apiURL); - } else { - builder = Http.get(apiURL); - } - builder.data(params); - return CustomApiResult.fromRequestBuilder(apiURL, builder, client); - } -} -; diff --git a/app/src/main/java/fr/free/nrw/commons/mwapi/LogEventResult.java b/app/src/main/java/fr/free/nrw/commons/mwapi/LogEventResult.java deleted file mode 100644 index 6d1b8f9b4..000000000 --- a/app/src/main/java/fr/free/nrw/commons/mwapi/LogEventResult.java +++ /dev/null @@ -1,51 +0,0 @@ -package fr.free.nrw.commons.mwapi; - -import androidx.annotation.NonNull; -import androidx.annotation.Nullable; - -import java.util.Date; -import java.util.List; - -public class LogEventResult { - private final List logEvents; - private final String queryContinue; - - LogEventResult(@NonNull List logEvents, String queryContinue) { - this.logEvents = logEvents; - this.queryContinue = queryContinue; - } - - @NonNull - public List getLogEvents() { - return logEvents; - } - - @Nullable - public String getQueryContinue() { - return queryContinue; - } - - public static class LogEvent { - private final String pageId; - private final String filename; - private final Date dateUpdated; - - LogEvent(String pageId, String filename, Date dateUpdated) { - this.pageId = pageId; - this.filename = filename; - this.dateUpdated = dateUpdated; - } - - public boolean isDeleted() { - return pageId.equals("0"); - } - - public String getFilename() { - return filename; - } - - public Date getDateUpdated() { - return dateUpdated; - } - } -} diff --git a/app/src/main/java/fr/free/nrw/commons/mwapi/MediaWikiApi.java b/app/src/main/java/fr/free/nrw/commons/mwapi/MediaWikiApi.java deleted file mode 100644 index b92d60b8d..000000000 --- a/app/src/main/java/fr/free/nrw/commons/mwapi/MediaWikiApi.java +++ /dev/null @@ -1,19 +0,0 @@ -package fr.free.nrw.commons.mwapi; - -import androidx.annotation.NonNull; -import androidx.annotation.Nullable; - -import java.io.IOException; - -import io.reactivex.Single; - -public interface MediaWikiApi { - - void logout(); - -// Single getCampaigns(); - - interface ProgressListener { - void onProgress(long transferred, long total); - } -} diff --git a/app/src/main/java/fr/free/nrw/commons/mwapi/NetworkInterceptors.java b/app/src/main/java/fr/free/nrw/commons/mwapi/NetworkInterceptors.java deleted file mode 100644 index 06928f528..000000000 --- a/app/src/main/java/fr/free/nrw/commons/mwapi/NetworkInterceptors.java +++ /dev/null @@ -1,85 +0,0 @@ -package fr.free.nrw.commons.mwapi; - -import androidx.annotation.NonNull; - -import org.apache.http.Header; -import org.apache.http.HttpRequest; -import org.apache.http.HttpRequestInterceptor; -import org.apache.http.impl.client.ClientParamsStack; -import org.apache.http.params.HttpParamsNames; -import org.apache.http.protocol.HttpContext; - -import java.util.HashSet; -import java.util.Set; - -import timber.log.Timber; - -public class NetworkInterceptors { - - /** - * Interceptor to log the HTTP request - */ - @NonNull - public static HttpRequestInterceptor getHttpRequestInterceptor() { - return (HttpRequest request, HttpContext httpContext) -> { - Timber.v("<<<<<<<<<<<<<< START OF REQUEST LOGGING [%s] >>>>>>>>>>>>", request.getRequestLine().getUri()); - - Timber.v("Request line:\n %s", request.getRequestLine().toString()); - logRequestParams(request); - logRequestHeaders(request); - Timber.v("Protocol version:\n %s", request.getProtocolVersion()); - - Timber.v("<<<<<<<<<<<<<< END OF REQUEST LOGGING [%s] >>>>>>>>>>>>", request.getRequestLine().getUri()); - }; - } - - /** - * Log all request params from a HTTPRequest - * @param request - */ - private static void logRequestParams(HttpRequest request) { - Set names = new HashSet<>(); - if (request.getParams() instanceof ClientParamsStack) { - ClientParamsStack cps = (ClientParamsStack) request.getParams(); - if (cps.getApplicationParams() != null - && cps.getRequestParams() instanceof HttpParamsNames) { - names.addAll(((HttpParamsNames) cps.getApplicationParams()).getNames()); - } - if (cps.getClientParams() != null - && cps.getClientParams() instanceof HttpParamsNames) { - names.addAll(((HttpParamsNames) cps.getClientParams()).getNames()); - } - if (cps.getRequestParams() != null - && cps.getRequestParams() instanceof HttpParamsNames) { - names.addAll(((HttpParamsNames) cps.getRequestParams()).getNames()); - } - if (cps.getOverrideParams() != null - && cps.getRequestParams() instanceof HttpParamsNames) { - names.addAll(((HttpParamsNames) cps.getOverrideParams()).getNames()); - } - } else { - HttpParamsNames params = (HttpParamsNames) request.getParams(); - names = params.getNames(); - } - - Timber.v("<<<<<<<<<<<<<< REQUEST PARAMS >>>>>>>>>>>>"); - for (String name : names) { - Timber.v("Param >> %s: %s", name, request.getParams().getParameter(name)); - } - Timber.v("<<<<<<<<<<<<<< REQUEST PARAMS >>>>>>>>>>>>"); - } - - /** - * Log all headers from a HTTPRequest - * @param request - */ - private static void logRequestHeaders(HttpRequest request) { - Header[] headerFields = request.getAllHeaders(); - - Timber.v("<<<<<<<<<<<<<< HEADERS >>>>>>>>>>>>"); - for (int e = 0; e < request.getAllHeaders().length; e++) { - Timber.v("Header >> %s: %s", headerFields[e].getName(), headerFields[e].getValue()); - } - Timber.v("<<<<<<<<<<<<<< HEADERS >>>>>>>>>>>>"); - } -} diff --git a/app/src/main/java/fr/free/nrw/commons/quiz/QuizChecker.java b/app/src/main/java/fr/free/nrw/commons/quiz/QuizChecker.java index 29711ffbf..666969759 100644 --- a/app/src/main/java/fr/free/nrw/commons/quiz/QuizChecker.java +++ b/app/src/main/java/fr/free/nrw/commons/quiz/QuizChecker.java @@ -47,7 +47,7 @@ public class QuizChecker { /** * constructor to set the parameters for quiz * @param sessionManager - * @param okHttpJsonApiClient instance of MediaWikiApi + * @param okHttpJsonApiClient */ @Inject public QuizChecker(SessionManager sessionManager, diff --git a/app/src/main/java/fr/free/nrw/commons/review/ReviewActivity.java b/app/src/main/java/fr/free/nrw/commons/review/ReviewActivity.java index 2f33d1f03..15938badb 100644 --- a/app/src/main/java/fr/free/nrw/commons/review/ReviewActivity.java +++ b/app/src/main/java/fr/free/nrw/commons/review/ReviewActivity.java @@ -27,7 +27,6 @@ import butterknife.ButterKnife; import fr.free.nrw.commons.Media; import fr.free.nrw.commons.R; import fr.free.nrw.commons.delete.DeleteHelper; -import fr.free.nrw.commons.mwapi.MediaWikiApi; import fr.free.nrw.commons.theme.NavigationBaseActivity; import fr.free.nrw.commons.utils.DialogUtil; import fr.free.nrw.commons.utils.ViewUtil; @@ -58,8 +57,6 @@ public class ReviewActivity extends NavigationBaseActivity { public ReviewPagerAdapter reviewPagerAdapter; public ReviewController reviewController; @Inject - MediaWikiApi mwApi; - @Inject ReviewHelper reviewHelper; @Inject DeleteHelper deleteHelper; diff --git a/app/src/main/java/fr/free/nrw/commons/review/ReviewHelper.java b/app/src/main/java/fr/free/nrw/commons/review/ReviewHelper.java index 2b44fbdcf..8f078f82f 100644 --- a/app/src/main/java/fr/free/nrw/commons/review/ReviewHelper.java +++ b/app/src/main/java/fr/free/nrw/commons/review/ReviewHelper.java @@ -15,8 +15,6 @@ import javax.inject.Singleton; import fr.free.nrw.commons.Media; import fr.free.nrw.commons.media.MediaClient; -import fr.free.nrw.commons.mwapi.MediaWikiApi; -import fr.free.nrw.commons.mwapi.OkHttpJsonApiClient; import io.reactivex.Observable; import io.reactivex.Single; diff --git a/app/src/main/java/fr/free/nrw/commons/upload/ImageProcessingService.java b/app/src/main/java/fr/free/nrw/commons/upload/ImageProcessingService.java index 3baaf9959..9fbd8dc63 100644 --- a/app/src/main/java/fr/free/nrw/commons/upload/ImageProcessingService.java +++ b/app/src/main/java/fr/free/nrw/commons/upload/ImageProcessingService.java @@ -11,7 +11,6 @@ import javax.inject.Inject; import javax.inject.Singleton; import fr.free.nrw.commons.media.MediaClient; -import fr.free.nrw.commons.mwapi.MediaWikiApi; import fr.free.nrw.commons.nearby.Place; import fr.free.nrw.commons.utils.ImageUtils; import fr.free.nrw.commons.utils.ImageUtilsWrapper; @@ -32,7 +31,6 @@ import static fr.free.nrw.commons.utils.ImageUtils.IMAGE_OK; public class ImageProcessingService { private final FileUtilsWrapper fileUtilsWrapper; private final ImageUtilsWrapper imageUtilsWrapper; - private final MediaWikiApi mwApi; private final ReadFBMD readFBMD; private final EXIFReader EXIFReader; private final MediaClient mediaClient; @@ -41,11 +39,10 @@ public class ImageProcessingService { @Inject public ImageProcessingService(FileUtilsWrapper fileUtilsWrapper, ImageUtilsWrapper imageUtilsWrapper, - MediaWikiApi mwApi, ReadFBMD readFBMD, EXIFReader EXIFReader, + ReadFBMD readFBMD, EXIFReader EXIFReader, MediaClient mediaClient, Context context) { this.fileUtilsWrapper = fileUtilsWrapper; this.imageUtilsWrapper = imageUtilsWrapper; - this.mwApi = mwApi; this.readFBMD = readFBMD; this.EXIFReader = EXIFReader; this.mediaClient = mediaClient; diff --git a/app/src/main/java/fr/free/nrw/commons/upload/UploadService.java b/app/src/main/java/fr/free/nrw/commons/upload/UploadService.java index 897c025ed..dcfaa1b59 100644 --- a/app/src/main/java/fr/free/nrw/commons/upload/UploadService.java +++ b/app/src/main/java/fr/free/nrw/commons/upload/UploadService.java @@ -20,7 +20,6 @@ import fr.free.nrw.commons.contributions.ContributionDao; import fr.free.nrw.commons.contributions.ContributionsContentProvider; import fr.free.nrw.commons.contributions.MainActivity; import fr.free.nrw.commons.media.MediaClient; -import fr.free.nrw.commons.mwapi.MediaWikiApi; import fr.free.nrw.commons.utils.CommonsDateUtil; import fr.free.nrw.commons.wikidata.WikidataEditService; import io.reactivex.Observable; @@ -45,7 +44,6 @@ public class UploadService extends HandlerService { public static final String EXTRA_FILES = EXTRA_PREFIX + ".files"; public static final String EXTRA_CAMPAIGN = EXTRA_PREFIX + ".campaign"; - @Inject MediaWikiApi mwApi; @Inject WikidataEditService wikidataEditService; @Inject SessionManager sessionManager; @Inject ContributionDao contributionDao; @@ -88,7 +86,6 @@ public class UploadService extends HandlerService { this.contribution = contribution; } - @Override public void onProgress(long transferred, long total) { Timber.d("Uploaded %d of %d", transferred, total); if (!notificationTitleChanged) { diff --git a/app/src/main/java/fr/free/nrw/commons/wikidata/WikidataEditService.java b/app/src/main/java/fr/free/nrw/commons/wikidata/WikidataEditService.java index 8bb753cf9..1c6b17317 100644 --- a/app/src/main/java/fr/free/nrw/commons/wikidata/WikidataEditService.java +++ b/app/src/main/java/fr/free/nrw/commons/wikidata/WikidataEditService.java @@ -12,7 +12,6 @@ import javax.inject.Singleton; import fr.free.nrw.commons.R; import fr.free.nrw.commons.actions.PageEditClient; import fr.free.nrw.commons.kvstore.JsonKvStore; -import fr.free.nrw.commons.mwapi.MediaWikiApi; import fr.free.nrw.commons.utils.ViewUtil; import io.reactivex.android.schedulers.AndroidSchedulers; import io.reactivex.schedulers.Schedulers; @@ -20,7 +19,7 @@ import timber.log.Timber; /** * This class is meant to handle the Wikidata edits made through the app - * It will talk with MediaWikiApi to make necessary API calls, log the edits and fire listeners + * It will talk with MediaWiki Apis to make the necessary calls, log the edits and fire listeners * on successful edits */ @Singleton diff --git a/app/src/test/kotlin/fr/free/nrw/commons/MediaDataExtractorTest.kt b/app/src/test/kotlin/fr/free/nrw/commons/MediaDataExtractorTest.kt index c40ce6f11..14af3c4c2 100644 --- a/app/src/test/kotlin/fr/free/nrw/commons/MediaDataExtractorTest.kt +++ b/app/src/test/kotlin/fr/free/nrw/commons/MediaDataExtractorTest.kt @@ -1,7 +1,6 @@ package fr.free.nrw.commons import fr.free.nrw.commons.media.MediaClient -import fr.free.nrw.commons.mwapi.MediaWikiApi import io.reactivex.Single import org.junit.Assert.assertTrue import org.junit.Before @@ -18,12 +17,8 @@ import org.mockito.MockitoAnnotations */ class MediaDataExtractorTest { - @Mock - internal var mwApi: MediaWikiApi? = null - @Mock internal var mediaClient: MediaClient? = null - @InjectMocks var mediaDataExtractor: MediaDataExtractor? = null diff --git a/app/src/test/kotlin/fr/free/nrw/commons/review/ReviewHelperTest.kt b/app/src/test/kotlin/fr/free/nrw/commons/review/ReviewHelperTest.kt index f796e2cff..fbad4a46f 100644 --- a/app/src/test/kotlin/fr/free/nrw/commons/review/ReviewHelperTest.kt +++ b/app/src/test/kotlin/fr/free/nrw/commons/review/ReviewHelperTest.kt @@ -2,8 +2,6 @@ package fr.free.nrw.commons.review import fr.free.nrw.commons.Media import fr.free.nrw.commons.media.MediaClient -import fr.free.nrw.commons.mwapi.MediaWikiApi -import fr.free.nrw.commons.mwapi.OkHttpJsonApiClient import io.reactivex.Observable import io.reactivex.Single import junit.framework.Assert.assertNotNull diff --git a/app/src/test/kotlin/fr/free/nrw/commons/upload/ImageProcessingServiceTest.kt b/app/src/test/kotlin/fr/free/nrw/commons/upload/ImageProcessingServiceTest.kt index a7cfdba88..cb2dfb33a 100644 --- a/app/src/test/kotlin/fr/free/nrw/commons/upload/ImageProcessingServiceTest.kt +++ b/app/src/test/kotlin/fr/free/nrw/commons/upload/ImageProcessingServiceTest.kt @@ -3,7 +3,6 @@ package fr.free.nrw.commons.upload import android.net.Uri import fr.free.nrw.commons.location.LatLng import fr.free.nrw.commons.media.MediaClient -import fr.free.nrw.commons.mwapi.MediaWikiApi import fr.free.nrw.commons.nearby.Place import fr.free.nrw.commons.utils.ImageUtils import fr.free.nrw.commons.utils.ImageUtilsWrapper @@ -24,8 +23,6 @@ class u { @Mock internal var imageUtilsWrapper: ImageUtilsWrapper? = null @Mock - internal var mwApi: MediaWikiApi? = null - @Mock internal var readFBMD: ReadFBMD?=null @Mock internal var readEXIF: EXIFReader?=null diff --git a/app/src/test/kotlin/fr/free/nrw/commons/upload/UploadModelTest.kt b/app/src/test/kotlin/fr/free/nrw/commons/upload/UploadModelTest.kt index e27bba4c3..c6f851889 100644 --- a/app/src/test/kotlin/fr/free/nrw/commons/upload/UploadModelTest.kt +++ b/app/src/test/kotlin/fr/free/nrw/commons/upload/UploadModelTest.kt @@ -5,12 +5,10 @@ import android.content.Context import fr.free.nrw.commons.auth.SessionManager import fr.free.nrw.commons.filepicker.UploadableFile import fr.free.nrw.commons.kvstore.JsonKvStore -import fr.free.nrw.commons.mwapi.MediaWikiApi import fr.free.nrw.commons.nearby.Place import fr.free.nrw.commons.utils.ImageUtils.IMAGE_OK import io.reactivex.Single import org.junit.After -import org.junit.Assert.assertFalse import org.junit.Assert.assertTrue import org.junit.Before import org.junit.Test @@ -41,8 +39,6 @@ class UploadModelTest { @Mock internal var context: Context? = null @Mock - internal var mwApi: MediaWikiApi? = null - @Mock internal var sessionManage: SessionManager? = null @Mock internal var fileUtilsWrapper: FileUtilsWrapper? = null