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