Remove all usages of this.fire() (Polymer Legacy)

Change-Id: Ib5915ddd435c9347d9e5beeb55cdefa6af8c144a
diff --git a/polygerrit-ui/app/elements/change/gr-reply-dialog/gr-reply-dialog.ts b/polygerrit-ui/app/elements/change/gr-reply-dialog/gr-reply-dialog.ts
index 61c7a25..d11ad48 100644
--- a/polygerrit-ui/app/elements/change/gr-reply-dialog/gr-reply-dialog.ts
+++ b/polygerrit-ui/app/elements/change/gr-reply-dialog/gr-reply-dialog.ts
@@ -107,7 +107,12 @@
   getMaxAccounts,
 } from '../../../utils/label-util';
 import {pluralize} from '../../../utils/string-util';
-import {fireAlert, fireEvent, fireServerError} from '../../../utils/event-util';
+import {
+  fireAlert,
+  fireEvent,
+  fireIronAnnounce,
+  fireServerError,
+} from '../../../utils/event-util';
 import {ErrorCallback} from '../../../api/rest';
 import {debounce, DelayedTask} from '../../../utils/async-util';
 
@@ -732,7 +737,7 @@
             bubbles: false,
           })
         );
-        this.fire('iron-announce', {text: 'Reply sent'}, {bubbles: true});
+        fireIronAnnounce(this, 'Reply sent');
         return accountAdditions;
       })
       .then(result => {
diff --git a/polygerrit-ui/app/elements/core/gr-error-manager/gr-error-manager.ts b/polygerrit-ui/app/elements/core/gr-error-manager/gr-error-manager.ts
index 668f382..51b1c7d 100644
--- a/polygerrit-ui/app/elements/core/gr-error-manager/gr-error-manager.ts
+++ b/polygerrit-ui/app/elements/core/gr-error-manager/gr-error-manager.ts
@@ -40,6 +40,7 @@
 } from '../../../types/events';
 import {windowLocationReload} from '../../../utils/dom-util';
 import {debounce, DelayedTask} from '../../../utils/async-util';
+import {fireIronAnnounce} from '../../../utils/event-util';
 
 const HIDE_ALERT_TIMEOUT_MS = 5000;
 const CHECK_SIGN_IN_INTERVAL_MS = 60 * 1000;
@@ -340,7 +341,7 @@
     const el = this._createToastAlert(showDismiss);
     el.show(text, actionText, actionCallback);
     this._alertElement = el;
-    this.fire('iron-announce', {text: `Alert: ${text}`}, {bubbles: true});
+    fireIronAnnounce(this, `Alert: ${text}`);
     this.reporting.reportInteraction('show-alert', {text});
   }
 
@@ -375,7 +376,7 @@
     this._alertElement.show(errorText, actionText, () =>
       this._createLoginPopup()
     );
-    this.fire('iron-announce', {text: errorText}, {bubbles: true});
+    fireIronAnnounce(this, errorText);
     this.reporting.reportInteraction('show-auth-error', {text: errorText});
     this._refreshingCredentials = true;
     this._requestCheckLoggedIn();
diff --git a/polygerrit-ui/app/elements/diff/gr-diff-mode-selector/gr-diff-mode-selector.ts b/polygerrit-ui/app/elements/diff/gr-diff-mode-selector/gr-diff-mode-selector.ts
index cc7bb98..6f35481 100644
--- a/polygerrit-ui/app/elements/diff/gr-diff-mode-selector/gr-diff-mode-selector.ts
+++ b/polygerrit-ui/app/elements/diff/gr-diff-mode-selector/gr-diff-mode-selector.ts
@@ -26,6 +26,7 @@
 import {IronA11yAnnouncer} from '@polymer/iron-a11y-announcer/iron-a11y-announcer';
 import {FixIronA11yAnnouncer} from '../../../types/types';
 import {appContext} from '../../../services/app-context';
