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

Side by Side Diff: chrome/android/java/src/org/chromium/chrome/browser/infobar/GroupedPermissionInfoBar.java

Issue 2277733002: Revert of Enable the optional permission prompt persistence toggle on grouped infobars (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@permission-infobardelegate-clean
Patch Set: Created 4 years, 4 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 2016 The Chromium Authors. All rights reserved. 1 // Copyright 2016 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.infobar; 5 package org.chromium.chrome.browser.infobar;
6 6
7 import android.support.v7.widget.SwitchCompat; 7 import android.support.v7.widget.SwitchCompat;
8 8
9 import org.chromium.base.annotations.CalledByNative; 9 import org.chromium.base.annotations.CalledByNative;
10 import org.chromium.chrome.R; 10 import org.chromium.chrome.R;
11 import org.chromium.chrome.browser.ResourceId; 11 import org.chromium.chrome.browser.ResourceId;
12 import org.chromium.ui.base.WindowAndroid; 12 import org.chromium.ui.base.WindowAndroid;
13 13
14 import java.util.ArrayList; 14 import java.util.ArrayList;
15 15
16 /** 16 /**
17 * An infobar for showing several permission requests which can be allowed or bl ocked. 17 * An infobar for showing several permission requests which can be allowed or bl ocked.
18 */ 18 */
19 public class GroupedPermissionInfoBar extends PermissionInfoBar { 19 public class GroupedPermissionInfoBar extends PermissionInfoBar {
20 private final int[] mPermissionIcons; 20 private final int[] mPermissionIcons;
21 private final String[] mPermissionText; 21 private final String[] mPermissionText;
22 private final int[] mContentSettings; 22 private final int[] mContentSettings;
23 private final WindowAndroid mWindowAndroid; 23 private final WindowAndroid mWindowAndroid;
24 private long mNativeGroupedPermissionInfoBar; 24 private long mNativeGroupedPermissionInfoBar;
25 25
26 GroupedPermissionInfoBar(String message, String buttonOk, String buttonCance l, 26 GroupedPermissionInfoBar(String message, String buttonOk, String buttonCance l,
27 int[] permissionIcons, String[] permissionText, WindowAndroid window Android, 27 int[] permissionIcons, String[] permissionText, WindowAndroid window Android,
28 int[] contentSettings, boolean showPersistenceToggle) { 28 int[] contentSettings) {
29 super(0, null, message, null, buttonOk, buttonCancel, showPersistenceTog gle); 29 super(0, null, message, null, buttonOk, buttonCancel);
30 mPermissionIcons = permissionIcons; 30 mPermissionIcons = permissionIcons;
31 mPermissionText = permissionText; 31 mPermissionText = permissionText;
32 mWindowAndroid = windowAndroid; 32 mWindowAndroid = windowAndroid;
33 mContentSettings = contentSettings; 33 mContentSettings = contentSettings;
34 } 34 }
35 35
36 @Override 36 @Override
37 public void createContent(InfoBarLayout layout) { 37 public void createContent(InfoBarLayout layout) {
38 super.createContent(layout);
38 InfoBarControlLayout control = layout.addControlLayout(); 39 InfoBarControlLayout control = layout.addControlLayout();
39 40
40 if (mPermissionIcons.length == 1) { 41 if (mPermissionIcons.length == 1) {
41 control.addIcon(ResourceId.mapToDrawableId(mPermissionIcons[0]), 42 control.addIcon(ResourceId.mapToDrawableId(mPermissionIcons[0]),
42 R.color.light_normal_color, mPermissionText[0], null); 43 R.color.light_normal_color, mPermissionText[0], null);
43 } else { 44 } else {
44 for (int i = 0; i < mPermissionIcons.length; i++) { 45 for (int i = 0; i < mPermissionIcons.length; i++) {
45 control.addSwitch(ResourceId.mapToDrawableId(mPermissionIcons[i] ), 46 control.addSwitch(ResourceId.mapToDrawableId(mPermissionIcons[i] ),
46 R.color.light_normal_color, mPermissionText[i], i, true) ; 47 R.color.light_normal_color, mPermissionText[i], i, true) ;
47 } 48 }
48 } 49 }
49
50 // Call this last to ensure that if a persistence toggle is added, it's added last.
51 super.createContent(layout);
52 } 50 }
53 51
54 @Override 52 @Override
55 public void onButtonClicked(final boolean isPrimaryButton) { 53 public void onButtonClicked(final boolean isPrimaryButton) {
56 if (isPrimaryButton) { 54 if (isPrimaryButton) {
57 boolean[] toggleStatus = new boolean[mPermissionIcons.length]; 55 boolean[] toggleStatus = new boolean[mPermissionIcons.length];
58 56
59 if (mPermissionIcons.length == 1) { 57 if (mPermissionIcons.length == 1) {
60 toggleStatus[0] = true; 58 toggleStatus[0] = true;
61 } else { 59 } else {
(...skipping 16 matching lines...) Expand all
78 } 76 }
79 77
80 if (mNativeGroupedPermissionInfoBar != 0) { 78 if (mNativeGroupedPermissionInfoBar != 0) {
81 nativeSetPermissionState(mNativeGroupedPermissionInfoBar, toggle Status); 79 nativeSetPermissionState(mNativeGroupedPermissionInfoBar, toggle Status);
82 setContentSettings(mWindowAndroid, selectedArray); 80 setContentSettings(mWindowAndroid, selectedArray);
83 } 81 }
84 } 82 }
85 super.onButtonClicked(isPrimaryButton); 83 super.onButtonClicked(isPrimaryButton);
86 } 84 }
87 85
88 @CalledByNative
89 protected boolean isPersistSwitchOn() {
90 return super.isPersistSwitchOn();
91 }
92
93 /** 86 /**
94 * Create an infobar for a given set of permission requests. 87 * Create an infobar for a given set of permission requests.
95 * 88 *
96 * @param message Message to display at the top of the infobar. 89 * @param message Message to display at the top of the infobar.
97 * @param buttonOk String to display on the 'Allow' button. 90 * @param buttonOk String to display on the 'Allow' button.
98 * @param buttonCancel String to display on the 'Block' button. 91 * @param buttonCancel String to display on the 'Block' button.
99 * @param permissionIcons Enumerated ID (from ResourceMapper) of an icon to display next to each 92 * @param permissionIcons Enumerated ID (from ResourceMapper) of an icon to display next to each
100 * permission. 93 * permission.
101 * @param permissionText String to display for each permission request. 94 * @param permissionText String to display for each permission request.
102 * @param windowAndroid The window which owns the infobar. 95 * @param windowAndroid The window which owns the infobar.
103 * @param contentSettings The list of ContentSettingsTypes requested by the infobar. 96 * @param contentSettings The list of ContentSettingsTypes requested by the infobar.
104 * @param showPersistenceToggle Whether or not a toggle to opt-out of persis ting a decision
105 * should be displayed.
106 */ 97 */
107 @CalledByNative 98 @CalledByNative
108 private static InfoBar create(String message, String buttonOk, String button Cancel, 99 private static InfoBar create(String message, String buttonOk, String button Cancel,
109 int[] permissionIcons, String[] permissionText, WindowAndroid window Android, 100 int[] permissionIcons, String[] permissionText, WindowAndroid window Android,
110 int[] contentSettings, boolean showPersistenceToggle) { 101 int[] contentSettings) {
111 GroupedPermissionInfoBar infobar = 102 GroupedPermissionInfoBar infobar = new GroupedPermissionInfoBar(message, buttonOk,
112 new GroupedPermissionInfoBar(message, buttonOk, buttonCancel, pe rmissionIcons, 103 buttonCancel, permissionIcons, permissionText, windowAndroid, co ntentSettings);
113 permissionText, windowAndroid, contentSettings, showPers istenceToggle);
114 return infobar; 104 return infobar;
115 } 105 }
116 106
117 @CalledByNative 107 @CalledByNative
118 private void setNativePtr(long nativePtr) { 108 private void setNativePtr(long nativePtr) {
119 mNativeGroupedPermissionInfoBar = nativePtr; 109 mNativeGroupedPermissionInfoBar = nativePtr;
120 } 110 }
121 111
122 @Override 112 @Override
123 protected void onNativeDestroyed() { 113 protected void onNativeDestroyed() {
124 mNativeGroupedPermissionInfoBar = 0; 114 mNativeGroupedPermissionInfoBar = 0;
125 super.onNativeDestroyed(); 115 super.onNativeDestroyed();
126 } 116 }
127 117
128 private native void nativeSetPermissionState( 118 private native void nativeSetPermissionState(
129 long nativeGroupedPermissionInfoBar, boolean[] permissions); 119 long nativeGroupedPermissionInfoBar, boolean[] permissions);
130 } 120 }
OLDNEW
« no previous file with comments | « chrome/android/BUILD.gn ('k') | chrome/android/java/src/org/chromium/chrome/browser/infobar/PermissionInfoBar.java » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698