| 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 |