diff --git a/app/build.gradle b/app/build.gradle index 36280e48a..c2e618c17 100644 --- a/app/build.gradle +++ b/app/build.gradle @@ -36,7 +36,7 @@ dependencies { implementation 'fr.avianey.com.viewpagerindicator:library:2.4.1.1@aar' implementation 'com.github.chrisbanes:PhotoView:2.0.0' implementation 'com.github.pedrovgs:renderers:3.3.3' - implementation 'com.mapbox.mapboxsdk:mapbox-android-sdk:7.2.0' + implementation 'com.mapbox.mapboxsdk:mapbox-android-sdk:8.6.1' implementation 'com.mapbox.mapboxsdk:mapbox-android-plugin-localization-v7:0.7.0' implementation 'com.github.deano2390:MaterialShowcaseView:1.2.0' implementation 'com.dinuscxj:circleprogressbar:1.1.1' @@ -102,6 +102,7 @@ dependencies { //swipe_layout implementation 'com.daimajia.swipelayout:library:1.2.0@aar' + implementation 'com.squareup.retrofit2:retrofit:2.7.1' } android { diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml index ad88b720c..458db48be 100644 --- a/app/src/main/AndroidManifest.xml +++ b/app/src/main/AndroidManifest.xml @@ -78,7 +78,7 @@ android:name=".contributions.MainActivity" android:icon="@mipmap/ic_launcher" android:label="@string/app_name" - android:configChanges="orientation|screenSize|keyboard" /> + android:configChanges="screenSize|keyboard" /> 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 2efc43300..c0bc11ba9 100644 --- a/app/src/main/java/fr/free/nrw/commons/CommonsApplication.java +++ b/app/src/main/java/fr/free/nrw/commons/CommonsApplication.java @@ -19,6 +19,7 @@ import com.facebook.imagepipeline.producers.Consumer; import com.facebook.imagepipeline.producers.FetchState; import com.facebook.imagepipeline.producers.NetworkFetcher; import com.facebook.imagepipeline.producers.ProducerContext; +import com.mapbox.mapboxsdk.Mapbox; import com.squareup.leakcanary.LeakCanary; import com.squareup.leakcanary.RefWatcher; @@ -134,6 +135,7 @@ public class CommonsApplication extends Application { INSTANCE = this; ACRA.init(this); + Mapbox.getInstance(this, getString(R.string.mapbox_commons_app_token)); ApplicationlessInjection .getInstance(this) 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 67e67fbf3..1d1e560d3 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 @@ -35,7 +35,6 @@ import fr.free.nrw.commons.auth.SessionManager; import fr.free.nrw.commons.location.LocationServiceManager; import fr.free.nrw.commons.nearby.NearbyNotificationCardView; import fr.free.nrw.commons.nearby.fragments.NearbyParentFragment; -import fr.free.nrw.commons.nearby.presenter.NearbyParentFragmentPresenter; import fr.free.nrw.commons.notification.Notification; import fr.free.nrw.commons.notification.NotificationActivity; import fr.free.nrw.commons.notification.NotificationController; @@ -78,6 +77,7 @@ public class MainActivity extends NavigationBaseActivity implements FragmentMana private MenuItem notificationsMenuItem; private TextView notificationCount; + private NearbyParentFragment nearbyParentFragment; public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); @@ -188,8 +188,6 @@ public class MainActivity extends NavigationBaseActivity implements FragmentMana tabLayout.getTabAt(NEARBY_TAB_POSITION).select(); isContributionsFragmentVisible = false; updateMenuItem(); - // Do all permission and GPS related tasks on tab selected, not on create - NearbyParentFragmentPresenter.getInstance().onTabSelected(); break; default: tabLayout.getTabAt(CONTRIBUTIONS_TAB_POSITION).select(); @@ -265,7 +263,9 @@ public class MainActivity extends NavigationBaseActivity implements FragmentMana } } else if (getSupportFragmentManager().findFragmentByTag(nearbyFragmentTag) != null && !isContributionsFragmentVisible) { // Means that nearby fragment is visible (not contributions fragment) - NearbyParentFragmentPresenter.getInstance().backButtonClicked(); + if (null != nearbyParentFragment) { + nearbyParentFragment.backButtonClicked(); + } } else { super.onBackPressed(); } @@ -380,12 +380,13 @@ public class MainActivity extends NavigationBaseActivity implements FragmentMana } case 1: - NearbyParentFragment retainedNearbyFragment = getNearbyFragment(1); - if (retainedNearbyFragment != null) { - return retainedNearbyFragment; + nearbyParentFragment = getNearbyFragment(1); + if (nearbyParentFragment != null) { + return nearbyParentFragment; } else { // If we reach here, retainedNearbyFragment is null - return new NearbyParentFragment(); + nearbyParentFragment=new NearbyParentFragment(); + return nearbyParentFragment; } default: return null; diff --git a/app/src/main/java/fr/free/nrw/commons/di/FragmentBuilderModule.java b/app/src/main/java/fr/free/nrw/commons/di/FragmentBuilderModule.java index 15b8e6026..e2be74d0f 100644 --- a/app/src/main/java/fr/free/nrw/commons/di/FragmentBuilderModule.java +++ b/app/src/main/java/fr/free/nrw/commons/di/FragmentBuilderModule.java @@ -13,8 +13,6 @@ import fr.free.nrw.commons.explore.images.SearchImageFragment; import fr.free.nrw.commons.explore.recentsearches.RecentSearchesFragment; import fr.free.nrw.commons.media.MediaDetailFragment; import fr.free.nrw.commons.media.MediaDetailPagerFragment; -import fr.free.nrw.commons.nearby.fragments.NearbyListFragment; -import fr.free.nrw.commons.nearby.fragments.NearbyMapFragment; import fr.free.nrw.commons.nearby.fragments.NearbyParentFragment; import fr.free.nrw.commons.review.ReviewImageFragment; import fr.free.nrw.commons.settings.SettingsFragment; @@ -40,9 +38,6 @@ public abstract class FragmentBuilderModule { @ContributesAndroidInjector abstract MediaDetailPagerFragment bindMediaDetailPagerFragment(); - @ContributesAndroidInjector - abstract NearbyListFragment bindNearbyListFragment(); - @ContributesAndroidInjector abstract SettingsFragment bindSettingsFragment(); @@ -64,9 +59,6 @@ public abstract class FragmentBuilderModule { @ContributesAndroidInjector abstract ContributionsFragment bindContributionsFragment(); - @ContributesAndroidInjector - abstract NearbyMapFragment bindNearbyMapFragment(); - @ContributesAndroidInjector abstract NearbyParentFragment bindNearbyParentFragment(); diff --git a/app/src/main/java/fr/free/nrw/commons/nearby/CheckBoxTriStates.java b/app/src/main/java/fr/free/nrw/commons/nearby/CheckBoxTriStates.java index d95c1dd16..e8fc70873 100644 --- a/app/src/main/java/fr/free/nrw/commons/nearby/CheckBoxTriStates.java +++ b/app/src/main/java/fr/free/nrw/commons/nearby/CheckBoxTriStates.java @@ -9,6 +9,8 @@ import android.widget.CompoundButton; import androidx.annotation.Nullable; import androidx.appcompat.widget.AppCompatCheckBox; +import java.util.List; + import fr.free.nrw.commons.R; import fr.free.nrw.commons.nearby.presenter.NearbyParentFragmentPresenter; @@ -25,6 +27,16 @@ public class CheckBoxTriStates extends AppCompatCheckBox { private int state; + private Callback callback; + + public interface Callback{ + void filterByMarkerType(@Nullable List