+import {fireIronAnnounce} from '../../../utils/event-util';
 
 @customElement('gr-diff-mode-selector')
 export class GrDiffModeSelector extends LegacyElementMixin(PolymerElement) {
@@ -66,13 +67,7 @@
       announcement = 'Changed diff view to side by side';
     }
     if (announcement) {
-      this.fire(
-        'iron-announce',
-        {
-          text: announcement,
-        },
-        {bubbles: true}
-      );
+      fireIronAnnounce(this, announcement);
     }
   }
 
diff --git a/polygerrit-ui/app/elements/gr-app-element.ts b/polygerrit-ui/app/elements/gr-app-element.ts
index 12115fe..bf7a2af 100644
--- a/polygerrit-ui/app/elements/gr-app-element.ts
+++ b/polygerrit-ui/app/elements/gr-app-element.ts
@@ -80,6 +80,7 @@
 import {GerritView} from '../services/router/router-model';
 import {windowLocationReload} from '../utils/dom-util';
 import {LifeCycle} from '../constants/reporting';
+import {fireIronAnnounce} from '../utils/event-util';
 
 interface ErrorInfo {
   text: string;
@@ -511,7 +512,7 @@
     }
     // To fix bug announce read after each new view, we reset announce with
     // empty space
-    this.fire('iron-announce', {text: ' '}, {bubbles: true});
+    fireIronAnnounce(this, ' ');
   }
 
   _handleShortcutTriggered(event: ShortcutTriggeredEvent) {
diff --git a/polygerrit-ui/app/types/events.ts b/polygerrit-ui/app/types/events.ts
index b3d305d..11155c1 100644
--- a/polygerrit-ui/app/types/events.ts
+++ b/polygerrit-ui/app/types/events.ts
@@ -28,6 +28,7 @@
   EDITABLE_CONTENT_SAVE = 'editable-content-save',
   GR_RPC_LOG = 'gr-rpc-log',
   LOCATION_CHANGE = 'location-change',
+  IRON_ANNOUNCE = 'iron-announce',
   MOVED_LINK_CLICKED = 'moved-link-clicked',
   NETWORK_ERROR = 'network-error',
   OPEN_FIX_PREVIEW = 'open-fix-preview',
@@ -50,6 +51,7 @@
     'dialog-change': DialogChangeEvent;
     'editable-content-save': EditableContentSaveEvent;
     'location-change': LocationChangeEvent;
+    'iron-announce': IronAnnounceEvent;
     'moved-link-clicked': MovedLinkClickedEvent;
     'open-fix-preview': OpenFixPreviewEvent;
     /* prettier-ignore */
@@ -107,6 +109,11 @@
 }
 export type RpcLogEvent = CustomEvent<RpcLogEventDetail>;
 
+export interface IronAnnounceEventDetail {
+  text: string;
+}
+export type IronAnnounceEvent = CustomEvent<IronAnnounceEventDetail>;
+
 export interface LocationChangeEventDetail {
   hash: string;
   pathname: string;
diff --git a/polygerrit-ui/app/utils/event-util.ts b/polygerrit-ui/app/utils/event-util.ts
index 8ff13ed..080955f 100644
--- a/polygerrit-ui/app/utils/event-util.ts
+++ b/polygerrit-ui/app/utils/event-util.ts
@@ -20,6 +20,7 @@
 import {
   DialogChangeEventDetail,
   EventType,
+  IronAnnounceEventDetail,
   NetworkErrorEventDetail,
   PageErrorEventDetail,
   ServerErrorEventDetail,
@@ -82,6 +83,10 @@
   fire<DialogChangeEventDetail>(target, EventType.DIALOG_CHANGE, detail);
 }
 
+export function fireIronAnnounce(target: EventTarget, text: string) {
+  fire<IronAnnounceEventDetail>(target, EventType.IRON_ANNOUNCE, {text});
+}
+
 export function fireThreadListModifiedEvent(
   target: EventTarget,
   rootId: UrlEncodedCommentId,