diff --git a/.idea/inspectionProfiles/Project_Default.xml b/.idea/inspectionProfiles/Project_Default.xml index a52bc1217..b70f8fee8 100644 --- a/.idea/inspectionProfiles/Project_Default.xml +++ b/.idea/inspectionProfiles/Project_Default.xml @@ -44,5 +44,17 @@ + + \ No newline at end of file diff --git a/app/src/main/java/fr/free/nrw/commons/CommonsApplication.java b/app/src/main/java/fr/free/nrw/commons/CommonsApplication.java index dc37db26c..0ebeba283 100644 --- a/app/src/main/java/fr/free/nrw/commons/CommonsApplication.java +++ b/app/src/main/java/fr/free/nrw/commons/CommonsApplication.java @@ -97,12 +97,6 @@ public class CommonsApplication extends MultiDexApplication { public static final String FEEDBACK_EMAIL_TEMPLATE_HEADER = "-- Technical information --"; - /** - * Constants End - */ - - private RefWatcher refWatcher; - private static CommonsApplication INSTANCE; public static CommonsApplication getInstance() { return INSTANCE; @@ -191,10 +185,6 @@ public class CommonsApplication extends MultiDexApplication { Timber.plant(new Timber.DebugTree()); } - public static boolean isRoboUnitTest() { - return "robolectric".equals(Build.FINGERPRINT); - } - private ThreadPoolService getFileLoggingThreadPool() { return new ThreadPoolService.Builder("file-logging-thread") .setPriority(Process.THREAD_PRIORITY_LOWEST) @@ -230,17 +220,6 @@ public class CommonsApplication extends MultiDexApplication { return LeakCanary.install(this); } - /** - * Provides a way to get member refWatcher - * - * @param context Application context - * @return application member refWatcher - */ - public static RefWatcher getRefWatcher(Context context) { - CommonsApplication application = (CommonsApplication) context.getApplicationContext(); - return application.refWatcher; - } - /** * clears data of current application * @param context Application context diff --git a/app/src/main/java/fr/free/nrw/commons/License.java b/app/src/main/java/fr/free/nrw/commons/License.java deleted file mode 100644 index 1fea236ee..000000000 --- a/app/src/main/java/fr/free/nrw/commons/License.java +++ /dev/null @@ -1,79 +0,0 @@ -package fr.free.nrw.commons; - -import androidx.annotation.Nullable; - -/** - * represents Licence object - */ -public class License { - private String key; - private String template; - private String url; - private String name; - - /** - * Constructs a new instance of License. - * - * @param key license key - * @param template license template - * @param url license URL - * @param name licence name - * - * @throws RuntimeException if License.key or Licence.template is null - */ - public License(String key, String template, String url, String name) { - if (key == null) { - throw new RuntimeException("License.key must not be null"); - } - if (template == null) { - throw new RuntimeException("License.template must not be null"); - } - this.key = key; - this.template = template; - this.url = url; - this.name = name; - } - - /** - * Gets the license key. - * @return license key as a String. - */ - public String getKey() { - return key; - } - - /** - * Gets the license template. - * @return license template as a String. - */ - public String getTemplate() { - return template; - } - - /** - * Gets the license name. If name is null, return license key. - * @return license name as string. if name null, license key as String - */ - public String getName() { - if (name == null) { - // hack - return getKey(); - } else { - return name; - } - } - - /** - * Gets the license URL - * - * @param language license language - * @return URL - */ - public @Nullable String getUrl(String language) { - if (url == null) { - return null; - } else { - return url.replace("$lang", language); - } - } -} diff --git a/app/src/main/java/fr/free/nrw/commons/MvpView.java b/app/src/main/java/fr/free/nrw/commons/MvpView.java index 7485b2aaf..d8eb6c6ed 100644 --- a/app/src/main/java/fr/free/nrw/commons/MvpView.java +++ b/app/src/main/java/fr/free/nrw/commons/MvpView.java @@ -4,5 +4,5 @@ package fr.free.nrw.commons; * Base interface for all the views */ public interface MvpView { - void showMessage(String message); + } diff --git a/app/src/main/java/fr/free/nrw/commons/ViewHolder.java b/app/src/main/java/fr/free/nrw/commons/ViewHolder.java deleted file mode 100644 index 7181d85cc..000000000 --- a/app/src/main/java/fr/free/nrw/commons/ViewHolder.java +++ /dev/null @@ -1,7 +0,0 @@ -package fr.free.nrw.commons; - -import android.content.Context; - -public interface ViewHolder { - void bindModel(Context context, T model); -} diff --git a/app/src/main/java/fr/free/nrw/commons/actions/PageEditClient.java b/app/src/main/java/fr/free/nrw/commons/actions/PageEditClient.java index 46005d006..53cfe8d0f 100644 --- a/app/src/main/java/fr/free/nrw/commons/actions/PageEditClient.java +++ b/app/src/main/java/fr/free/nrw/commons/actions/PageEditClient.java @@ -1,9 +1,7 @@ package fr.free.nrw.commons.actions; -import org.wikipedia.csrf.CsrfTokenClient; -import org.wikipedia.dataclient.Service; - import io.reactivex.Observable; +import org.wikipedia.csrf.CsrfTokenClient; /** * This class acts as a Client to facilitate wiki page editing @@ -16,14 +14,11 @@ public class PageEditClient { private final CsrfTokenClient csrfTokenClient; private final PageEditInterface pageEditInterface; - private final Service service; public PageEditClient(CsrfTokenClient csrfTokenClient, - PageEditInterface pageEditInterface, - Service service) { + PageEditInterface pageEditInterface) { this.csrfTokenClient = csrfTokenClient; this.pageEditInterface = pageEditInterface; - this.service = service; } /** 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 f2c552a83..7ebc224d7 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 @@ -1,5 +1,10 @@ package fr.free.nrw.commons.auth; +import static android.view.KeyEvent.KEYCODE_ENTER; +import static android.view.View.VISIBLE; +import static android.view.inputmethod.EditorInfo.IME_ACTION_DONE; +import static fr.free.nrw.commons.di.NetworkingModule.NAMED_COMMONS_WIKI_SITE; + import android.accounts.AccountAuthenticatorActivity; import android.app.ProgressDialog; import android.content.Context; @@ -17,7 +22,6 @@ import android.view.inputmethod.InputMethodManager; import android.widget.Button; import android.widget.EditText; import android.widget.TextView; - import androidx.annotation.ColorRes; import androidx.annotation.NonNull; import androidx.annotation.Nullable; @@ -26,25 +30,12 @@ import androidx.appcompat.app.AlertDialog; import androidx.appcompat.app.AppCompatDelegate; import androidx.core.app.NavUtils; import androidx.core.content.ContextCompat; - -import com.google.android.material.textfield.TextInputLayout; - -import org.wikipedia.AppAdapter; -import org.wikipedia.dataclient.ServiceFactory; -import org.wikipedia.dataclient.WikiSite; -import org.wikipedia.dataclient.mwapi.MwQueryResponse; -import org.wikipedia.login.LoginClient; -import org.wikipedia.login.LoginClient.LoginCallback; -import org.wikipedia.login.LoginResult; - -import javax.inject.Inject; -import javax.inject.Named; - import butterknife.BindView; import butterknife.ButterKnife; import butterknife.OnClick; import butterknife.OnEditorAction; import butterknife.OnFocusChange; +import com.google.android.material.textfield.TextInputLayout; import fr.free.nrw.commons.BuildConfig; import fr.free.nrw.commons.R; import fr.free.nrw.commons.Utils; @@ -58,16 +49,20 @@ import fr.free.nrw.commons.utils.ConfigUtils; import fr.free.nrw.commons.utils.SystemThemeUtils; import fr.free.nrw.commons.utils.ViewUtil; import io.reactivex.disposables.CompositeDisposable; +import javax.inject.Inject; +import javax.inject.Named; +import org.wikipedia.AppAdapter; +import org.wikipedia.dataclient.ServiceFactory; +import org.wikipedia.dataclient.WikiSite; +import org.wikipedia.dataclient.mwapi.MwQueryResponse; +import org.wikipedia.login.LoginClient; +import org.wikipedia.login.LoginClient.LoginCallback; +import org.wikipedia.login.LoginResult; import retrofit2.Call; import retrofit2.Callback; import retrofit2.Response; import timber.log.Timber; -import static android.view.KeyEvent.KEYCODE_ENTER; -import static android.view.View.VISIBLE; -import static android.view.inputmethod.EditorInfo.IME_ACTION_DONE; -import static fr.free.nrw.commons.di.NetworkingModule.NAMED_COMMONS_WIKI_SITE; - public class LoginActivity extends AccountAuthenticatorActivity { @Inject @@ -246,7 +241,6 @@ public class LoginActivity extends AccountAuthenticatorActivity { public void performLogin() { Timber.d("Login to start!"); final String username = usernameEdit.getText().toString(); - final String rawUsername = usernameEdit.getText().toString().trim(); final String password = passwordEdit.getText().toString(); String twoFactorCode = twoFactorEdit.getText().toString(); diff --git a/app/src/main/java/fr/free/nrw/commons/bookmarks/locations/BookmarkLocationsFragment.java b/app/src/main/java/fr/free/nrw/commons/bookmarks/locations/BookmarkLocationsFragment.java index 21d4d7460..8eef27ad3 100644 --- a/app/src/main/java/fr/free/nrw/commons/bookmarks/locations/BookmarkLocationsFragment.java +++ b/app/src/main/java/fr/free/nrw/commons/bookmarks/locations/BookmarkLocationsFragment.java @@ -6,7 +6,6 @@ import android.view.LayoutInflater; import android.view.View; import android.view.ViewGroup; import android.widget.ProgressBar; -import android.widget.RelativeLayout; import android.widget.TextView; import androidx.annotation.NonNull; import androidx.annotation.Nullable; @@ -29,7 +28,6 @@ public class BookmarkLocationsFragment extends DaggerFragment { @BindView(R.id.statusMessage) TextView statusTextView; @BindView(R.id.loadingImagesProgressBar) ProgressBar progressBar; @BindView(R.id.listView) RecyclerView recyclerView; - @BindView(R.id.parentLayout) RelativeLayout parentLayout; @Inject BookmarkLocationsController controller; @Inject ContributionController contributionController; diff --git a/app/src/main/java/fr/free/nrw/commons/bookmarks/pictures/BookmarkPicturesController.java b/app/src/main/java/fr/free/nrw/commons/bookmarks/pictures/BookmarkPicturesController.java index abab7a1c3..2cae3bb11 100644 --- a/app/src/main/java/fr/free/nrw/commons/bookmarks/pictures/BookmarkPicturesController.java +++ b/app/src/main/java/fr/free/nrw/commons/bookmarks/pictures/BookmarkPicturesController.java @@ -54,10 +54,4 @@ public class BookmarkPicturesController { return bookmarks.size() != currentBookmarks.size(); } - /** - * Cancels the requests to the API and the DB - */ - void stop() { - //noop - } } diff --git a/app/src/main/java/fr/free/nrw/commons/bookmarks/pictures/BookmarkPicturesFragment.java b/app/src/main/java/fr/free/nrw/commons/bookmarks/pictures/BookmarkPicturesFragment.java index 7070fa40b..c9a3ec4eb 100644 --- a/app/src/main/java/fr/free/nrw/commons/bookmarks/pictures/BookmarkPicturesFragment.java +++ b/app/src/main/java/fr/free/nrw/commons/bookmarks/pictures/BookmarkPicturesFragment.java @@ -71,11 +71,6 @@ public class BookmarkPicturesFragment extends DaggerFragment { initList(); } - @Override - public void onStop() { - super.onStop(); - controller.stop(); - } @Override public void onDestroy() { diff --git a/app/src/main/java/fr/free/nrw/commons/category/Category.java b/app/src/main/java/fr/free/nrw/commons/category/Category.java index 8ea3c442c..2316e76b4 100644 --- a/app/src/main/java/fr/free/nrw/commons/category/Category.java +++ b/app/src/main/java/fr/free/nrw/commons/category/Category.java @@ -13,9 +13,6 @@ public class Category { private Date lastUsed; private int timesUsed; - public Category() { - } - public Category(Uri contentUri, String name, Date lastUsed, int timesUsed) { this.contentUri = contentUri; this.name = name; @@ -32,15 +29,6 @@ public class Category { return name; } - /** - * Modifies name - * - * @param name Category name - */ - public void setName(String name) { - this.name = name; - } - /** * Gets last used date * diff --git a/app/src/main/java/fr/free/nrw/commons/category/CategoryClickedListener.java b/app/src/main/java/fr/free/nrw/commons/category/CategoryClickedListener.java deleted file mode 100644 index df99b4060..000000000 --- a/app/src/main/java/fr/free/nrw/commons/category/CategoryClickedListener.java +++ /dev/null @@ -1,5 +0,0 @@ -package fr.free.nrw.commons.category; - -public interface CategoryClickedListener { - void categoryClicked(CategoryItem item); -} diff --git a/app/src/main/java/fr/free/nrw/commons/category/OnCategoriesSaveHandler.java b/app/src/main/java/fr/free/nrw/commons/category/OnCategoriesSaveHandler.java deleted file mode 100644 index 5899d5905..000000000 --- a/app/src/main/java/fr/free/nrw/commons/category/OnCategoriesSaveHandler.java +++ /dev/null @@ -1,7 +0,0 @@ -package fr.free.nrw.commons.category; - -import java.util.List; - -public interface OnCategoriesSaveHandler { - void onCategoriesSave(List categories); -} diff --git a/app/src/main/java/fr/free/nrw/commons/concurrency/ThreadPoolService.java b/app/src/main/java/fr/free/nrw/commons/concurrency/ThreadPoolService.java index f057f61b2..09a467738 100644 --- a/app/src/main/java/fr/free/nrw/commons/concurrency/ThreadPoolService.java +++ b/app/src/main/java/fr/free/nrw/commons/concurrency/ThreadPoolService.java @@ -1,13 +1,9 @@ package fr.free.nrw.commons.concurrency; import androidx.annotation.NonNull; - -import java.util.concurrent.Callable; import java.util.concurrent.Executor; -import java.util.concurrent.ScheduledFuture; import java.util.concurrent.ScheduledThreadPoolExecutor; import java.util.concurrent.ThreadFactory; -import java.util.concurrent.TimeUnit; /** * This class is a thread pool which provides some additional features: @@ -36,31 +32,6 @@ public class ThreadPoolService implements Executor { }, b.exceptionHandler); } - public ScheduledFuture schedule(Callable callable, long time, TimeUnit timeUnit) { - return backgroundPool.schedule(callable, time, timeUnit); - } - - public ScheduledFuture schedule(Runnable runnable) { - return schedule(runnable, 0, TimeUnit.SECONDS); - } - - public ScheduledFuture schedule(Runnable runnable, long time, TimeUnit timeUnit) { - return backgroundPool.schedule(runnable, time, timeUnit); - } - - public ScheduledFuture scheduleAtFixedRate(final Runnable task, long initialDelay, - long period, final TimeUnit timeUnit) { - return backgroundPool.scheduleAtFixedRate(task, initialDelay, period, timeUnit); - } - - public ScheduledThreadPoolExecutor executor() { - return backgroundPool; - } - - public void shutdown(){ - backgroundPool.shutdown(); - } - @Override public void execute(Runnable command) { backgroundPool.execute(command); diff --git a/app/src/main/java/fr/free/nrw/commons/contributions/ContributionBoundaryCallback.kt b/app/src/main/java/fr/free/nrw/commons/contributions/ContributionBoundaryCallback.kt index 44b1a35fb..a4e620349 100644 --- a/app/src/main/java/fr/free/nrw/commons/contributions/ContributionBoundaryCallback.kt +++ b/app/src/main/java/fr/free/nrw/commons/contributions/ContributionBoundaryCallback.kt @@ -76,7 +76,6 @@ class ContributionBoundaryCallback @Inject constructor( repository.save(contributions) .subscribeOn(ioThreadScheduler) .subscribe { longs: List? -> - repository["last_fetch_timestamp"] = System.currentTimeMillis() } ) } diff --git a/app/src/main/java/fr/free/nrw/commons/contributions/ContributionController.java b/app/src/main/java/fr/free/nrw/commons/contributions/ContributionController.java index 9e1de9736..1df5751cc 100644 --- a/app/src/main/java/fr/free/nrw/commons/contributions/ContributionController.java +++ b/app/src/main/java/fr/free/nrw/commons/contributions/ContributionController.java @@ -96,12 +96,12 @@ public class ContributionController { public void handleActivityResult(Activity activity, int requestCode, int resultCode, Intent data) { FilePicker.handleActivityResult(requestCode, resultCode, data, activity, new DefaultCallback() { @Override - public void onImagePickerError(Exception e, FilePicker.ImageSource source, int type) { + public void onImagePickerError() { ViewUtil.showShortToast(activity, R.string.error_occurred_in_picking_images); } @Override - public void onImagesPicked(@NonNull List imagesFiles, FilePicker.ImageSource source, int type) { + public void onImagesPicked(@NonNull List imagesFiles) { Intent intent = handleImagesPicked(activity, imagesFiles); activity.startActivity(intent); } diff --git a/app/src/main/java/fr/free/nrw/commons/contributions/ContributionsContract.java b/app/src/main/java/fr/free/nrw/commons/contributions/ContributionsContract.java index f73ce5501..d0d798581 100644 --- a/app/src/main/java/fr/free/nrw/commons/contributions/ContributionsContract.java +++ b/app/src/main/java/fr/free/nrw/commons/contributions/ContributionsContract.java @@ -8,8 +8,6 @@ import fr.free.nrw.commons.BasePresenter; public class ContributionsContract { public interface View { - - void showMessage(String localizedMessage); } public interface UserActionListener extends BasePresenter { 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 1c445852d..58569cddf 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 @@ -15,7 +15,6 @@ import android.view.LayoutInflater; 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; @@ -41,7 +40,6 @@ import fr.free.nrw.commons.mwapi.OkHttpJsonApiClient; import fr.free.nrw.commons.nearby.NearbyController; import fr.free.nrw.commons.nearby.NearbyNotificationCardView; import fr.free.nrw.commons.nearby.Place; -import fr.free.nrw.commons.settings.Prefs; import fr.free.nrw.commons.upload.UploadService; import fr.free.nrw.commons.utils.ConfigUtils; import fr.free.nrw.commons.utils.DialogUtil; @@ -109,7 +107,6 @@ public class ContributionsFragment } }; private boolean shouldShowMediaDetailsFragment; - private boolean isAuthCookieAcquired; @Override public void onCreate(@Nullable Bundle savedInstanceState) { @@ -197,12 +194,6 @@ public class ContributionsFragment } - private void setupViewForMediaDetails() { - campaignView.setVisibility(View.GONE); - nearbyNotificationCardView.setVisibility(View.GONE); - ((MainActivity)getActivity()).hideTabs(); - } - @Override public void onBackStackChanged() { ((MainActivity)getActivity()).initBackButton(); @@ -213,7 +204,6 @@ public class ContributionsFragment */ void onAuthCookieAcquired() { // Since we call onAuthCookieAcquired method from onAttach, isAdded is still false. So don't use it - isAuthCookieAcquired=true; if (getActivity() != null) { // If fragment is attached to parent activity getActivity().bindService(getUploadServiceIntent(), uploadServiceConnection, Context.BIND_AUTO_CREATE); isUploadServiceConnected = true; @@ -315,7 +305,6 @@ public class ContributionsFragment } else if (shouldShowRequestPermissionRationale(Manifest.permission.ACCESS_FINE_LOCATION) && store.getBoolean("displayLocationPermissionForCardView", true) && (((MainActivity) getActivity()).viewPager.getCurrentItem() == CONTRIBUTIONS_TAB_POSITION)) { - nearbyNotificationCardView.permissionType = NearbyNotificationCardView.PermissionType.ENABLE_LOCATION_PERMISSION; showNearbyCardPermissionRationale(); } } @@ -330,7 +319,6 @@ public class ContributionsFragment } private void onLocationPermissionGranted() { - nearbyNotificationCardView.permissionType = NearbyNotificationCardView.PermissionType.NO_PERMISSION_NEEDED; locationManager.registerLocationManager(); } @@ -432,10 +420,6 @@ public class ContributionsFragment } } - @Override public void showMessage(String message) { - Toast.makeText(getContext(), message, Toast.LENGTH_SHORT).show(); - } - @Override public void showCampaigns(Campaign campaign) { if (campaign != null) { campaignView.setCampaign(campaign); diff --git a/app/src/main/java/fr/free/nrw/commons/contributions/ContributionsListContract.java b/app/src/main/java/fr/free/nrw/commons/contributions/ContributionsListContract.java index 55161f238..0099b0575 100644 --- a/app/src/main/java/fr/free/nrw/commons/contributions/ContributionsListContract.java +++ b/app/src/main/java/fr/free/nrw/commons/contributions/ContributionsListContract.java @@ -1,7 +1,6 @@ package fr.free.nrw.commons.contributions; import fr.free.nrw.commons.BasePresenter; -import java.util.List; /** * The contract for Contributions list View & Presenter @@ -10,11 +9,6 @@ public class ContributionsListContract { public interface View { - void showWelcomeTip(boolean numberOfUploads); - - void showProgress(boolean shouldShow); - - void showNoContributionsUI(boolean shouldShow); } public interface UserActionListener extends BasePresenter { diff --git a/app/src/main/java/fr/free/nrw/commons/contributions/ContributionsListFragment.java b/app/src/main/java/fr/free/nrw/commons/contributions/ContributionsListFragment.java index e1bb1968e..d557c247d 100644 --- a/app/src/main/java/fr/free/nrw/commons/contributions/ContributionsListFragment.java +++ b/app/src/main/java/fr/free/nrw/commons/contributions/ContributionsListFragment.java @@ -1,7 +1,5 @@ package fr.free.nrw.commons.contributions; -import static android.view.View.GONE; -import static android.view.View.VISIBLE; import static fr.free.nrw.commons.di.NetworkingModule.NAMED_LANGUAGE_WIKI_PEDIA_WIKI_SITE; import android.content.Context; @@ -15,8 +13,6 @@ import android.view.ViewGroup; import android.view.animation.Animation; import android.view.animation.AnimationUtils; import android.widget.LinearLayout; -import android.widget.ProgressBar; -import android.widget.TextView; import androidx.annotation.NonNull; import androidx.annotation.Nullable; import androidx.fragment.app.FragmentManager; @@ -47,16 +43,12 @@ public class ContributionsListFragment extends CommonsDaggerSupportFragment impl @BindView(R.id.contributionsList) RecyclerView rvContributionsList; - @BindView(R.id.loadingContributionsProgressBar) - ProgressBar progressBar; @BindView(R.id.fab_plus) FloatingActionButton fabPlus; @BindView(R.id.fab_camera) FloatingActionButton fabCamera; @BindView(R.id.fab_gallery) FloatingActionButton fabGallery; - @BindView(R.id.noContributionsYet) - TextView noContributionsYet; @BindView(R.id.fab_layout) LinearLayout fab_layout; @@ -187,26 +179,6 @@ public class ContributionsListFragment extends CommonsDaggerSupportFragment impl } } - /** - * Shows welcome message if user has no contributions yet i.e. new user. - */ - public void showWelcomeTip(final boolean shouldShow) { - noContributionsYet.setVisibility(shouldShow ? VISIBLE : GONE); - } - - /** - * Responsible to set progress bar invisible and visible - * - * @param shouldShow True when contributions list should be hidden. - */ - public void showProgress(final boolean shouldShow) { - progressBar.setVisibility(shouldShow ? VISIBLE : GONE); - } - - public void showNoContributionsUI(final boolean shouldShow) { - noContributionsYet.setVisibility(shouldShow ? VISIBLE : GONE); - } - @Override public void onSaveInstanceState(@NonNull Bundle outState) { super.onSaveInstanceState(outState); diff --git a/app/src/main/java/fr/free/nrw/commons/contributions/ContributionsLocalDataSource.java b/app/src/main/java/fr/free/nrw/commons/contributions/ContributionsLocalDataSource.java index 5e21940b5..f0c9b7167 100644 --- a/app/src/main/java/fr/free/nrw/commons/contributions/ContributionsLocalDataSource.java +++ b/app/src/main/java/fr/free/nrw/commons/contributions/ContributionsLocalDataSource.java @@ -2,14 +2,10 @@ package fr.free.nrw.commons.contributions; import androidx.paging.DataSource.Factory; import io.reactivex.Completable; +import io.reactivex.Single; import java.util.ArrayList; import java.util.List; - import javax.inject.Inject; -import javax.inject.Named; - -import fr.free.nrw.commons.kvstore.JsonKvStore; -import io.reactivex.Single; /** * The LocalDataSource class for Contributions @@ -17,30 +13,12 @@ import io.reactivex.Single; class ContributionsLocalDataSource { private final ContributionDao contributionDao; - private final JsonKvStore defaultKVStore; @Inject - public ContributionsLocalDataSource( - @Named("default_preferences") JsonKvStore defaultKVStore, - ContributionDao contributionDao) { - this.defaultKVStore = defaultKVStore; + public ContributionsLocalDataSource(ContributionDao contributionDao) { this.contributionDao = contributionDao; } - /** - * Fetch default number of contributions to be show, based on user preferences - */ - public String getString(String key) { - return defaultKVStore.getString(key); - } - - /** - * Fetch default number of contributions to be show, based on user preferences - */ - public long getLong(String key) { - return defaultKVStore.getLong(key); - } - /** * Get contribution object from cursor * @param uri @@ -79,11 +57,5 @@ class ContributionsLocalDataSource { return contributionDao.save(contributionList); } - public void set(String key, long value) { - defaultKVStore.putLong(key,value); - } - public Completable updateContribution(Contribution contribution) { - return contributionDao.update(contribution); - } } diff --git a/app/src/main/java/fr/free/nrw/commons/contributions/ContributionsPresenter.java b/app/src/main/java/fr/free/nrw/commons/contributions/ContributionsPresenter.java index 2cae4f04c..2537febbc 100644 --- a/app/src/main/java/fr/free/nrw/commons/contributions/ContributionsPresenter.java +++ b/app/src/main/java/fr/free/nrw/commons/contributions/ContributionsPresenter.java @@ -14,30 +14,26 @@ import javax.inject.Named; public class ContributionsPresenter implements UserActionListener { private final ContributionsRepository repository; - private final Scheduler mainThreadScheduler; private final Scheduler ioThreadScheduler; private CompositeDisposable compositeDisposable; - private ContributionsContract.View view; @Inject MediaDataExtractor mediaDataExtractor; @Inject - ContributionsPresenter(ContributionsRepository repository, @Named(CommonsApplicationModule.MAIN_THREAD) Scheduler mainThreadScheduler,@Named(CommonsApplicationModule.IO_THREAD) Scheduler ioThreadScheduler) { + ContributionsPresenter(ContributionsRepository repository, + @Named(CommonsApplicationModule.IO_THREAD) Scheduler ioThreadScheduler) { this.repository = repository; - this.mainThreadScheduler=mainThreadScheduler; this.ioThreadScheduler=ioThreadScheduler; } @Override public void onAttachView(ContributionsContract.View view) { - this.view = view; compositeDisposable=new CompositeDisposable(); } @Override public void onDetachView() { - this.view = null; compositeDisposable.clear(); } diff --git a/app/src/main/java/fr/free/nrw/commons/contributions/ContributionsRepository.java b/app/src/main/java/fr/free/nrw/commons/contributions/ContributionsRepository.java index 17b004802..3453514c9 100644 --- a/app/src/main/java/fr/free/nrw/commons/contributions/ContributionsRepository.java +++ b/app/src/main/java/fr/free/nrw/commons/contributions/ContributionsRepository.java @@ -20,13 +20,6 @@ public class ContributionsRepository { this.localDataSource = localDataSource; } - /** - * Fetch default number of contributions to be show, based on user preferences - */ - public String getString(String key) { - return localDataSource.getString(key); - } - /** * Deletes a failed upload from DB * @param contribution @@ -53,11 +46,4 @@ public class ContributionsRepository { return localDataSource.saveContributions(contributions); } - public void set(String key, long value) { - localDataSource.set(key,value); - } - - public Completable updateContribution(Contribution contribution) { - return localDataSource.updateContribution(contribution); - } } diff --git a/app/src/main/java/fr/free/nrw/commons/contributions/MainActivity.java b/app/src/main/java/fr/free/nrw/commons/contributions/MainActivity.java index 9606abee4..5b637380a 100644 --- a/app/src/main/java/fr/free/nrw/commons/contributions/MainActivity.java +++ b/app/src/main/java/fr/free/nrw/commons/contributions/MainActivity.java @@ -63,7 +63,6 @@ public class MainActivity extends NavigationBaseActivity implements FragmentMana public static final int NEARBY_TAB_POSITION = 1; public boolean isContributionsFragmentVisible = true; // False means nearby fragment is visible - public boolean onOrientationChanged; private Menu menu; private MenuItem notificationsMenuItem; @@ -80,14 +79,10 @@ public class MainActivity extends NavigationBaseActivity implements FragmentMana initMain(); - if (savedInstanceState != null ) { - onOrientationChanged = true; // Will be used in nearby fragment to determine significant update of map - - //If nearby map was visible, call on Tab Selected to call all nearby operations - /*if (savedInstanceState.getInt("viewPagerCurrentItem") == 1) { + //If nearby map was visible, call on Tab Selected to call all nearby operations + /*if (savedInstanceState.getInt("viewPagerCurrentItem") == 1) { ((NearbyFragment)contributionsActivityPagerAdapter.getItem(1)).onTabSelected(onOrientationChanged); }*/ - } } @Override diff --git a/app/src/main/java/fr/free/nrw/commons/delete/DeleteHelper.java b/app/src/main/java/fr/free/nrw/commons/delete/DeleteHelper.java index 3eac4908e..2e169b89c 100644 --- a/app/src/main/java/fr/free/nrw/commons/delete/DeleteHelper.java +++ b/app/src/main/java/fr/free/nrw/commons/delete/DeleteHelper.java @@ -37,17 +37,14 @@ public class DeleteHelper { private final NotificationHelper notificationHelper; private final PageEditClient pageEditClient; private final ViewUtilWrapper viewUtil; - private final String username; @Inject public DeleteHelper(NotificationHelper notificationHelper, - @Named("commons-page-edit") PageEditClient pageEditClient, - ViewUtilWrapper viewUtil, - @Named("username") String username) { + @Named("commons-page-edit") PageEditClient pageEditClient, + ViewUtilWrapper viewUtil) { this.notificationHelper = notificationHelper; this.pageEditClient = pageEditClient; this.viewUtil = viewUtil; - this.username = username; } /** @@ -198,13 +195,11 @@ public class DeleteHelper { .subscribe(aBoolean -> { if (aBoolean) { reviewCallback.onSuccess(); - } else { - reviewCallback.onFailure(); } }); }); - alert.setNegativeButton(context.getString(R.string.cancel), (dialog, which) -> reviewCallback.onFailure()); + alert.setNegativeButton(context.getString(R.string.cancel), (dialog, which) -> {}); AlertDialog d = alert.create(); d.show(); } 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 495a8d01e..4d90b8ba8 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 @@ -204,10 +204,10 @@ public class NetworkingModule { @Named("commons-page-edit") @Provides @Singleton - public PageEditClient provideCommonsPageEditClient(@Named(NAMED_COMMONS_CSRF) CsrfTokenClient csrfTokenClient, - @Named("commons-page-edit-service") PageEditInterface pageEditInterface, - @Named("commons-service") Service service) { - return new PageEditClient(csrfTokenClient, pageEditInterface, service); + public PageEditClient provideCommonsPageEditClient( + @Named(NAMED_COMMONS_CSRF) CsrfTokenClient csrfTokenClient, + @Named("commons-page-edit-service") PageEditInterface pageEditInterface) { + return new PageEditClient(csrfTokenClient, pageEditInterface); } @Provides diff --git a/app/src/main/java/fr/free/nrw/commons/filepicker/DefaultCallback.java b/app/src/main/java/fr/free/nrw/commons/filepicker/DefaultCallback.java index e8373dc6f..75ea4868d 100644 --- a/app/src/main/java/fr/free/nrw/commons/filepicker/DefaultCallback.java +++ b/app/src/main/java/fr/free/nrw/commons/filepicker/DefaultCallback.java @@ -7,10 +7,7 @@ package fr.free.nrw.commons.filepicker; public abstract class DefaultCallback implements FilePicker.Callbacks { @Override - public void onImagePickerError(Exception e, FilePicker.ImageSource source, int type) { + public void onImagePickerError() { } - @Override - public void onCanceled(FilePicker.ImageSource source, int type) { - } -} \ No newline at end of file +} diff --git a/app/src/main/java/fr/free/nrw/commons/filepicker/FilePicker.java b/app/src/main/java/fr/free/nrw/commons/filepicker/FilePicker.java index 5d168d6b1..c6699952a 100644 --- a/app/src/main/java/fr/free/nrw/commons/filepicker/FilePicker.java +++ b/app/src/main/java/fr/free/nrw/commons/filepicker/FilePicker.java @@ -1,5 +1,7 @@ package fr.free.nrw.commons.filepicker; +import static fr.free.nrw.commons.filepicker.PickedFiles.singleFileList; + import android.app.Activity; import android.content.ClipData; import android.content.Context; @@ -8,21 +10,17 @@ import android.content.SharedPreferences; import android.content.pm.PackageManager; import android.content.pm.ResolveInfo; import android.net.Uri; -import androidx.preference.PreferenceManager; import android.provider.MediaStore; import android.text.TextUtils; - import androidx.annotation.NonNull; import androidx.annotation.Nullable; - +import androidx.preference.PreferenceManager; import java.io.File; import java.io.IOException; import java.net.URISyntaxException; import java.util.ArrayList; import java.util.List; -import static fr.free.nrw.commons.filepicker.PickedFiles.singleFileList; - public class FilePicker implements Constants { private static final String KEY_PHOTO_URI = "photo_uri"; @@ -83,10 +81,6 @@ public class FilePicker implements Constants { PreferenceManager.getDefaultSharedPreferences(context).edit().putInt(KEY_TYPE, type).apply(); } - private static int restoreType(@NonNull Context context) { - return PreferenceManager.getDefaultSharedPreferences(context).getInt(KEY_TYPE, 0); - } - /** * Opens default galery or a available galleries picker if there is no default * @@ -150,14 +144,6 @@ public class FilePicker implements Constants { } else { onPictureReturnedFromDocuments(data, activity, callbacks); } - } else { - if (requestCode == RequestCodes.PICK_PICTURE_FROM_DOCUMENTS) { - callbacks.onCanceled(FilePicker.ImageSource.DOCUMENTS, restoreType(activity)); - } else if (requestCode == RequestCodes.PICK_PICTURE_FROM_GALLERY) { - callbacks.onCanceled(FilePicker.ImageSource.GALLERY, restoreType(activity)); - } else { - callbacks.onCanceled(FilePicker.ImageSource.CAMERA_IMAGE, restoreType(activity)); - } } } } @@ -186,24 +172,24 @@ public class FilePicker implements Constants { try { Uri photoPath = data.getData(); UploadableFile photoFile = PickedFiles.pickedExistingPicture(activity, photoPath); - callbacks.onImagesPicked(singleFileList(photoFile), FilePicker.ImageSource.DOCUMENTS, restoreType(activity)); + callbacks.onImagesPicked(singleFileList(photoFile)); if (configuration(activity).shouldCopyPickedImagesToPublicGalleryAppFolder()) { PickedFiles.copyFilesInSeparateThread(activity, singleFileList(photoFile)); } } catch (Exception e) { e.printStackTrace(); - callbacks.onImagePickerError(e, FilePicker.ImageSource.DOCUMENTS, restoreType(activity)); + callbacks.onImagePickerError(); } } private static void onPictureReturnedFromGallery(Intent data, Activity activity, @NonNull FilePicker.Callbacks callbacks) { try { List files = getFilesFromGalleryPictures(data, activity); - callbacks.onImagesPicked(files, FilePicker.ImageSource.GALLERY, restoreType(activity)); + callbacks.onImagesPicked(files); } catch (Exception e) { e.printStackTrace(); - callbacks.onImagePickerError(e, FilePicker.ImageSource.GALLERY, restoreType(activity)); + callbacks.onImagePickerError(); } } @@ -241,14 +227,13 @@ public class FilePicker implements Constants { files.add(photoFile); if (photoFile == null) { - Exception e = new IllegalStateException("Unable to get the picture returned from camera"); - callbacks.onImagePickerError(e, FilePicker.ImageSource.CAMERA_IMAGE, restoreType(activity)); + callbacks.onImagePickerError(); } else { if (configuration(activity).shouldCopyTakenPhotosToPublicGalleryAppFolder()) { PickedFiles.copyFilesInSeparateThread(activity, singleFileList(photoFile)); } - callbacks.onImagesPicked(files, FilePicker.ImageSource.CAMERA_IMAGE, restoreType(activity)); + callbacks.onImagesPicked(files); } PreferenceManager.getDefaultSharedPreferences(activity) @@ -258,7 +243,7 @@ public class FilePicker implements Constants { .apply(); } catch (Exception e) { e.printStackTrace(); - callbacks.onImagePickerError(e, FilePicker.ImageSource.CAMERA_IMAGE, restoreType(activity)); + callbacks.onImagePickerError(); } } @@ -274,14 +259,13 @@ public class FilePicker implements Constants { files.add(photoFile); if (photoFile == null) { - Exception e = new IllegalStateException("Unable to get the video returned from camera"); - callbacks.onImagePickerError(e, FilePicker.ImageSource.CAMERA_VIDEO, restoreType(activity)); + callbacks.onImagePickerError(); } else { if (configuration(activity).shouldCopyTakenPhotosToPublicGalleryAppFolder()) { PickedFiles.copyFilesInSeparateThread(activity, singleFileList(photoFile)); } - callbacks.onImagesPicked(files, FilePicker.ImageSource.CAMERA_VIDEO, restoreType(activity)); + callbacks.onImagesPicked(files); } PreferenceManager.getDefaultSharedPreferences(activity) @@ -291,7 +275,7 @@ public class FilePicker implements Constants { .apply(); } catch (Exception e) { e.printStackTrace(); - callbacks.onImagePickerError(e, FilePicker.ImageSource.CAMERA_VIDEO, restoreType(activity)); + callbacks.onImagePickerError(); } } @@ -300,15 +284,10 @@ public class FilePicker implements Constants { } - public enum ImageSource { - GALLERY, DOCUMENTS, CAMERA_IMAGE, CAMERA_VIDEO - } - public interface Callbacks { - void onImagePickerError(Exception e, FilePicker.ImageSource source, int type); + void onImagePickerError(); - void onImagesPicked(@NonNull List imageFiles, FilePicker.ImageSource source, int type); + void onImagesPicked(@NonNull List imageFiles); - void onCanceled(FilePicker.ImageSource source, int type); } -} \ No newline at end of file +} diff --git a/app/src/main/java/fr/free/nrw/commons/filepicker/UploadableFile.java b/app/src/main/java/fr/free/nrw/commons/filepicker/UploadableFile.java index 897fc23d0..58ac8d90d 100644 --- a/app/src/main/java/fr/free/nrw/commons/filepicker/UploadableFile.java +++ b/app/src/main/java/fr/free/nrw/commons/filepicker/UploadableFile.java @@ -47,10 +47,6 @@ public class UploadableFile implements Parcelable { file = (File) in.readSerializable(); } - public Uri getContentUri() { - return contentUri; - } - public File getFile() { return file; } diff --git a/app/src/main/java/fr/free/nrw/commons/kvstore/BasicKvStore.java b/app/src/main/java/fr/free/nrw/commons/kvstore/BasicKvStore.java index 032898896..36be15f08 100644 --- a/app/src/main/java/fr/free/nrw/commons/kvstore/BasicKvStore.java +++ b/app/src/main/java/fr/free/nrw/commons/kvstore/BasicKvStore.java @@ -2,16 +2,9 @@ package fr.free.nrw.commons.kvstore; import android.content.Context; import android.content.SharedPreferences; - -import androidx.annotation.Nullable; - -import java.util.HashMap; import java.util.HashSet; -import java.util.Map; import java.util.Set; -import timber.log.Timber; - public class BasicKvStore implements KeyValueStore { private static final String KEY_VERSION = "__version__"; /* @@ -25,53 +18,6 @@ public class BasicKvStore implements KeyValueStore { _store = context.getSharedPreferences(storeName, Context.MODE_PRIVATE); } - /** - * If you don't want onVersionUpdate to be called on a fresh creation, the first version supplied for the kvstore should be set to 0. - */ - public BasicKvStore(Context context, String storeName, int version) { - this(context,storeName,version,false); - } - - public BasicKvStore(Context context, String storeName, int version, boolean clearAllOnUpgrade) { - _store = context.getSharedPreferences(storeName, Context.MODE_PRIVATE); - int oldVersion = getInt(KEY_VERSION); - - if (version > oldVersion) { - Timber.i("version updated from %s to %s, with clearFlag %b", oldVersion, version, clearAllOnUpgrade); - onVersionUpdate(oldVersion, version, clearAllOnUpgrade); - } - - if (version < oldVersion) { - throw new IllegalArgumentException( - "kvstore downgrade not allowed, old version:" + oldVersion + ", new version: " + - version); - } - //Keep this statement at the end so that clearing of store does not cause version also to get removed. - putIntInternal(KEY_VERSION, version); - } - - public void onVersionUpdate(int oldVersion, int version, boolean clearAllFlag) { - if(clearAllFlag) { - clearAll(); - } - } - - public Set getKeySet() { - Map allContents = new HashMap<>(_store.getAll()); - allContents.remove(KEY_VERSION); - return allContents.keySet(); - } - - @Nullable - public Map getAll() { - Map allContents = _store.getAll(); - if (allContents == null || allContents.size() == 0) { - return null; - } - allContents.remove(KEY_VERSION); - return new HashMap<>(allContents); - } - @Override public String getString(String key) { return getString(key, null); @@ -82,11 +28,6 @@ public class BasicKvStore implements KeyValueStore { return getBoolean(key, false); } - @Override - public long getLong(String key) { - return getLong(key, 0); - } - @Override public int getInt(String key) { return getInt(key, 0); @@ -102,24 +43,11 @@ public class BasicKvStore implements KeyValueStore { return _store.getBoolean(key, defaultValue); } - @Override - public long getLong(String key, long defaultValue) { - return _store.getLong(key, defaultValue); - } - @Override public int getInt(String key, int defaultValue) { return _store.getInt(key, defaultValue); } - public void putAllStrings(Map keyValuePairs) { - SharedPreferences.Editor editor = _store.edit(); - for (Map.Entry keyValuePair : keyValuePairs.entrySet()) { - putString(editor, keyValuePair.getKey(), keyValuePair.getValue(), false); - } - editor.apply(); - } - @Override public void putString(String key, String value) { SharedPreferences.Editor editor = _store.edit(); @@ -143,14 +71,6 @@ public class BasicKvStore implements KeyValueStore { editor.apply(); } - @Override - public void putLong(String key, long value) { - assertKeyNotReserved(key); - SharedPreferences.Editor editor = _store.edit(); - editor.putLong(key, value); - editor.apply(); - } - @Override public void putInt(String key, int value) { assertKeyNotReserved(key); @@ -178,13 +98,6 @@ public class BasicKvStore implements KeyValueStore { putIntInternal(KEY_VERSION, version); } - @Override - public void clearAllWithVersion() { - SharedPreferences.Editor editor = _store.edit(); - editor.clear(); - editor.apply(); - } - private void putIntInternal(String key, int value) { SharedPreferences.Editor editor = _store.edit(); editor.putInt(key, value); @@ -197,14 +110,6 @@ public class BasicKvStore implements KeyValueStore { } } - public void registerChangeListener(SharedPreferences.OnSharedPreferenceChangeListener l) { - _store.registerOnSharedPreferenceChangeListener(l); - } - - public void unregisterChangeListener(SharedPreferences.OnSharedPreferenceChangeListener l) { - _store.unregisterOnSharedPreferenceChangeListener(l); - } - public Set getStringSet(String key){ return _store.getStringSet(key, new HashSet<>()); } @@ -212,4 +117,4 @@ public class BasicKvStore implements KeyValueStore { public void putStringSet(String key,Set value){ _store.edit().putStringSet(key,value).apply(); } -} \ No newline at end of file +} diff --git a/app/src/main/java/fr/free/nrw/commons/kvstore/JsonKvStore.java b/app/src/main/java/fr/free/nrw/commons/kvstore/JsonKvStore.java index d612880d9..40b2dab2e 100644 --- a/app/src/main/java/fr/free/nrw/commons/kvstore/JsonKvStore.java +++ b/app/src/main/java/fr/free/nrw/commons/kvstore/JsonKvStore.java @@ -1,16 +1,10 @@ package fr.free.nrw.commons.kvstore; import android.content.Context; - import androidx.annotation.Nullable; - import com.google.gson.Gson; import com.google.gson.JsonSyntaxException; -import java.lang.reflect.Type; -import java.util.HashMap; -import java.util.Map; - public class JsonKvStore extends BasicKvStore { private final Gson gson; @@ -19,33 +13,11 @@ public class JsonKvStore extends BasicKvStore { this.gson = gson; } - public JsonKvStore(Context context, String storeName, int version, Gson gson) { - super(context, storeName, version); - this.gson = gson; - } - - public JsonKvStore(Context context, String storeName, int version, boolean clearAllOnUpgrade, Gson gson) { - super(context, storeName, version, clearAllOnUpgrade); - this.gson = gson; - } - - public void putAllJsons(Map jsonMap) { - Map stringsMap = new HashMap<>(jsonMap.size()); - for (Map.Entry keyValuePair : jsonMap.entrySet()) { - String jsonString = gson.toJson(keyValuePair.getValue()); - stringsMap.put(keyValuePair.getKey(), jsonString); - } - putAllStrings(stringsMap); - } public void putJson(String key, T object) { putString(key, gson.toJson(object)); } - public void putJsonWithTypeInfo(String key, T object, Type type) { - putString(key, gson.toJson(object, type)); - } - @Nullable public T getJson(String key, Class clazz) { String jsonString = getString(key); @@ -56,13 +28,4 @@ public class JsonKvStore extends BasicKvStore { } } - @Nullable - public T getJson(String key, Type type) { - String jsonString = getString(key); - try { - return gson.fromJson(jsonString, type); - } catch (JsonSyntaxException e) { - return null; - } - } -} \ No newline at end of file +} diff --git a/app/src/main/java/fr/free/nrw/commons/kvstore/KeyValueStore.java b/app/src/main/java/fr/free/nrw/commons/kvstore/KeyValueStore.java index 46d6d8f81..06d97c094 100644 --- a/app/src/main/java/fr/free/nrw/commons/kvstore/KeyValueStore.java +++ b/app/src/main/java/fr/free/nrw/commons/kvstore/KeyValueStore.java @@ -5,24 +5,18 @@ public interface KeyValueStore { boolean getBoolean(String key); - long getLong(String key); - int getInt(String key); String getString(String key, String defaultValue); boolean getBoolean(String key, boolean defaultValue); - long getLong(String key, long defaultValue); - int getInt(String key, int defaultValue); void putString(String key, String value); void putBoolean(String key, boolean value); - void putLong(String key, long value); - void putInt(String key, int value); boolean contains(String key); @@ -31,5 +25,4 @@ public interface KeyValueStore { void clearAll(); - void clearAllWithVersion(); -} \ No newline at end of file +} diff --git a/app/src/main/java/fr/free/nrw/commons/location/LocationServiceManager.java b/app/src/main/java/fr/free/nrw/commons/location/LocationServiceManager.java index a34e8d2ad..a1cb3f798 100644 --- a/app/src/main/java/fr/free/nrw/commons/location/LocationServiceManager.java +++ b/app/src/main/java/fr/free/nrw/commons/location/LocationServiceManager.java @@ -1,16 +1,12 @@ package fr.free.nrw.commons.location; -import android.app.Activity; import android.content.Context; import android.location.Location; import android.location.LocationListener; import android.location.LocationManager; import android.os.Bundle; -import java.util.HashSet; import java.util.List; -import java.util.Set; import java.util.concurrent.CopyOnWriteArrayList; - import timber.log.Timber; public class LocationServiceManager implements LocationListener { @@ -24,7 +20,6 @@ public class LocationServiceManager implements LocationListener { //private Location lastLocationDuplicate; // Will be used for nearby card view on contributions activity private final List locationListeners = new CopyOnWriteArrayList<>(); private boolean isLocationManagerRegistered = false; - private Set locationExplanationDisplayed = new HashSet<>(); /** * Constructs a new instance of LocationServiceManager. @@ -143,7 +138,6 @@ public class LocationServiceManager implements LocationListener { */ public void unregisterLocationManager() { isLocationManagerRegistered = false; - locationExplanationDisplayed.clear(); try { locationManager.removeUpdates(this); } catch (SecurityException e) { @@ -224,9 +218,7 @@ public class LocationServiceManager implements LocationListener { public enum LocationChangeType{ LOCATION_SIGNIFICANTLY_CHANGED, //Went out of borders of nearby markers LOCATION_SLIGHTLY_CHANGED, //User might be walking or driving - LOCATION_MEDIUM_CHANGED, //Between slight and significant changes, will be used for nearby card view updates. LOCATION_NOT_CHANGED, - PERMISSION_JUST_GRANTED, MAP_UPDATED, SEARCH_CUSTOM_AREA } diff --git a/app/src/main/java/fr/free/nrw/commons/logging/FileLoggingTree.java b/app/src/main/java/fr/free/nrw/commons/logging/FileLoggingTree.java index a2ebeec68..afd3e01c0 100644 --- a/app/src/main/java/fr/free/nrw/commons/logging/FileLoggingTree.java +++ b/app/src/main/java/fr/free/nrw/commons/logging/FileLoggingTree.java @@ -21,7 +21,7 @@ import timber.log.Timber; /** * Extends Timber's debug tree to write logs to a file */ -public class FileLoggingTree extends Timber.DebugTree implements LogLevelSettableTree { +public class FileLoggingTree extends Timber.DebugTree { private final Logger logger = LoggerFactory.getLogger(Logger.ROOT_LOGGER_NAME); private int logLevel; private final String logFileName; @@ -41,15 +41,6 @@ public class FileLoggingTree extends Timber.DebugTree implements LogLevelSettabl this.executor = executor; } - /** - * Can be overridden to change file's log level - * @param logLevel - */ - @Override - public void setLogLevel(int logLevel) { - this.logLevel = logLevel; - } - /** * Check and log any message * @param priority diff --git a/app/src/main/java/fr/free/nrw/commons/logging/LogLevelSettableTree.java b/app/src/main/java/fr/free/nrw/commons/logging/LogLevelSettableTree.java deleted file mode 100644 index 5eeca6d3e..000000000 --- a/app/src/main/java/fr/free/nrw/commons/logging/LogLevelSettableTree.java +++ /dev/null @@ -1,8 +0,0 @@ -package fr.free.nrw.commons.logging; - -/** - * Can be implemented to set the log level for file tree - */ -public interface LogLevelSettableTree { - void setLogLevel(int logLevel); -} diff --git a/app/src/main/java/fr/free/nrw/commons/media/Caption.java b/app/src/main/java/fr/free/nrw/commons/media/Caption.java deleted file mode 100644 index 2cb3b86e1..000000000 --- a/app/src/main/java/fr/free/nrw/commons/media/Caption.java +++ /dev/null @@ -1,43 +0,0 @@ -package fr.free.nrw.commons.media; - -import com.google.gson.annotations.SerializedName; - -/** - * Model class for parsing Captions when fetching captions using filename in MediaClient - */ -public class Caption { - - /** - * users language in which caption is written - */ - @SerializedName("language") - private String language; - @SerializedName("value") - private String value; - - /** - * No args constructor for use in serialization - */ - public Caption() { - } - - /** - * @param value - * @param language - */ - public Caption(String language, String value) { - super(); - this.language = language; - this.value = value; - } - - @SerializedName("language") - public String getLanguage() { - return language; - } - - @SerializedName("value") - public String getValue() { - return value; - } -} diff --git a/app/src/main/java/fr/free/nrw/commons/media/CommonsWikibaseItem.java b/app/src/main/java/fr/free/nrw/commons/media/CommonsWikibaseItem.java deleted file mode 100644 index af26f0c72..000000000 --- a/app/src/main/java/fr/free/nrw/commons/media/CommonsWikibaseItem.java +++ /dev/null @@ -1,76 +0,0 @@ -package fr.free.nrw.commons.media; - -import com.google.gson.annotations.SerializedName; - -import java.util.Map; - - -/** - * Represents the Wikibase item associated with a Wikimedia Commons file. - * For instance the Wikibase item M63996 represents the Commons file "Paul Cézanne - The Pigeon Tower at Bellevue - 1936.19 - Cleveland Museum of Art.jpg" - */ -public class CommonsWikibaseItem { - - @SerializedName("type") - private String type; - @SerializedName("id") - private String id; - @SerializedName("labels") - private Map labels; - @SerializedName("statements") - private Object statements = null; - - /** - * No args constructor for use in serialization - */ - public CommonsWikibaseItem() { - } - - /** - * @param id - * @param statements - * @param labels - * @param type - */ - public CommonsWikibaseItem(String type, String id, Map labels, Object statements) { - super(); - this.type = type; - this.id = id; - this.labels = labels; - this.statements = statements; - } - - /** - * Ex: "mediainfo - */ - @SerializedName("type") - public String getType() { - return type; - } - - /** - * @return Wikibase Id - */ - @SerializedName("id") - public String getId() { - return id; - } - - /** - * @return value of captions - */ - @SerializedName("labels") - public Map getLabels() { - return labels; - } - - /** - * Contains the Depicts item - */ - @SerializedName("statements") - public Object getStatements() { - return statements; - } - - -} diff --git a/app/src/main/java/fr/free/nrw/commons/media/MediaDetailInterface.java b/app/src/main/java/fr/free/nrw/commons/media/MediaDetailInterface.java index ef9559c29..d89617bbb 100644 --- a/app/src/main/java/fr/free/nrw/commons/media/MediaDetailInterface.java +++ b/app/src/main/java/fr/free/nrw/commons/media/MediaDetailInterface.java @@ -1,6 +1,5 @@ package fr.free.nrw.commons.media; -import io.reactivex.Observable; import io.reactivex.Single; import org.wikipedia.wikidata.Entities; import retrofit2.http.GET; @@ -11,14 +10,6 @@ import retrofit2.http.Query; */ public interface MediaDetailInterface { - /** - * Fetches entity using file name - * - * @param filename name of the file to be used for fetching captions - */ - @GET("w/api.php?action=wbgetentities&props=labels&format=json&languagefallback=1&sites=commonswiki") - Observable fetchEntitiesByFileName(@Query("languages") String language, @Query("titles") String filename); - /** * Gets labels for Depictions using Entity Id from MediaWikiAPI * @param entityId EntityId (Ex: Q81566) of the depict entity @@ -27,11 +18,4 @@ public interface MediaDetailInterface { @GET("/w/api.php?format=json&action=wbgetentities&props=labels&languagefallback=1") Single getEntity(@Query("ids") String entityId); - /** - * Fetches caption using wikibaseIdentifier - * - * @param wikibaseIdentifier pageId for the media - */ - @GET("/w/api.php?action=wbgetentities&props=labels&format=json&languagefallback=1&sites=commonswiki") - Observable getEntityForImage(@Query("languages") String language, @Query("ids") String wikibaseIdentifier); } 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 957f45265..9f3e2bdb6 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 @@ -279,12 +279,6 @@ public class MediaDetailPagerFragment extends CommonsDaggerSupportFragment imple public void onPageScrollStateChanged(int i) { } - public void onDataSetChanged() { - if (null != adapter) { - adapter.notifyDataSetChanged(); - } - } - public interface MediaDetailProvider { Media getMediaAtPosition(int i); diff --git a/app/src/main/java/fr/free/nrw/commons/media/MediaInterface.java b/app/src/main/java/fr/free/nrw/commons/media/MediaInterface.java index c104235a9..efe0664f2 100644 --- a/app/src/main/java/fr/free/nrw/commons/media/MediaInterface.java +++ b/app/src/main/java/fr/free/nrw/commons/media/MediaInterface.java @@ -107,14 +107,6 @@ public interface MediaInterface { @GET("w/api.php?format=json&action=parse&prop=text") Single getPageHtml(@Query("page") String title); - /** - * Fetches caption using file name - * - * @param filename name of the file to be used for fetching captions - * */ - @GET("w/api.php?action=wbgetentities&props=labels&format=json&languagefallback=1") - Single fetchCaptionByFilename(@Query("language") String language, @Query("titles") String filename); - /** * Fetches list of images from a depiction entity * @param query depictionEntityId diff --git a/app/src/main/java/fr/free/nrw/commons/media/MwParseResponse.java b/app/src/main/java/fr/free/nrw/commons/media/MwParseResponse.java index c65874532..4e5a6802c 100644 --- a/app/src/main/java/fr/free/nrw/commons/media/MwParseResponse.java +++ b/app/src/main/java/fr/free/nrw/commons/media/MwParseResponse.java @@ -14,10 +14,6 @@ public class MwParseResponse extends MwResponse { return parse; } - public boolean success() { - return parse != null; - } - @VisibleForTesting protected void setParse(@Nullable MwParseResult parse) { this.parse = parse; diff --git a/app/src/main/java/fr/free/nrw/commons/media/zoomControllers/gestures/MultiPointerGestureDetector.java b/app/src/main/java/fr/free/nrw/commons/media/zoomControllers/gestures/MultiPointerGestureDetector.java index e91f47311..26cc7adec 100644 --- a/app/src/main/java/fr/free/nrw/commons/media/zoomControllers/gestures/MultiPointerGestureDetector.java +++ b/app/src/main/java/fr/free/nrw/commons/media/zoomControllers/gestures/MultiPointerGestureDetector.java @@ -14,20 +14,19 @@ public class MultiPointerGestureDetector { /** The listener for receiving notifications when gestures occur. */ public interface Listener { /** A callback called right before the gesture is about to start. */ - public void onGestureBegin(MultiPointerGestureDetector detector); + public void onGestureBegin(); /** A callback called each time the gesture gets updated. */ - public void onGestureUpdate(MultiPointerGestureDetector detector); + public void onGestureUpdate(); /** A callback called right after the gesture has finished. */ - public void onGestureEnd(MultiPointerGestureDetector detector); + public void onGestureEnd(); } private static final int MAX_POINTERS = 2; private boolean mGestureInProgress; private int mPointerCount; - private int mNewPointerCount; private final int mId[] = new int[MAX_POINTERS]; private final float mStartX[] = new float[MAX_POINTERS]; private final float mStartY[] = new float[MAX_POINTERS]; @@ -76,7 +75,7 @@ public class MultiPointerGestureDetector { private void startGesture() { if (!mGestureInProgress) { if (mListener != null) { - mListener.onGestureBegin(this); + mListener.onGestureBegin(); } mGestureInProgress = true; } @@ -87,7 +86,7 @@ public class MultiPointerGestureDetector { if (mGestureInProgress) { mGestureInProgress = false; if (mListener != null) { - mListener.onGestureEnd(this); + mListener.onGestureEnd(); } } } @@ -110,16 +109,6 @@ public class MultiPointerGestureDetector { return (i < count) ? i : -1; } - /** Gets the number of pressed pointers (fingers down). */ - private static int getPressedPointerCount(MotionEvent event) { - int count = event.getPointerCount(); - int action = event.getActionMasked(); - if (action == MotionEvent.ACTION_UP || action == MotionEvent.ACTION_POINTER_UP) { - count--; - } - return count; - } - private void updatePointersOnTap(MotionEvent event) { mPointerCount = 0; for (int i = 0; i < MAX_POINTERS; i++) { @@ -163,7 +152,7 @@ public class MultiPointerGestureDetector { } // notify listener if (mGestureInProgress && mListener != null) { - mListener.onGestureUpdate(this); + mListener.onGestureUpdate(); } break; } @@ -174,7 +163,6 @@ public class MultiPointerGestureDetector { case MotionEvent.ACTION_UP: { // restart gesture whenever the number of pointers changes - mNewPointerCount = getPressedPointerCount(event); stopGesture(); updatePointersOnTap(event); if (mPointerCount > 0 && shouldStartGesture()) { @@ -185,7 +173,6 @@ public class MultiPointerGestureDetector { case MotionEvent.ACTION_CANCEL: { - mNewPointerCount = 0; stopGesture(); reset(); break; @@ -207,16 +194,6 @@ public class MultiPointerGestureDetector { startGesture(); } - /** Gets whether there is a gesture in progress */ - public boolean isGestureInProgress() { - return mGestureInProgress; - } - - /** Gets the number of pointers after the current gesture */ - public int getNewPointerCount() { - return mNewPointerCount; - } - /** Gets the number of pointers in the current gesture */ public int getPointerCount() { return mPointerCount; diff --git a/app/src/main/java/fr/free/nrw/commons/media/zoomControllers/gestures/TransformGestureDetector.java b/app/src/main/java/fr/free/nrw/commons/media/zoomControllers/gestures/TransformGestureDetector.java index 3a6baeba2..f0d5a3742 100644 --- a/app/src/main/java/fr/free/nrw/commons/media/zoomControllers/gestures/TransformGestureDetector.java +++ b/app/src/main/java/fr/free/nrw/commons/media/zoomControllers/gestures/TransformGestureDetector.java @@ -20,7 +20,7 @@ public class TransformGestureDetector implements MultiPointerGestureDetector.Lis public void onGestureUpdate(TransformGestureDetector detector); /** A callback called right after the gesture has finished. */ - public void onGestureEnd(TransformGestureDetector detector); + public void onGestureEnd(); } private final MultiPointerGestureDetector mDetector; @@ -62,23 +62,23 @@ public class TransformGestureDetector implements MultiPointerGestureDetector.Lis } @Override - public void onGestureBegin(MultiPointerGestureDetector detector) { + public void onGestureBegin() { if (mListener != null) { mListener.onGestureBegin(this); } } @Override - public void onGestureUpdate(MultiPointerGestureDetector detector) { + public void onGestureUpdate() { if (mListener != null) { mListener.onGestureUpdate(this); } } @Override - public void onGestureEnd(MultiPointerGestureDetector detector) { + public void onGestureEnd() { if (mListener != null) { - mListener.onGestureEnd(this); + mListener.onGestureEnd(); } } @@ -95,21 +95,6 @@ public class TransformGestureDetector implements MultiPointerGestureDetector.Lis mDetector.restartGesture(); } - /** Gets whether there is a gesture in progress */ - public boolean isGestureInProgress() { - return mDetector.isGestureInProgress(); - } - - /** Gets the number of pointers after the current gesture */ - public int getNewPointerCount() { - return mDetector.getNewPointerCount(); - } - - /** Gets the number of pointers in the current gesture */ - public int getPointerCount() { - return mDetector.getPointerCount(); - } - /** Gets the X coordinate of the pivot point */ public float getPivotX() { return calcAverage(mDetector.getStartX(), mDetector.getPointerCount()); @@ -161,4 +146,4 @@ public class TransformGestureDetector implements MultiPointerGestureDetector.Lis return currentAngle - startAngle; } } -} \ No newline at end of file +} diff --git a/app/src/main/java/fr/free/nrw/commons/media/zoomControllers/zoomable/AbstractAnimatedZoomableController.java b/app/src/main/java/fr/free/nrw/commons/media/zoomControllers/zoomable/AbstractAnimatedZoomableController.java index 700991b9e..9212030b3 100644 --- a/app/src/main/java/fr/free/nrw/commons/media/zoomControllers/zoomable/AbstractAnimatedZoomableController.java +++ b/app/src/main/java/fr/free/nrw/commons/media/zoomControllers/zoomable/AbstractAnimatedZoomableController.java @@ -49,7 +49,6 @@ public abstract class AbstractAnimatedZoomableController extends DefaultZoomable * @param imagePoint 2D point in image's relative coordinate system (i.e. 0 <= x, y <= 1) * @param viewPoint 2D point in view's absolute coordinate system */ - @Override public void zoomToPoint(float scale, PointF imagePoint, PointF viewPoint) { zoomToPoint(scale, imagePoint, viewPoint, LIMIT_ALL, 0, null); } diff --git a/app/src/main/java/fr/free/nrw/commons/media/zoomControllers/zoomable/DefaultZoomableController.java b/app/src/main/java/fr/free/nrw/commons/media/zoomControllers/zoomable/DefaultZoomableController.java index 9c3538f05..44c0023fb 100644 --- a/app/src/main/java/fr/free/nrw/commons/media/zoomControllers/zoomable/DefaultZoomableController.java +++ b/app/src/main/java/fr/free/nrw/commons/media/zoomControllers/zoomable/DefaultZoomableController.java @@ -15,11 +15,6 @@ import java.lang.annotation.RetentionPolicy; public class DefaultZoomableController implements ZoomableController, TransformGestureDetector.Listener { - /** Interface for handling call backs when the image bounds are set. */ - public interface ImageBoundsListener { - void onImageBoundsSet(RectF imageBounds); - } - @IntDef( flag = true, value = {LIMIT_NONE, LIMIT_TRANSLATION_X, LIMIT_TRANSLATION_Y, LIMIT_SCALE, LIMIT_ALL}) @@ -32,16 +27,10 @@ public class DefaultZoomableController public static final int LIMIT_SCALE = 4; public static final int LIMIT_ALL = LIMIT_TRANSLATION_X | LIMIT_TRANSLATION_Y | LIMIT_SCALE; - private static final float EPS = 1e-3f; - private static final Class TAG = DefaultZoomableController.class; - private static final RectF IDENTITY_RECT = new RectF(0, 0, 1, 1); - private TransformGestureDetector mGestureDetector; - private @Nullable ImageBoundsListener mImageBoundsListener; - private @Nullable Listener mListener = null; private boolean mIsEnabled = false; @@ -65,11 +54,6 @@ public class DefaultZoomableController private final Matrix mActiveTransformInverse = new Matrix(); private final float[] mTempValues = new float[9]; private final RectF mTempRect = new RectF(); - private boolean mWasTransformCorrected; - - public static DefaultZoomableController newInstance() { - return new DefaultZoomableController(TransformGestureDetector.newInstance()); - } public DefaultZoomableController(TransformGestureDetector gestureDetector) { mGestureDetector = gestureDetector; @@ -106,74 +90,16 @@ public class DefaultZoomableController return mIsEnabled; } - /** Sets whether the rotation gesture is enabled or not. */ - public void setRotationEnabled(boolean enabled) { - mIsRotationEnabled = enabled; - } - - /** Gets whether the rotation gesture is enabled or not. */ - public boolean isRotationEnabled() { - return mIsRotationEnabled; - } - - /** Sets whether the scale gesture is enabled or not. */ - public void setScaleEnabled(boolean enabled) { - mIsScaleEnabled = enabled; - } - - /** Gets whether the scale gesture is enabled or not. */ - public boolean isScaleEnabled() { - return mIsScaleEnabled; - } - - /** Sets whether the translation gesture is enabled or not. */ - public void setTranslationEnabled(boolean enabled) { - mIsTranslationEnabled = enabled; - } - - /** Gets whether the translations gesture is enabled or not. */ - public boolean isTranslationEnabled() { - return mIsTranslationEnabled; - } - - /** - * Sets the minimum scale factor allowed. - * - *

Hierarchy's scaling (if any) is not taken into account. - */ - public void setMinScaleFactor(float minScaleFactor) { - mMinScaleFactor = minScaleFactor; - } - /** Gets the minimum scale factor allowed. */ public float getMinScaleFactor() { return mMinScaleFactor; } - /** - * Sets the maximum scale factor allowed. - * - *

Hierarchy's scaling (if any) is not taken into account. - */ - public void setMaxScaleFactor(float maxScaleFactor) { - mMaxScaleFactor = maxScaleFactor; - } - /** Gets the maximum scale factor allowed. */ public float getMaxScaleFactor() { return mMaxScaleFactor; } - /** Sets whether gesture zooms are enabled or not. */ - public void setGestureZoomEnabled(boolean isGestureZoomEnabled) { - mIsGestureZoomEnabled = isGestureZoomEnabled; - } - - /** Gets whether gesture zooms are enabled or not. */ - public boolean isGestureZoomEnabled() { - return mIsGestureZoomEnabled; - } - /** Gets the current scale factor. */ @Override public float getScaleFactor() { @@ -186,60 +112,21 @@ public class DefaultZoomableController if (!imageBounds.equals(mImageBounds)) { mImageBounds.set(imageBounds); onTransformChanged(); - if (mImageBoundsListener != null) { - mImageBoundsListener.onImageBoundsSet(mImageBounds); - } } } - /** Gets the non-transformed image bounds, in view-absolute coordinates. */ - public RectF getImageBounds() { - return mImageBounds; - } - - /** Gets the transformed image bounds, in view-absolute coordinates */ - private RectF getTransformedImageBounds() { - return mTransformedImageBounds; - } - /** Sets the view bounds. */ @Override public void setViewBounds(RectF viewBounds) { mViewBounds.set(viewBounds); } - /** Gets the view bounds. */ - public RectF getViewBounds() { - return mViewBounds; - } - - /** Sets the image bounds listener. */ - public void setImageBoundsListener(@Nullable ImageBoundsListener imageBoundsListener) { - mImageBoundsListener = imageBoundsListener; - } - - /** Gets the image bounds listener. */ - public @Nullable ImageBoundsListener getImageBoundsListener() { - return mImageBoundsListener; - } - /** Returns true if the zoomable transform is identity matrix. */ @Override public boolean isIdentity() { return isMatrixIdentity(mActiveTransform, 1e-3f); } - /** - * Returns true if the transform was corrected during the last update. - * - *

We should rename this method to `wasTransformedWithoutCorrection` and just return the - * internal flag directly. However, this requires interface change and negation of meaning. - */ - @Override - public boolean wasTransformCorrected() { - return mWasTransformCorrected; - } - /** * Gets the matrix that transforms image-absolute coordinates to view-absolute coordinates. The * zoomable transformation is taken into account. @@ -251,14 +138,6 @@ public class DefaultZoomableController return mActiveTransform; } - /** - * Gets the matrix that transforms image-relative coordinates to view-absolute coordinates. The - * zoomable transformation is taken into account. - */ - public void getImageRelativeToViewAbsoluteTransform(Matrix outMatrix) { - outMatrix.setRectToRect(IDENTITY_RECT, mTransformedImageBounds, Matrix.ScaleToFit.FILL); - } - /** * Maps point from view-absolute to image-relative coordinates. This takes into account the * zoomable transformation. @@ -273,19 +152,6 @@ public class DefaultZoomableController return new PointF(points[0], points[1]); } - /** - * Maps point from image-relative to view-absolute coordinates. This takes into account the - * zoomable transformation. - */ - public PointF mapImageToView(PointF imagePoint) { - float[] points = mTempValues; - points[0] = imagePoint.x; - points[1] = imagePoint.y; - mapRelativeToAbsolute(points, points, 1); - mActiveTransform.mapPoints(points, 0, points, 0, 1); - return new PointF(points[0], points[1]); - } - /** * Maps array of 2D points from view-absolute to image-relative coordinates. This does NOT take * into account the zoomable transformation. Points are represented by a float array of [x0, y0, @@ -318,20 +184,6 @@ public class DefaultZoomableController } } - /** - * Zooms to the desired scale and positions the image so that the given image point corresponds to - * the given view point. - * - * @param scale desired scale, will be limited to {min, max} scale factor - * @param imagePoint 2D point in image's relative coordinate system (i.e. 0 <= x, y <= 1) - * @param viewPoint 2D point in view's absolute coordinate system - */ - public void zoomToPoint(float scale, PointF imagePoint, PointF viewPoint) { - FLog.v(TAG, "zoomToPoint"); - calculateZoomToPointTransform(mActiveTransform, scale, imagePoint, viewPoint, LIMIT_ALL); - onTransformChanged(); - } - /** * Calculates the zoom transformation that would zoom to the desired scale and position the image * so that the given image point corresponds to the given view point. @@ -391,12 +243,6 @@ public class DefaultZoomableController public void onGestureBegin(TransformGestureDetector detector) { FLog.v(TAG, "onGestureBegin"); mPreviousTransform.set(mActiveTransform); - onTransformBegin(); - // We only received a touch down event so far, and so we don't know yet in which direction a - // future move event will follow. Therefore, if we can't scroll in all directions, we have to - // assume the worst case where the user tries to scroll out of edge, which would cause - // transformation to be corrected. - mWasTransformCorrected = !canScrollInAllDirection(); } @Override @@ -408,11 +254,10 @@ public class DefaultZoomableController mGestureDetector.restartGesture(); } // A transformation happened, but was it without correction? - mWasTransformCorrected = transformCorrected; } @Override - public void onGestureEnd(TransformGestureDetector detector) { + public void onGestureEnd() { FLog.v(TAG, "onGestureEnd"); onTransformEnd(); } @@ -445,12 +290,6 @@ public class DefaultZoomableController return transformCorrected; } - private void onTransformBegin() { - if (mListener != null && isEnabled()) { - mListener.onTransformBegin(mActiveTransform); - } - } - private void onTransformChanged() { mActiveTransform.mapRect(mTransformedImageBounds, mImageBounds); if (mListener != null && isEnabled()) { @@ -458,12 +297,6 @@ public class DefaultZoomableController } } - private void onTransformEnd() { - if (mListener != null && isEnabled()) { - mListener.onTransformEnd(mActiveTransform); - } - } - /** * Keeps the scaling factor within the specified limits. * @@ -602,14 +435,6 @@ public class DefaultZoomableController return true; } - /** Returns whether the scroll can happen in all directions. I.e. the image is not on any edge. */ - private boolean canScrollInAllDirection() { - return mTransformedImageBounds.left < mViewBounds.left - EPS - && mTransformedImageBounds.top < mViewBounds.top - EPS - && mTransformedImageBounds.right > mViewBounds.right + EPS - && mTransformedImageBounds.bottom > mViewBounds.bottom + EPS; - } - @Override public int computeHorizontalScrollRange() { return (int) mTransformedImageBounds.width(); @@ -640,7 +465,4 @@ public class DefaultZoomableController return (int) mViewBounds.height(); } - public Listener getListener() { - return mListener; - } -} \ No newline at end of file +} diff --git a/app/src/main/java/fr/free/nrw/commons/media/zoomControllers/zoomable/MultiGestureListener.java b/app/src/main/java/fr/free/nrw/commons/media/zoomControllers/zoomable/MultiGestureListener.java deleted file mode 100644 index 05be602a7..000000000 --- a/app/src/main/java/fr/free/nrw/commons/media/zoomControllers/zoomable/MultiGestureListener.java +++ /dev/null @@ -1,148 +0,0 @@ -package fr.free.nrw.commons.media.zoomControllers.zoomable; - -import android.view.GestureDetector; -import android.view.MotionEvent; -import java.util.ArrayList; -import java.util.List; - -/** - * Gesture listener that allows multiple child listeners to be added and notified about gesture - * events. - * - * NOTE: The order of the listeners is important. Listeners can consume gesture events. For - * example, if one of the child listeners consumes {@link #onLongPress(MotionEvent)} (the listener - * returned true), subsequent listeners will not be notified about the event any more since it has - * been consumed. - */ -public class MultiGestureListener extends GestureDetector.SimpleOnGestureListener { - - private final List mListeners = new ArrayList<>(); - - /** - * Adds a listener to the multi gesture listener. - * - *

NOTE: The order of the listeners is important since gesture events can be consumed. - * - * @param listener the listener to be added - */ - public synchronized void addListener(GestureDetector.SimpleOnGestureListener listener) { - mListeners.add(listener); - } - - /** - * Removes the given listener so that it will not be notified about future events. - * - *

NOTE: The order of the listeners is important since gesture events can be consumed. - * - * @param listener the listener to remove - */ - public synchronized void removeListener(GestureDetector.SimpleOnGestureListener listener) { - mListeners.remove(listener); - } - - @Override - public synchronized boolean onSingleTapUp(MotionEvent e) { - final int size = mListeners.size(); - for (int i = 0; i < size; i++) { - if (mListeners.get(i).onSingleTapUp(e)) { - return true; - } - } - return false; - } - - @Override - public synchronized void onLongPress(MotionEvent e) { - final int size = mListeners.size(); - for (int i = 0; i < size; i++) { - mListeners.get(i).onLongPress(e); - } - } - - @Override - public synchronized boolean onScroll( - MotionEvent e1, MotionEvent e2, float distanceX, float distanceY) { - final int size = mListeners.size(); - for (int i = 0; i < size; i++) { - if (mListeners.get(i).onScroll(e1, e2, distanceX, distanceY)) { - return true; - } - } - return false; - } - - @Override - public synchronized boolean onFling( - MotionEvent e1, MotionEvent e2, float velocityX, float velocityY) { - final int size = mListeners.size(); - for (int i = 0; i < size; i++) { - if (mListeners.get(i).onFling(e1, e2, velocityX, velocityY)) { - return true; - } - } - return false; - } - - @Override - public synchronized void onShowPress(MotionEvent e) { - final int size = mListeners.size(); - for (int i = 0; i < size; i++) { - mListeners.get(i).onShowPress(e); - } - } - - @Override - public synchronized boolean onDown(MotionEvent e) { - final int size = mListeners.size(); - for (int i = 0; i < size; i++) { - if (mListeners.get(i).onDown(e)) { - return true; - } - } - return false; - } - - @Override - public synchronized boolean onDoubleTap(MotionEvent e) { - final int size = mListeners.size(); - for (int i = 0; i < size; i++) { - if (mListeners.get(i).onDoubleTap(e)) { - return true; - } - } - return false; - } - - @Override - public synchronized boolean onDoubleTapEvent(MotionEvent e) { - final int size = mListeners.size(); - for (int i = 0; i < size; i++) { - if (mListeners.get(i).onDoubleTapEvent(e)) { - return true; - } - } - return false; - } - - @Override - public synchronized boolean onSingleTapConfirmed(MotionEvent e) { - final int size = mListeners.size(); - for (int i = 0; i < size; i++) { - if (mListeners.get(i).onSingleTapConfirmed(e)) { - return true; - } - } - return false; - } - - @Override - public synchronized boolean onContextClick(MotionEvent e) { - final int size = mListeners.size(); - for (int i = 0; i < size; i++) { - if (mListeners.get(i).onContextClick(e)) { - return true; - } - } - return false; - } -} diff --git a/app/src/main/java/fr/free/nrw/commons/media/zoomControllers/zoomable/MultiZoomableControllerListener.java b/app/src/main/java/fr/free/nrw/commons/media/zoomControllers/zoomable/MultiZoomableControllerListener.java deleted file mode 100644 index 33268ed29..000000000 --- a/app/src/main/java/fr/free/nrw/commons/media/zoomControllers/zoomable/MultiZoomableControllerListener.java +++ /dev/null @@ -1,40 +0,0 @@ -package fr.free.nrw.commons.media.zoomControllers.zoomable; - -import android.graphics.Matrix; -import java.util.ArrayList; -import java.util.List; - - -public class MultiZoomableControllerListener implements ZoomableController.Listener { - - private final List mListeners = new ArrayList<>(); - - @Override - public synchronized void onTransformBegin(Matrix transform) { - for (ZoomableController.Listener listener : mListeners) { - listener.onTransformBegin(transform); - } - } - - @Override - public synchronized void onTransformChanged(Matrix transform) { - for (ZoomableController.Listener listener : mListeners) { - listener.onTransformChanged(transform); - } - } - - @Override - public synchronized void onTransformEnd(Matrix transform) { - for (ZoomableController.Listener listener : mListeners) { - listener.onTransformEnd(transform); - } - } - - public synchronized void addListener(ZoomableController.Listener listener) { - mListeners.add(listener); - } - - public synchronized void removeListener(ZoomableController.Listener listener) { - mListeners.remove(listener); - } -} \ No newline at end of file diff --git a/app/src/main/java/fr/free/nrw/commons/media/zoomControllers/zoomable/ZoomableController.java b/app/src/main/java/fr/free/nrw/commons/media/zoomControllers/zoomable/ZoomableController.java index 7cf6c5d44..fd2a57f84 100644 --- a/app/src/main/java/fr/free/nrw/commons/media/zoomControllers/zoomable/ZoomableController.java +++ b/app/src/main/java/fr/free/nrw/commons/media/zoomControllers/zoomable/ZoomableController.java @@ -13,13 +13,6 @@ public interface ZoomableController { /** Listener interface. */ interface Listener { - /** - * Notifies the view that the transform began. - * - * @param transform the current transform matrix - */ - void onTransformBegin(Matrix transform); - /** * Notifies the view that the transform changed. * @@ -27,12 +20,6 @@ public interface ZoomableController { */ void onTransformChanged(Matrix transform); - /** - * Notifies the view that the transform ended. - * - * @param transform the current transform matrix - */ - void onTransformEnd(Matrix transform); } /** @@ -68,14 +55,6 @@ public interface ZoomableController { /** Returns true if the zoomable transform is identity matrix, and the controller is idle. */ boolean isIdentity(); - /** - * Returns true if the transform was corrected during the last update. - * - *

This mainly happens when a gesture would cause the image to get out of limits and the - * transform gets corrected in order to prevent that. - */ - boolean wasTransformCorrected(); - /** See {@link androidx.core.view.ScrollingView}. */ int computeHorizontalScrollRange(); diff --git a/app/src/main/java/fr/free/nrw/commons/media/zoomControllers/zoomable/ZoomableDraweeView.java b/app/src/main/java/fr/free/nrw/commons/media/zoomControllers/zoomable/ZoomableDraweeView.java index 3cb2b2f91..a7c69a480 100644 --- a/app/src/main/java/fr/free/nrw/commons/media/zoomControllers/zoomable/ZoomableDraweeView.java +++ b/app/src/main/java/fr/free/nrw/commons/media/zoomControllers/zoomable/ZoomableDraweeView.java @@ -9,10 +9,8 @@ import android.graphics.drawable.Animatable; import android.util.AttributeSet; import android.view.GestureDetector; import android.view.MotionEvent; - import androidx.annotation.Nullable; import androidx.core.view.ScrollingView; -import com.facebook.common.internal.Preconditions; import com.facebook.common.logging.FLog; import com.facebook.drawee.controller.AbstractDraweeController; import com.facebook.drawee.controller.BaseControllerListener; @@ -64,16 +62,12 @@ public class ZoomableDraweeView extends DraweeView private final ZoomableController.Listener mZoomableListener = new ZoomableController.Listener() { - @Override - public void onTransformBegin(Matrix transform) {} - @Override + @Override public void onTransformChanged(Matrix transform) { ZoomableDraweeView.this.onTransformChanged(transform); } - @Override - public void onTransformEnd(Matrix transform) {} }; private final GestureListenerWrapper mTapListenerWrapper = new GestureListenerWrapper(); @@ -118,10 +112,6 @@ public class ZoomableDraweeView extends DraweeView mTapGestureDetector = new GestureDetector(getContext(), mTapListenerWrapper); } - public void setIsDialtoneEnabled(boolean isDialtoneEnabled) { - mIsDialtoneEnabled = isDialtoneEnabled; - } - /** * Gets the original image bounds, in view-absolute coordinates. * @@ -153,14 +143,6 @@ public class ZoomableDraweeView extends DraweeView outBounds.set(0, 0, getWidth(), getHeight()); } - /** Sets a custom zoomable controller, instead of using the default one. */ - public void setZoomableController(ZoomableController zoomableController) { - Preconditions.checkNotNull(zoomableController); - mZoomableController.setListener(null); - mZoomableController = zoomableController; - mZoomableController.setListener(mZoomableListener); - } - /** * Gets the zoomable controller. * @@ -171,16 +153,6 @@ public class ZoomableDraweeView extends DraweeView return mZoomableController; } - /** - * Check whether the parent view can intercept touch events while zoomed. This can be used, for - * example, to swipe between images in a view pager while zoomed. - * - * @return true if touch events can be intercepted - */ - public boolean allowsTouchInterceptionWhileZoomed() { - return mAllowTouchInterceptionWhileZoomed; - } - /** * If this is set to true, parent views can intercept touch events while the view is zoomed. For * example, this can be used to swipe between images in a view pager while zoomed. @@ -204,11 +176,6 @@ public class ZoomableDraweeView extends DraweeView mTapGestureDetector.setIsLongpressEnabled(enabled); } - public void setZoomingEnabled(boolean zoomingEnabled) { - mZoomingEnabled = zoomingEnabled; - mZoomableController.setEnabled(false); - } - /** Sets the image controller. */ @Override public void setController(@Nullable DraweeController controller) { @@ -397,4 +364,4 @@ public class ZoomableDraweeView extends DraweeView protected ZoomableController createZoomableController() { return AnimatedZoomableController.newInstance(); } -} \ No newline at end of file +} diff --git a/app/src/main/java/fr/free/nrw/commons/mwapi/UserClient.java b/app/src/main/java/fr/free/nrw/commons/mwapi/UserClient.java index 8e88bb217..0d8bc5b92 100644 --- a/app/src/main/java/fr/free/nrw/commons/mwapi/UserClient.java +++ b/app/src/main/java/fr/free/nrw/commons/mwapi/UserClient.java @@ -1,19 +1,13 @@ package fr.free.nrw.commons.mwapi; -import org.wikipedia.dataclient.mwapi.MwQueryLogEvent; +import io.reactivex.Single; +import java.util.Date; +import javax.inject.Inject; import org.wikipedia.dataclient.mwapi.MwQueryResponse; import org.wikipedia.dataclient.mwapi.MwQueryResult; import org.wikipedia.dataclient.mwapi.UserInfo; import org.wikipedia.util.DateUtil; -import java.util.Collections; -import java.util.Date; - -import javax.inject.Inject; - -import io.reactivex.Observable; -import io.reactivex.Single; - public class UserClient { private final UserInterface userInterface; @@ -45,15 +39,4 @@ public class UserClient { }).single(false); } - public Observable logEvents(String user) { - try { - return userInterface.getUserLogEvents(user, Collections.emptyMap()) - .map(MwQueryResponse::query) - .map(MwQueryResult::logevents) - .flatMap(Observable::fromIterable); - } catch (Throwable throwable) { - return Observable.empty(); - } - - } } diff --git a/app/src/main/java/fr/free/nrw/commons/mwapi/UserInterface.java b/app/src/main/java/fr/free/nrw/commons/mwapi/UserInterface.java index a8fd7e152..ae94dce1f 100644 --- a/app/src/main/java/fr/free/nrw/commons/mwapi/UserInterface.java +++ b/app/src/main/java/fr/free/nrw/commons/mwapi/UserInterface.java @@ -1,28 +1,13 @@ package fr.free.nrw.commons.mwapi; -import org.wikipedia.dataclient.mwapi.MwQueryResponse; - -import java.util.Map; - -import io.reactivex.Observable; -import retrofit2.http.GET; -import retrofit2.http.Query; -import retrofit2.http.QueryMap; - import static org.wikipedia.dataclient.Service.MW_API_PREFIX; +import io.reactivex.Observable; +import org.wikipedia.dataclient.mwapi.MwQueryResponse; +import retrofit2.http.GET; + public interface UserInterface { - /** - * Gets the log events of user - * @param user name of user without prefix - * @param continuation continuation params returned in previous query - * @return query response - */ - - @GET(MW_API_PREFIX+"action=query&list=logevents&letype=upload&leprop=title|timestamp|ids&lelimit=500") - Observable getUserLogEvents(@Query("leuser") String user, @QueryMap Map continuation); - /** * Checks to see if a user is currently blocked from Commons */ diff --git a/app/src/main/java/fr/free/nrw/commons/nearby/Label.java b/app/src/main/java/fr/free/nrw/commons/nearby/Label.java index 19c175fd8..d637d6866 100644 --- a/app/src/main/java/fr/free/nrw/commons/nearby/Label.java +++ b/app/src/main/java/fr/free/nrw/commons/nearby/Label.java @@ -1,16 +1,12 @@ package fr.free.nrw.commons.nearby; -import android.os.Parcel; - import androidx.annotation.DrawableRes; - +import fr.free.nrw.commons.R; import java.util.Arrays; import java.util.HashMap; import java.util.List; import java.util.Map; -import fr.free.nrw.commons.R; - /** * See https://github.com/commons-app/apps-android-commons/issues/250 * Most common types of desc: building, house, cottage, farmhouse, @@ -65,11 +61,6 @@ public enum Label { this.icon = icon; } - Label(Parcel in) { - this.text = in.readString(); - this.icon = in.readInt(); - } - /** * Will be used for nearby filter, to determine if place type is selected or not * @param isSelected true if user selected the place type @@ -99,4 +90,4 @@ public enum Label { public static List