| OLD | NEW |
| 1 // Copyright 2015 The Chromium Authors. All rights reserved. | 1 // Copyright 2015 The Chromium Authors. All rights reserved. |
| 2 // Use of this source code is governed by a BSD-style license that can be | 2 // Use of this source code is governed by a BSD-style license that can be |
| 3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
| 4 | 4 |
| 5 package org.chromium.chrome.browser.preferences.website; | 5 package org.chromium.chrome.browser.preferences.website; |
| 6 | 6 |
| 7 import android.app.Activity; | 7 import android.app.Activity; |
| 8 import android.content.Context; | 8 import android.content.Context; |
| 9 import android.content.Intent; | 9 import android.content.Intent; |
| 10 import android.content.res.Resources; | 10 import android.content.res.Resources; |
| 11 | 11 |
| 12 import org.chromium.base.ContextUtils; | |
| 13 import org.chromium.chrome.R; | 12 import org.chromium.chrome.R; |
| 14 import org.chromium.chrome.browser.ContentSettingsType; | 13 import org.chromium.chrome.browser.ContentSettingsType; |
| 15 import org.chromium.chrome.browser.preferences.LocationSettings; | 14 import org.chromium.chrome.browser.preferences.LocationSettings; |
| 16 import org.chromium.chrome.browser.preferences.PrefServiceBridge; | 15 import org.chromium.chrome.browser.preferences.PrefServiceBridge; |
| 17 import org.chromium.components.location.LocationUtils; | |
| 18 | 16 |
| 19 /** | 17 /** |
| 20 * A class for dealing with the Geolocation category. | 18 * A class for dealing with the Geolocation category. |
| 21 */ | 19 */ |
| 22 public class LocationCategory extends SiteSettingsCategory { | 20 public class LocationCategory extends SiteSettingsCategory { |
| 23 public LocationCategory() { | 21 public LocationCategory() { |
| 24 super(SiteSettingsCategory.CATEGORY_DEVICE_LOCATION, | 22 super(SiteSettingsCategory.CATEGORY_DEVICE_LOCATION, |
| 25 android.Manifest.permission.ACCESS_COARSE_LOCATION, | 23 android.Manifest.permission.ACCESS_COARSE_LOCATION, |
| 26 ContentSettingsType.CONTENT_SETTINGS_TYPE_GEOLOCATION); | 24 ContentSettingsType.CONTENT_SETTINGS_TYPE_GEOLOCATION); |
| 27 } | 25 } |
| 28 | 26 |
| 29 @Override | 27 @Override |
| 30 protected boolean enabledGlobally() { | 28 protected boolean enabledGlobally() { |
| 31 return LocationUtils.getInstance().isSystemLocationSettingEnabled( | 29 return LocationSettings.getInstance().isSystemLocationSettingEnabled(); |
| 32 ContextUtils.getApplicationContext()); | |
| 33 } | 30 } |
| 34 | 31 |
| 35 @Override | 32 @Override |
| 36 public boolean showPermissionBlockedMessage(Context context) { | 33 public boolean showPermissionBlockedMessage(Context context) { |
| 37 if (enabledForChrome(context) && enabledGlobally()) { | 34 if (enabledForChrome(context) && enabledGlobally()) { |
| 38 return false; | 35 return false; |
| 39 } | 36 } |
| 40 | 37 |
| 41 // The only time we don't want to show location as blocked in system is
when Chrome also | 38 // The only time we don't want to show location as blocked in system is
when Chrome also |
| 42 // blocks Location by policy (because then turning it on in the system i
sn't going to | 39 // blocks Location by policy (because then turning it on in the system i
sn't going to |
| 43 // turn on location in Chrome). | 40 // turn on location in Chrome). |
| 44 PrefServiceBridge prefs = PrefServiceBridge.getInstance(); | 41 PrefServiceBridge prefs = PrefServiceBridge.getInstance(); |
| 45 if (!LocationSettings.getInstance().isChromeLocationSettingEnabled() | 42 if (!LocationSettings.getInstance().isChromeLocationSettingEnabled() |
| 46 && !prefs.isAllowLocationUserModifiable()) { | 43 && !prefs.isAllowLocationUserModifiable()) { |
| 47 return false; | 44 return false; |
| 48 } | 45 } |
| 49 | 46 |
| 50 return true; | 47 return true; |
| 51 } | 48 } |
| 52 | 49 |
| 53 @Override | 50 @Override |
| 54 protected Intent getIntentToEnableOsGlobalPermission(Context context) { | 51 protected Intent getIntentToEnableOsGlobalPermission(Context context) { |
| 55 if (enabledGlobally()) return null; | 52 if (enabledGlobally()) return null; |
| 56 return LocationUtils.getInstance().getSystemLocationSettingsIntent(); | 53 return LocationSettings.getInstance().getSystemLocationSettingsIntent(); |
| 57 } | 54 } |
| 58 | 55 |
| 59 @Override | 56 @Override |
| 60 protected String getMessageForEnablingOsGlobalPermission(Activity activity)
{ | 57 protected String getMessageForEnablingOsGlobalPermission(Activity activity)
{ |
| 61 Resources resources = activity.getResources(); | 58 Resources resources = activity.getResources(); |
| 62 if (enabledForChrome(activity)) { | 59 if (enabledForChrome(activity)) { |
| 63 return resources.getString(R.string.android_location_off_globally); | 60 return resources.getString(R.string.android_location_off_globally); |
| 64 } | 61 } |
| 65 return resources.getString(R.string.android_location_also_off_globally); | 62 return resources.getString(R.string.android_location_also_off_globally); |
| 66 } | 63 } |
| 67 } | 64 } |
| OLD | NEW |