diff --git a/app/src/main/java/fr/free/nrw/commons/nearby/fragments/NearbyParentFragment.java b/app/src/main/java/fr/free/nrw/commons/nearby/fragments/NearbyParentFragment.java index 80cf1f33ab..b3a5502453 100644 --- a/app/src/main/java/fr/free/nrw/commons/nearby/fragments/NearbyParentFragment.java +++ b/app/src/main/java/fr/free/nrw/commons/nearby/fragments/NearbyParentFragment.java @@ -1,5 +1,13 @@ package fr.free.nrw.commons.nearby.fragments; +import static fr.free.nrw.commons.contributions.MainActivity.CONTRIBUTIONS_TAB_POSITION; +import static fr.free.nrw.commons.location.LocationServiceManager.LocationChangeType.LOCATION_SIGNIFICANTLY_CHANGED; +import static fr.free.nrw.commons.location.LocationServiceManager.LocationChangeType.LOCATION_SLIGHTLY_CHANGED; +import static fr.free.nrw.commons.location.LocationServiceManager.LocationChangeType.MAP_UPDATED; +import static fr.free.nrw.commons.nearby.Label.TEXT_TO_DESCRIPTION; +import static fr.free.nrw.commons.utils.LengthUtils.formatDistanceBetween; +import static fr.free.nrw.commons.wikidata.WikidataConstants.PLACE_OBJECT; + import android.Manifest; import android.app.AlertDialog; import android.content.BroadcastReceiver; @@ -11,6 +19,8 @@ import android.graphics.Bitmap; import android.os.Bundle; import android.provider.Settings; +import android.text.Html; +import android.text.method.LinkMovementMethod; import android.util.Log; import android.view.Gravity; import android.view.LayoutInflater; @@ -26,14 +36,15 @@ import android.widget.SearchView; import android.widget.TextView; import android.widget.Toast; - import androidx.annotation.NonNull; import androidx.annotation.Nullable; +import androidx.appcompat.widget.AppCompatTextView; import androidx.recyclerview.widget.DividerItemDecoration; import androidx.recyclerview.widget.LinearLayoutManager; import androidx.recyclerview.widget.RecyclerView; import androidx.vectordrawable.graphics.drawable.VectorDrawableCompat; - +import butterknife.BindView; +import butterknife.ButterKnife; import com.google.android.material.bottomsheet.BottomSheetBehavior; import com.google.android.material.chip.Chip; import com.google.android.material.chip.ChipGroup; @@ -58,17 +69,6 @@ import com.mapbox.pluginscalebar.ScaleBarOptions; import com.mapbox.pluginscalebar.ScaleBarPlugin; import com.pedrogomez.renderers.RVRendererAdapter; - -import fr.free.nrw.commons.utils.DialogUtil; -import java.util.ArrayList; -import java.util.List; -import java.util.concurrent.TimeUnit; - -import javax.inject.Inject; -import javax.inject.Named; - -import butterknife.BindView; -import butterknife.ButterKnife; import fr.free.nrw.commons.CommonsApplication; import fr.free.nrw.commons.R; import fr.free.nrw.commons.Utils; @@ -92,6 +92,7 @@ import fr.free.nrw.commons.nearby.Place; import fr.free.nrw.commons.nearby.contract.NearbyParentFragmentContract; import fr.free.nrw.commons.nearby.presenter.NearbyParentFragmentPresenter; +import fr.free.nrw.commons.utils.DialogUtil; import fr.free.nrw.commons.utils.ExecutorUtils; import fr.free.nrw.commons.utils.LayoutUtils; import fr.free.nrw.commons.utils.LocationUtils; @@ -105,16 +106,13 @@ import io.reactivex.Observable; import io.reactivex.android.schedulers.AndroidSchedulers; import io.reactivex.schedulers.Schedulers; +import java.util.ArrayList; +import java.util.List; +import java.util.concurrent.TimeUnit; +import javax.inject.Inject; +import javax.inject.Named; import timber.log.Timber; -import static fr.free.nrw.commons.contributions.MainActivity.CONTRIBUTIONS_TAB_POSITION; -import static fr.free.nrw.commons.location.LocationServiceManager.LocationChangeType.LOCATION_SIGNIFICANTLY_CHANGED; -import static fr.free.nrw.commons.location.LocationServiceManager.LocationChangeType.LOCATION_SLIGHTLY_CHANGED; -import static fr.free.nrw.commons.location.LocationServiceManager.LocationChangeType.MAP_UPDATED; -import static fr.free.nrw.commons.nearby.Label.TEXT_TO_DESCRIPTION; -import static fr.free.nrw.commons.utils.LengthUtils.formatDistanceBetween; -import static fr.free.nrw.commons.wikidata.WikidataConstants.PLACE_OBJECT; - public class NearbyParentFragment extends CommonsDaggerSupportFragment implements NearbyParentFragmentContract.View, @@ -154,6 +152,8 @@ public class NearbyParentFragment extends CommonsDaggerSupportFragment MapView mapView; @BindView(R.id.rv_nearby_list) RecyclerView rvNearbyList; + @BindView(R.id.tv_attribution) + AppCompatTextView tvAttribution; @Inject LocationServiceManager locationManager; @Inject NearbyController nearbyController; @@ -236,8 +236,8 @@ public void onViewCreated(@NonNull View view, @Nullable Bundle savedInstanceStat UiSettings uiSettings = mapBoxMap.getUiSettings(); uiSettings.setCompassGravity(Gravity.BOTTOM | Gravity.LEFT); uiSettings.setCompassMargins(12, 0, 0, 24); - uiSettings.setLogoEnabled(true); - uiSettings.setAttributionEnabled(true); + uiSettings.setLogoEnabled(false); + uiSettings.setAttributionEnabled(false); uiSettings.setRotateGesturesEnabled(false); NearbyParentFragment.this.isMapBoxReady=true; performMapReadyActions(); @@ -260,6 +260,9 @@ public void onViewCreated(@NonNull View view, @Nullable Bundle savedInstanceStat scaleBarPlugin.create(scaleBarOptions); }); }); + + tvAttribution.setText(Html.fromHtml(getString(R.string.map_attribution))); + tvAttribution.setMovementMethod(LinkMovementMethod.getInstance()); } /** diff --git a/app/src/main/java/fr/free/nrw/commons/settings/Prefs.java b/app/src/main/java/fr/free/nrw/commons/settings/Prefs.java index 7ea86a0195..a127965325 100644 --- a/app/src/main/java/fr/free/nrw/commons/settings/Prefs.java +++ b/app/src/main/java/fr/free/nrw/commons/settings/Prefs.java @@ -10,6 +10,7 @@ public class Prefs { public static final String MANAGED_EXIF_TAGS = "managed_exif_tags"; public static final String KEY_LANGUAGE_VALUE = "languageDescription"; public static final String KEY_THEME_VALUE = "appThemePref"; + public static final String TELEMETRY_PREFERENCE = "telemetryPref"; public static class Licenses { public static final String CC_BY_SA_3 = "CC BY-SA 3.0"; diff --git a/app/src/main/java/fr/free/nrw/commons/settings/SettingsFragment.java b/app/src/main/java/fr/free/nrw/commons/settings/SettingsFragment.java index 00ef4ed4b5..aad1ccff70 100644 --- a/app/src/main/java/fr/free/nrw/commons/settings/SettingsFragment.java +++ b/app/src/main/java/fr/free/nrw/commons/settings/SettingsFragment.java @@ -14,6 +14,8 @@ import com.karumi.dexter.Dexter; import com.karumi.dexter.listener.PermissionGrantedResponse; import com.karumi.dexter.listener.single.BasePermissionListener; +import com.mapbox.mapboxsdk.Mapbox; +import com.mapbox.mapboxsdk.maps.TelemetryDefinition; import fr.free.nrw.commons.R; import fr.free.nrw.commons.Utils; import fr.free.nrw.commons.di.ApplicationlessInjection; @@ -123,6 +125,24 @@ public void onCreatePreferences(Bundle savedInstanceState, String rootKey) { findPreference("displayCampaignsCardView").setEnabled(false); uploadLimit.setEnabled(false); } + + findPreference("telemetryOptOut").setOnPreferenceChangeListener( + (preference, newValue) -> { + telemetryOptInOut((boolean)newValue); + defaultKvStore.putBoolean(Prefs.TELEMETRY_PREFERENCE,(boolean)newValue); + return false; + }); + } + + /** + * Opt in or out of MapBox telemetry + * @param shouldOptIn + */ + private void telemetryOptInOut(boolean shouldOptIn){ + TelemetryDefinition telemetry = Mapbox.getTelemetry(); + if (telemetry != null) { + telemetry.setUserTelemetryRequestState(shouldOptIn); + } } /** diff --git a/app/src/main/res/layout/fragment_nearby_parent.xml b/app/src/main/res/layout/fragment_nearby_parent.xml index 7f0388857d..10c9cfcf30 100644 --- a/app/src/main/res/layout/fragment_nearby_parent.xml +++ b/app/src/main/res/layout/fragment_nearby_parent.xml @@ -25,7 +25,7 @@ - @@ -40,7 +40,19 @@ android:layout_height="match_parent" android:background="@android:color/transparent" /> - + + +