Merge "Stop spamming logcat with location permission denials" into mnc-dev
diff --git a/v7/appcompat/src/android/support/v7/app/TwilightManager.java b/v7/appcompat/src/android/support/v7/app/TwilightManager.java
index 5872330..b17d578 100644
--- a/v7/appcompat/src/android/support/v7/app/TwilightManager.java
+++ b/v7/appcompat/src/android/support/v7/app/TwilightManager.java
@@ -16,10 +16,12 @@
package android.support.v7.app;
+import android.Manifest;
import android.content.Context;
import android.location.Location;
import android.location.LocationManager;
import android.support.annotation.NonNull;
+import android.support.v4.content.PermissionChecker;
import android.text.format.DateUtils;
import android.util.Log;
@@ -77,8 +79,20 @@
}
private Location getLastKnownLocation() {
- Location coarseLocation = getLastKnownLocationForProvider(LocationManager.NETWORK_PROVIDER);
- Location fineLocation = getLastKnownLocationForProvider(LocationManager.GPS_PROVIDER);
+ Location coarseLocation = null;
+ Location fineLocation = null;
+
+ int permission = PermissionChecker.checkSelfPermission(mContext,
+ Manifest.permission.ACCESS_FINE_LOCATION);
+ if (permission == PermissionChecker.PERMISSION_GRANTED) {
+ coarseLocation = getLastKnownLocationForProvider(LocationManager.NETWORK_PROVIDER);
+ }
+
+ permission = PermissionChecker.checkSelfPermission(mContext,
+ Manifest.permission.ACCESS_COARSE_LOCATION);
+ if (permission == PermissionChecker.PERMISSION_GRANTED) {
+ fineLocation = getLastKnownLocationForProvider(LocationManager.GPS_PROVIDER);
+ }
if (coarseLocation != null && fineLocation != null) {
// If we have both a fine and coarse location, use the latest