diff --git a/android/src/com/mapswithme/maps/SplashActivity.java b/android/src/com/mapswithme/maps/SplashActivity.java index 441968147a..98c8732cf6 100644 --- a/android/src/com/mapswithme/maps/SplashActivity.java +++ b/android/src/com/mapswithme/maps/SplashActivity.java @@ -89,7 +89,7 @@ public class SplashActivity extends AppCompatActivity if (!mediator.isLimitAdTrackingEnabled()) { LOGGER.i(TAG, "Limit ad tracking disabled, sensitive tracking initialized"); - mediator.initSensitiveEventLogger(); + mediator.initSensitiveData(); } else { @@ -98,13 +98,10 @@ public class SplashActivity extends AppCompatActivity init(); LOGGER.i(TAG, "Core initialized: " + app.arePlatformAndCoreInitialized()); - if (app.arePlatformAndCoreInitialized()) + if (app.arePlatformAndCoreInitialized() && mediator.isLimitAdTrackingEnabled()) { - if (mediator.isLimitAdTrackingEnabled()) - { - LOGGER.i(TAG, "Limit ad tracking enabled, rb banners disabled."); - mediator.disableAdProvider(Banner.Type.TYPE_RB); - } + LOGGER.i(TAG, "Limit ad tracking enabled, rb banners disabled."); + mediator.disableAdProvider(Banner.Type.TYPE_RB); } // Run delayed task because resumeDialogs() must see the actual value of mCanceled flag, diff --git a/android/src/com/mapswithme/maps/analytics/ExternalLibrariesMediator.java b/android/src/com/mapswithme/maps/analytics/ExternalLibrariesMediator.java index 0fa0413c1d..bac7a6809b 100644 --- a/android/src/com/mapswithme/maps/analytics/ExternalLibrariesMediator.java +++ b/android/src/com/mapswithme/maps/analytics/ExternalLibrariesMediator.java @@ -21,6 +21,7 @@ import com.mapswithme.maps.PrivateVariables; import com.mapswithme.maps.R; import com.mapswithme.maps.ads.Banner; import com.mapswithme.util.CrashlyticsUtils; +import com.mapswithme.util.PermissionsUtils; import com.mapswithme.util.Utils; import com.mapswithme.util.log.Logger; import com.mapswithme.util.log.LoggerFactory; @@ -64,7 +65,7 @@ public class ExternalLibrariesMediator getAdInfoTask.execute(); } - public void initSensitiveEventLogger() + private void initSensitiveEventLogger() { if (com.mapswithme.util.concurrency.UiThread.isUiThread()) { @@ -184,6 +185,15 @@ public class ExternalLibrariesMediator return mApplication; } + public void initSensitiveData() + { + initSensitiveEventLogger(); + if (PermissionsUtils.isLocationGranted(getApplication())) + return; + + MyTargetPrivacy.setUserConsent(false); + } + private static class GetAdInfoTask extends AsyncTask { @NonNull diff --git a/android/src/com/mapswithme/maps/analytics/MyTrackerEventLogger.java b/android/src/com/mapswithme/maps/analytics/MyTrackerEventLogger.java index c89ab38430..4997b10135 100644 --- a/android/src/com/mapswithme/maps/analytics/MyTrackerEventLogger.java +++ b/android/src/com/mapswithme/maps/analytics/MyTrackerEventLogger.java @@ -7,7 +7,7 @@ import android.support.annotation.Nullable; import com.mapswithme.maps.BuildConfig; import com.mapswithme.maps.PrivateVariables; -import com.mapswithme.util.LocationUtils; +import com.mapswithme.util.PermissionsUtils; import com.my.tracker.MyTracker; import com.my.tracker.MyTrackerParams; @@ -56,15 +56,12 @@ class MyTrackerEventLogger extends ContextDependentEventLogger MyTracker.createTracker(PrivateVariables.myTrackerKey(), getApplication()); final MyTrackerParams myParams = MyTracker.getTrackerParams(); if (myParams != null) - initParams(myParams); + { + myParams.setDefaultVendorAppPackage(); + boolean isLocationGranted = PermissionsUtils.isLocationGranted(getApplication()); + myParams.setTrackingLocationEnabled(isLocationGranted); + myParams.setTrackingEnvironmentEnabled(isLocationGranted); + } MyTracker.initTracker(); } - - private void initParams(@NonNull MyTrackerParams myParams) - { - myParams.setDefaultVendorAppPackage(); - boolean isProviderAvailable = LocationUtils.checkProvidersAvailability(getApplication()); - myParams.setTrackingLocationEnabled(isProviderAvailable); - myParams.setTrackingEnvironmentEnabled(isProviderAvailable); - } } diff --git a/android/src/com/mapswithme/util/PermissionsUtils.java b/android/src/com/mapswithme/util/PermissionsUtils.java index 18b1ea444b..476202e28a 100644 --- a/android/src/com/mapswithme/util/PermissionsUtils.java +++ b/android/src/com/mapswithme/util/PermissionsUtils.java @@ -48,9 +48,20 @@ public final class PermissionsUtils return getPermissionsResult(result); } + public static boolean isLocationGranted(@NonNull Context context) + { + return checkPermissions(context).isExternalStorageGranted(); + } + + /** + * + * Use {@link #isLocationGranted(Context)} instead. + */ + @SuppressWarnings("DeprecatedIsStillUsed") + @Deprecated public static boolean isLocationGranted() { - return checkPermissions().isLocationGranted(); + return checkPermissions(MwmApplication.get()).isLocationGranted(); } public static boolean isLocationExplanationNeeded(@NonNull Activity activity) @@ -61,19 +72,18 @@ public final class PermissionsUtils public static boolean isExternalStorageGranted() { - return checkPermissions().isExternalStorageGranted(); + return checkPermissions(MwmApplication.get()).isExternalStorageGranted(); } @NonNull - private static PermissionsResult checkPermissions() + private static PermissionsResult checkPermissions(@NonNull Context context) { - Context context = MwmApplication.get().getApplicationContext(); + Context appContext = context.getApplicationContext(); Map result = new HashMap<>(); for (String permission: PERMISSIONS) { - result.put(permission, - Build.VERSION.SDK_INT < Build.VERSION_CODES.M - || context.checkSelfPermission(permission) == PackageManager.PERMISSION_GRANTED); + result.put(permission, Build.VERSION.SDK_INT < Build.VERSION_CODES.M + || appContext.checkSelfPermission(permission) == PackageManager.PERMISSION_GRANTED); } return getPermissionsResult(result);