OLD | NEW |
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 Loading... |
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 Loading... |
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 Loading... |
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 Loading... |
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 } |
OLD | NEW |