Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(338)

Side by Side Diff: chrome/android/java/src/org/chromium/chrome/browser/pageinfo/WebsiteSettingsPopup.java

Issue 2038753004: Add a LocationUtils class to give all Chromium Android code access to location helpers. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@lkcr
Patch Set: Adjust DEPS. Created 4 years, 6 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
OLDNEW
1 // Copyright 2013 The Chromium Authors. All rights reserved. 1 // Copyright 2013 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.pageinfo; 5 package org.chromium.chrome.browser.pageinfo;
6 6
7 import android.animation.Animator; 7 import android.animation.Animator;
8 import android.animation.AnimatorListenerAdapter; 8 import android.animation.AnimatorListenerAdapter;
9 import android.animation.AnimatorSet; 9 import android.animation.AnimatorSet;
10 import android.animation.ObjectAnimator; 10 import android.animation.ObjectAnimator;
(...skipping 41 matching lines...) Expand 10 before | Expand all | Expand 10 after
52 import org.chromium.chrome.browser.preferences.PrefServiceBridge; 52 import org.chromium.chrome.browser.preferences.PrefServiceBridge;
53 import org.chromium.chrome.browser.preferences.Preferences; 53 import org.chromium.chrome.browser.preferences.Preferences;
54 import org.chromium.chrome.browser.preferences.PreferencesLauncher; 54 import org.chromium.chrome.browser.preferences.PreferencesLauncher;
55 import org.chromium.chrome.browser.preferences.website.ContentSetting; 55 import org.chromium.chrome.browser.preferences.website.ContentSetting;
56 import org.chromium.chrome.browser.preferences.website.ContentSettingsResources; 56 import org.chromium.chrome.browser.preferences.website.ContentSettingsResources;
57 import org.chromium.chrome.browser.preferences.website.SingleWebsitePreferences; 57 import org.chromium.chrome.browser.preferences.website.SingleWebsitePreferences;
58 import org.chromium.chrome.browser.profiles.Profile; 58 import org.chromium.chrome.browser.profiles.Profile;
59 import org.chromium.chrome.browser.ssl.SecurityStateModel; 59 import org.chromium.chrome.browser.ssl.SecurityStateModel;
60 import org.chromium.chrome.browser.tab.Tab; 60 import org.chromium.chrome.browser.tab.Tab;
61 import org.chromium.chrome.browser.util.UrlUtilities; 61 import org.chromium.chrome.browser.util.UrlUtilities;
62 import org.chromium.components.location.LocationUtils;
62 import org.chromium.components.security_state.ConnectionSecurityLevel; 63 import org.chromium.components.security_state.ConnectionSecurityLevel;
63 import org.chromium.content.browser.ContentViewCore; 64 import org.chromium.content.browser.ContentViewCore;
64 import org.chromium.content_public.browser.WebContents; 65 import org.chromium.content_public.browser.WebContents;
65 import org.chromium.content_public.browser.WebContentsObserver; 66 import org.chromium.content_public.browser.WebContentsObserver;
66 import org.chromium.ui.base.DeviceFormFactor; 67 import org.chromium.ui.base.DeviceFormFactor;
67 import org.chromium.ui.base.WindowAndroid; 68 import org.chromium.ui.base.WindowAndroid;
68 import org.chromium.ui.base.WindowAndroid.PermissionCallback; 69 import org.chromium.ui.base.WindowAndroid.PermissionCallback;
69 import org.chromium.ui.interpolators.BakedBezierInterpolator; 70 import org.chromium.ui.interpolators.BakedBezierInterpolator;
70 71
71 import java.net.URI; 72 import java.net.URI;
(...skipping 486 matching lines...) Expand 10 before | Expand all | Expand 10 after
558 } 559 }
559 560
560 private boolean hasAndroidPermission(int contentSettingType) { 561 private boolean hasAndroidPermission(int contentSettingType) {
561 String androidPermission = PrefServiceBridge.getAndroidPermissionForCont entSetting( 562 String androidPermission = PrefServiceBridge.getAndroidPermissionForCont entSetting(
562 contentSettingType); 563 contentSettingType);
563 return androidPermission == null 564 return androidPermission == null
564 || (mContext.checkPermission(androidPermission, Process.myPid(), Process.myUid()) 565 || (mContext.checkPermission(androidPermission, Process.myPid(), Process.myUid())
565 == PackageManager.PERMISSION_GRANTED); 566 == PackageManager.PERMISSION_GRANTED);
566 } 567 }
567 568
568 private boolean isAndroidLocationDisabled() {
569 try {
570 return Settings.Secure.getInt(mContext.getContentResolver(),
571 Settings.Secure.LOCATION_MODE) == Settings.Secure.LOCATION_M ODE_OFF;
572 } catch (Settings.SettingNotFoundException e) {
573 return false;
574 }
575 }
576
577 /** 569 /**
578 * Adds a new row for the given permission. 570 * Adds a new row for the given permission.
579 * 571 *
580 * @param name The title of the permission to display to the user. 572 * @param name The title of the permission to display to the user.
581 * @param type The ContentSettingsType of the permission. 573 * @param type The ContentSettingsType of the permission.
582 * @param currentSettingValue The ContentSetting value of the currently sele cted setting. 574 * @param currentSettingValue The ContentSetting value of the currently sele cted setting.
583 */ 575 */
584 @CalledByNative 576 @CalledByNative
585 private void addPermissionSection(String name, int type, int currentSettingV alue) { 577 private void addPermissionSection(String name, int type, int currentSettingV alue) {
586 // We have at least one permission, so show the lower permissions area. 578 // We have at least one permission, so show the lower permissions area.
(...skipping 19 matching lines...) Expand all
606 598
607 ImageView permissionIcon = (ImageView) permissionRow.findViewById( 599 ImageView permissionIcon = (ImageView) permissionRow.findViewById(
608 R.id.website_settings_permission_icon); 600 R.id.website_settings_permission_icon);
609 permissionIcon.setImageResource(getImageResourceForPermission(permission .type)); 601 permissionIcon.setImageResource(getImageResourceForPermission(permission .type));
610 602
611 if (permission.setting == ContentSetting.ALLOW) { 603 if (permission.setting == ContentSetting.ALLOW) {
612 int warningTextResource = 0; 604 int warningTextResource = 0;
613 605
614 // If warningTextResource is non-zero, then the view must be tagged with either 606 // If warningTextResource is non-zero, then the view must be tagged with either
615 // permission_intent_override or permission_type. 607 // permission_intent_override or permission_type.
608 LocationUtils locationUtils = LocationUtils.getInstance();
616 if (permission.type == ContentSettingsType.CONTENT_SETTINGS_TYPE_GEO LOCATION 609 if (permission.type == ContentSettingsType.CONTENT_SETTINGS_TYPE_GEO LOCATION
617 && isAndroidLocationDisabled()) { 610 && !locationUtils.isSystemLocationSettingEnabled(mContext)) {
618 warningTextResource = R.string.page_info_android_location_blocke d; 611 warningTextResource = R.string.page_info_android_location_blocke d;
619 permissionRow.setTag(R.id.permission_intent_override, 612 permissionRow.setTag(R.id.permission_intent_override,
620 new Intent(Settings.ACTION_LOCATION_SOURCE_SETTINGS)); 613 locationUtils.getSystemLocationSettingsIntent());
621 } else if (!hasAndroidPermission(permission.type)) { 614 } else if (!hasAndroidPermission(permission.type)) {
622 warningTextResource = R.string.page_info_android_permission_bloc ked; 615 warningTextResource = R.string.page_info_android_permission_bloc ked;
623 permissionRow.setTag(R.id.permission_type, 616 permissionRow.setTag(R.id.permission_type,
624 PrefServiceBridge.getAndroidPermissionForContentSetting( permission.type)); 617 PrefServiceBridge.getAndroidPermissionForContentSetting( permission.type));
625 } 618 }
626 619
627 if (warningTextResource != 0) { 620 if (warningTextResource != 0) {
628 TextView permissionUnavailable = (TextView) permissionRow.findVi ewById( 621 TextView permissionUnavailable = (TextView) permissionRow.findVi ewById(
629 R.id.website_settings_permission_unavailable_message); 622 R.id.website_settings_permission_unavailable_message);
630 permissionUnavailable.setVisibility(View.VISIBLE); 623 permissionUnavailable.setVisibility(View.VISIBLE);
(...skipping 301 matching lines...) Expand 10 before | Expand all | Expand 10 after
932 offlinePageBridge.getPageByOfflineUrl(tab.getWebContents().getVisibleUrl (), callback); 925 offlinePageBridge.getPageByOfflineUrl(tab.getWebContents().getVisibleUrl (), callback);
933 } 926 }
934 927
935 private static native long nativeInit(WebsiteSettingsPopup popup, WebContent s webContents); 928 private static native long nativeInit(WebsiteSettingsPopup popup, WebContent s webContents);
936 929
937 private native void nativeDestroy(long nativeWebsiteSettingsPopupAndroid); 930 private native void nativeDestroy(long nativeWebsiteSettingsPopupAndroid);
938 931
939 private native void nativeRecordWebsiteSettingsAction( 932 private native void nativeRecordWebsiteSettingsAction(
940 long nativeWebsiteSettingsPopupAndroid, int action); 933 long nativeWebsiteSettingsPopupAndroid, int action);
941 } 934 }
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698