forked from organicmaps/organicmaps
[android] Check location permission for MyTracker
This commit is contained in:
parent
3a808c199f
commit
74f9877432
4 changed files with 39 additions and 25 deletions
|
@ -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,
|
||||
|
|
|
@ -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<Void, Void, AdvertisingInfo>
|
||||
{
|
||||
@NonNull
|
||||
|
|
|
@ -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);
|
||||
}
|
||||
}
|
||||
|
|
|
@ -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<String, Boolean> 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);
|
||||
|
|
Loading…
Add table
Reference in a new issue