Consolidate NoticeDialog's negative and cancel code paths

If the user tapped the grayed-out app view behind the NoticeDialog, the dialog would be dismissed but neither the positive ("OK") or negative ("Cancel") button code paths would be called.

Also move the Prefs.hasSeenNotice() check outside of NoticeDialog to avoid unnecessary allocation of new NoticeDialog.