[workstation] Change the key combination for issue report shortcut

- Changes the key combination for issue reporting shortcut to Ctrl + Alt
  + i as Ctrl + Shift + i conflicts with one of the chrome shortcuts.
- Now the user feedback overlay remembers the previous overlay
  visibility status before showing itself and set it back to the
  previous status when closed.
- Please note that there is currently a bug where only the right alt key
  works and the left alt key does nothing(fxb/100687). A fix is coming
  (fxr/679330)

Change-Id: I542a7283f32ff1013e6fd0a7592e4622f57b05e2
Reviewed-on: https://fuchsia-review.googlesource.com/c/experiences/+/679957
Reviewed-by: Charles Whitten <cwhitten@google.com>
Reviewed-by: Sanjay Chouksey <sanjayc@google.com>
Commit-Queue: Yeonhee Lee <yhlee@google.com>
diff --git a/session_shells/ermine/shell/config/keyboard_shortcuts.json b/session_shells/ermine/shell/config/keyboard_shortcuts.json
index 7a440cd..2d39897 100644
--- a/session_shells/ermine/shell/config/keyboard_shortcuts.json
+++ b/session_shells/ermine/shell/config/keyboard_shortcuts.json
@@ -205,8 +205,8 @@
     "reportAnIssue": [
         {
             "char": "i",
-            "chord": "Shift + Ctrl + i",
-            "modifier": "shift + control",
+            "chord": "Ctrl + Alt + i",
+            "modifier": "control + alt",
             "exclusive": false,
             "description": "Report an Issue",
             "localizedDescription": "reportAnIssueKeyboardShortcut"
diff --git a/session_shells/ermine/shell/lib/src/states/app_state_impl.dart b/session_shells/ermine/shell/lib/src/states/app_state_impl.dart
index fc5ce82..32f5ed9 100644
--- a/session_shells/ermine/shell/lib/src/states/app_state_impl.dart
+++ b/session_shells/ermine/shell/lib/src/states/app_state_impl.dart
@@ -437,6 +437,20 @@
   @override
   void launchFeedback() => launch(Strings.feedback, kFeedbackUrl);
 
+  /// A flag to remember the previous overlays visibility status before showing
+  /// "Report an Issue" screen to set the overlays status back as it were.
+  ///
+  /// Usecase 1: The user opens "Report an Issue" using the keyboard shortcut
+  /// while using a full-screen chromium app -> "Report an Issue"(overlay) comes
+  /// up on the top -> The user closes user feedback -> The full-screen chromium
+  /// comes back to the top.
+  ///
+  /// Usecase 2: The user opens overlays(sidebar, app bar) while using a full-
+  /// screen chromium app -> The user clicks "Report an Issue" on Quick Settings
+  /// -> The user closes "Report an Issue" -> The app bar and side bar still
+  /// remain on top of the chromium view.
+  bool _wasOverlayVisible = true;
+
   @override
   void showUserFeedback() async {
     if (!settingsState.dataSharingConsentEnabled) {
@@ -451,7 +465,9 @@
 
     runInAction(() {
       // TODO(fxb/97464): Take a screenshot here when the bug is fixed.
+      _wasOverlayVisible = overlaysVisible;
       userFeedbackVisibility.value = true;
+      showOverlay();
 
       if (preferencesService.showUserFeedbackStartUpDialog.value) {
         _feedbackPage.value = FeedbackPage.scrim;
@@ -485,6 +501,9 @@
   void closeUserFeedback() {
     runInAction(() {
       userFeedbackVisibility.value = false;
+      if (!_wasOverlayVisible) {
+        hideOverlay();
+      }
       _feedbackPage.value = FeedbackPage.preparing;
       _feedbackUuid.value = '';
     });