| Index: chrome/android/java/src/org/chromium/chrome/browser/preferences/website/SingleWebsitePreferences.java
|
| diff --git a/chrome/android/java/src/org/chromium/chrome/browser/preferences/website/SingleWebsitePreferences.java b/chrome/android/java/src/org/chromium/chrome/browser/preferences/website/SingleWebsitePreferences.java
|
| index e21bd4f682afa14e2b12cbd8afa20da36d34a2c1..b25dc322781d40ae0c70c382f2a5e358450efcc8 100644
|
| --- a/chrome/android/java/src/org/chromium/chrome/browser/preferences/website/SingleWebsitePreferences.java
|
| +++ b/chrome/android/java/src/org/chromium/chrome/browser/preferences/website/SingleWebsitePreferences.java
|
| @@ -62,8 +62,8 @@ public class SingleWebsitePreferences extends PreferenceFragment
|
| "protected_media_identifier_permission_list";
|
| public static final String PREF_PUSH_NOTIFICATIONS_PERMISSION =
|
| "push_notifications_list";
|
| - public static final String PREF_VOICE_AND_VIDEO_CAPTURE_PERMISSION =
|
| - "voice_and_video_capture_permission_list";
|
| + public static final String PREF_VIDEO_CAPTURE_PERMISSION = "video_capture_permission_list";
|
| + public static final String PREF_VOICE_CAPTURE_PERMISSION = "voice_capture_permission_list";
|
|
|
| // All permissions from the permissions preference category must be listed here.
|
| // TODO(mvanouwerkerk): Use this array in more places to reduce verbosity.
|
| @@ -76,7 +76,8 @@ public class SingleWebsitePreferences extends PreferenceFragment
|
| PREF_POPUP_PERMISSION,
|
| PREF_PROTECTED_MEDIA_IDENTIFIER_PERMISSION,
|
| PREF_PUSH_NOTIFICATIONS_PERMISSION,
|
| - PREF_VOICE_AND_VIDEO_CAPTURE_PERMISSION
|
| + PREF_VIDEO_CAPTURE_PERMISSION,
|
| + PREF_VOICE_CAPTURE_PERMISSION,
|
| };
|
|
|
| // The website this page is displaying details about.
|
| @@ -273,8 +274,10 @@ public class SingleWebsitePreferences extends PreferenceFragment
|
| setUpListPreference(preference, mSite.getProtectedMediaIdentifierPermission());
|
| } else if (PREF_PUSH_NOTIFICATIONS_PERMISSION.equals(preference.getKey())) {
|
| setUpListPreference(preference, mSite.getPushNotificationPermission());
|
| - } else if (PREF_VOICE_AND_VIDEO_CAPTURE_PERMISSION.equals(preference.getKey())) {
|
| - configureVoiceAndVideoPreference(preference);
|
| + } else if (PREF_VIDEO_CAPTURE_PERMISSION.equals(preference.getKey())) {
|
| + setUpListPreference(preference, mSite.getVideoCapturePermission());
|
| + } else if (PREF_VOICE_CAPTURE_PERMISSION.equals(preference.getKey())) {
|
| + setUpListPreference(preference, mSite.getVoiceCapturePermission());
|
| }
|
| }
|
|
|
| @@ -358,53 +361,15 @@ public class SingleWebsitePreferences extends PreferenceFragment
|
| return ContentSettingsType.CONTENT_SETTINGS_TYPE_PROTECTED_MEDIA_IDENTIFIER;
|
| case PREF_PUSH_NOTIFICATIONS_PERMISSION:
|
| return ContentSettingsType.CONTENT_SETTINGS_TYPE_NOTIFICATIONS;
|
| - case PREF_VOICE_AND_VIDEO_CAPTURE_PERMISSION:
|
| - return ContentSettingsType.CONTENT_SETTINGS_TYPE_MEDIASTREAM;
|
| + case PREF_VIDEO_CAPTURE_PERMISSION:
|
| + return ContentSettingsType.CONTENT_SETTINGS_TYPE_MEDIASTREAM_CAMERA;
|
| + case PREF_VOICE_CAPTURE_PERMISSION:
|
| + return ContentSettingsType.CONTENT_SETTINGS_TYPE_MEDIASTREAM_MIC;
|
| default:
|
| return 0;
|
| }
|
| }
|
|
|
| - /**
|
| - * Based on the type of media allowed or denied for this website, the title and summary
|
| - * of the CheckBoxPreference will change. If this website has no media related permission, then
|
| - * the preference will be removed.
|
| - * @param preference CheckboxPreference whose title and summary will be set.
|
| - */
|
| - private void configureVoiceAndVideoPreference(Preference preference) {
|
| - ContentSetting voice = mSite.getVoiceCapturePermission();
|
| - ContentSetting video = mSite.getVideoCapturePermission();
|
| - if (voice == null && video == null) {
|
| - getPreferenceScreen().removePreference(preference);
|
| - return;
|
| - }
|
| -
|
| - int mediaAccessType = mSite.getMediaAccessType();
|
| - switch (mediaAccessType) {
|
| - case Website.CAMERA_ACCESS_ALLOWED:
|
| - case Website.CAMERA_ACCESS_DENIED:
|
| - preference.setTitle(R.string.video_permission_title);
|
| - break;
|
| - case Website.MICROPHONE_ACCESS_ALLOWED:
|
| - case Website.MICROPHONE_ACCESS_DENIED:
|
| - preference.setTitle(R.string.voice_permission_title);
|
| - break;
|
| - case Website.MICROPHONE_AND_CAMERA_ACCESS_ALLOWED:
|
| - case Website.MICROPHONE_AND_CAMERA_ACCESS_DENIED:
|
| - preference.setTitle(R.string.voice_and_video_permission_title);
|
| - break;
|
| - case Website.INVALID_CAMERA_OR_MICROPHONE_ACCESS:
|
| - default:
|
| - getPreferenceScreen().removePreference(preference);
|
| - }
|
| - setUpListPreference(
|
| - preference, mediaAccessType == Website.CAMERA_ACCESS_ALLOWED
|
| - || mediaAccessType == Website.MICROPHONE_ACCESS_ALLOWED
|
| - || mediaAccessType == Website.MICROPHONE_AND_CAMERA_ACCESS_ALLOWED
|
| - ? ContentSetting.ALLOW :
|
| - ContentSetting.BLOCK);
|
| - }
|
| -
|
| @Override
|
| public void onClick(DialogInterface dialog, int which) {
|
| clearStoredData();
|
| @@ -433,41 +398,6 @@ public class SingleWebsitePreferences extends PreferenceFragment
|
| }
|
| }
|
|
|
| - private void setVoiceAndVideoCaptureSetting(ContentSetting value) {
|
| - int mediaAccessType = mSite.getMediaAccessType();
|
| - if (value == ContentSetting.ALLOW) {
|
| - switch (mediaAccessType) {
|
| - case Website.CAMERA_ACCESS_DENIED:
|
| - mSite.setVideoCapturePermission(ContentSetting.ALLOW);
|
| - break;
|
| - case Website.MICROPHONE_ACCESS_DENIED:
|
| - mSite.setVoiceCapturePermission(ContentSetting.ALLOW);
|
| - break;
|
| - case Website.MICROPHONE_AND_CAMERA_ACCESS_DENIED:
|
| - mSite.setVideoCapturePermission(ContentSetting.ALLOW);
|
| - mSite.setVoiceCapturePermission(ContentSetting.ALLOW);
|
| - break;
|
| - default:
|
| - assert false;
|
| - }
|
| - } else {
|
| - switch (mediaAccessType) {
|
| - case Website.CAMERA_ACCESS_ALLOWED:
|
| - mSite.setVideoCapturePermission(ContentSetting.BLOCK);
|
| - break;
|
| - case Website.MICROPHONE_ACCESS_ALLOWED:
|
| - mSite.setVoiceCapturePermission(ContentSetting.BLOCK);
|
| - break;
|
| - case Website.MICROPHONE_AND_CAMERA_ACCESS_ALLOWED:
|
| - mSite.setVideoCapturePermission(ContentSetting.BLOCK);
|
| - mSite.setVoiceCapturePermission(ContentSetting.BLOCK);
|
| - break;
|
| - default:
|
| - assert false;
|
| - }
|
| - }
|
| - }
|
| -
|
| @Override
|
| public boolean onPreferenceChange(Preference preference, Object newValue) {
|
| ContentSetting permission =
|
| @@ -488,8 +418,10 @@ public class SingleWebsitePreferences extends PreferenceFragment
|
| mSite.setProtectedMediaIdentifierPermission(permission);
|
| } else if (PREF_PUSH_NOTIFICATIONS_PERMISSION.equals(preference.getKey())) {
|
| mSite.setPushNotificationPermission(permission);
|
| - } else if (PREF_VOICE_AND_VIDEO_CAPTURE_PERMISSION.equals(preference.getKey())) {
|
| - setVoiceAndVideoCaptureSetting(permission);
|
| + } else if (PREF_VIDEO_CAPTURE_PERMISSION.equals(preference.getKey())) {
|
| + mSite.setVideoCapturePermission(permission);
|
| + } else if (PREF_VOICE_CAPTURE_PERMISSION.equals(preference.getKey())) {
|
| + mSite.setVoiceCapturePermission(permission);
|
| } else {
|
| return true;
|
| }
|
|
|