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

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: Remove some methods from LocationSettings. 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 23 matching lines...) Expand all
34 import android.view.View.OnClickListener; 34 import android.view.View.OnClickListener;
35 import android.view.ViewGroup; 35 import android.view.ViewGroup;
36 import android.view.Window; 36 import android.view.Window;
37 import android.widget.Button; 37 import android.widget.Button;
38 import android.widget.ImageView; 38 import android.widget.ImageView;
39 import android.widget.LinearLayout; 39 import android.widget.LinearLayout;
40 import android.widget.ScrollView; 40 import android.widget.ScrollView;
41 import android.widget.TextView; 41 import android.widget.TextView;
42 42
43 import org.chromium.base.ApiCompatibilityUtils; 43 import org.chromium.base.ApiCompatibilityUtils;
44 import org.chromium.base.LocationUtils;
44 import org.chromium.base.annotations.CalledByNative; 45 import org.chromium.base.annotations.CalledByNative;
45 import org.chromium.chrome.R; 46 import org.chromium.chrome.R;
46 import org.chromium.chrome.browser.ContentSettingsType; 47 import org.chromium.chrome.browser.ContentSettingsType;
47 import org.chromium.chrome.browser.offlinepages.OfflinePageBridge; 48 import org.chromium.chrome.browser.offlinepages.OfflinePageBridge;
48 import org.chromium.chrome.browser.offlinepages.OfflinePageBridge.SingleOfflineP ageItemCallback; 49 import org.chromium.chrome.browser.offlinepages.OfflinePageBridge.SingleOfflineP ageItemCallback;
49 import org.chromium.chrome.browser.offlinepages.OfflinePageItem; 50 import org.chromium.chrome.browser.offlinepages.OfflinePageItem;
50 import org.chromium.chrome.browser.offlinepages.OfflinePageUtils; 51 import org.chromium.chrome.browser.offlinepages.OfflinePageUtils;
51 import org.chromium.chrome.browser.omnibox.OmniboxUrlEmphasizer; 52 import org.chromium.chrome.browser.omnibox.OmniboxUrlEmphasizer;
52 import org.chromium.chrome.browser.preferences.PrefServiceBridge; 53 import org.chromium.chrome.browser.preferences.PrefServiceBridge;
53 import org.chromium.chrome.browser.preferences.Preferences; 54 import org.chromium.chrome.browser.preferences.Preferences;
(...skipping 504 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