16
16
import android .util .Pair ;
17
17
import android .view .LayoutInflater ;
18
18
import android .view .View ;
19
- import android .webkit .URLUtil ;
20
19
import android .widget .EditText ;
21
20
22
21
import androidx .annotation .NonNull ;
37
36
import org .mozilla .vrbrowser .browser .SessionChangeListener ;
38
37
import org .mozilla .vrbrowser .browser .SettingsStore ;
39
38
import org .mozilla .vrbrowser .browser .engine .Session ;
40
- import org .mozilla .vrbrowser .browser .engine .SessionState ;
41
39
import org .mozilla .vrbrowser .browser .engine .SessionStore ;
42
40
import org .mozilla .vrbrowser .databinding .NavigationBarBinding ;
43
41
import org .mozilla .vrbrowser .db .SitePermission ;
@@ -918,7 +916,7 @@ public void onPopUpButtonClicked() {
918
916
919
917
@ Override
920
918
public void onWebXRButtonClicked () {
921
- showQuickPermission (mBinding .navigationBarNavigation .urlBar .getWebxRButton (),
919
+ toggleQuickPermission (mBinding .navigationBarNavigation .urlBar .getWebxRButton (),
922
920
SitePermission .SITE_PERMISSION_WEBXR ,
923
921
mViewModel .getIsWebXRBlocked ().getValue ().get ());
924
922
}
@@ -1151,6 +1149,9 @@ private void showNotification(int notificationId, @NotificationPosition int posi
1151
1149
1152
1150
public void hideAllNotifications () {
1153
1151
NotificationManager .hideAll ();
1152
+ if (mQuickPermissionWidget != null && mQuickPermissionWidget .isVisible ()) {
1153
+ mQuickPermissionWidget .hide (KEEP_WIDGET );
1154
+ }
1154
1155
}
1155
1156
1156
1157
private void hideNotification (int notificationId ) {
@@ -1163,26 +1164,29 @@ private void hideNotification(int notificationId) {
1163
1164
}
1164
1165
};
1165
1166
1166
- private void showQuickPermission (UIButton target , @ SitePermission .Category int aCategory , boolean aBlocked ) {
1167
+ private void toggleQuickPermission (UIButton target , @ SitePermission .Category int aCategory , boolean aBlocked ) {
1167
1168
if (mQuickPermissionWidget == null ) {
1168
1169
mQuickPermissionWidget = new QuickPermissionWidget (getContext ());
1169
1170
}
1170
1171
1172
+ if (mQuickPermissionWidget .isVisible () && mQuickPermissionWidget .getCategory () == aCategory ) {
1173
+ mQuickPermissionWidget .hide (KEEP_WIDGET );
1174
+ return ;
1175
+ }
1176
+
1171
1177
String uri = UrlUtils .getHost (mAttachedWindow .getSession ().getCurrentUri ());
1172
1178
mQuickPermissionWidget .setData (uri , aCategory , aBlocked );
1173
1179
mQuickPermissionWidget .setDelegate (new QuickPermissionWidget .Delegate () {
1174
1180
@ Override
1175
1181
public void onBlock () {
1176
1182
SessionStore .get ().setPermissionAllowed (uri , aCategory , false );
1177
1183
mQuickPermissionWidget .onDismiss ();
1178
- mAttachedWindow .getSession ().reload ();
1179
1184
}
1180
1185
1181
1186
@ Override
1182
1187
public void onAllow () {
1183
1188
SessionStore .get ().setPermissionAllowed (uri , aCategory , true );
1184
1189
mQuickPermissionWidget .onDismiss ();
1185
- mAttachedWindow .getSession ().reload ();
1186
1190
}
1187
1191
});
1188
1192
mQuickPermissionWidget .getPlacement ().parentHandle = getHandle ();
0 commit comments