message: clean up and fix the isMasterRuleEnabled logic
diff: @@ -20,18 +20,20 @@ import {MatrixClientPeg} from '../../MatrixClientPeg';
  // XXX: This feels wrong.
  import {PushProcessor} from "matrix-js-sdk/src/pushprocessor";
  -function isMasterRuleEnabled() {
  +// .m.rule.master being enabled means all events match that push rule
  +// default action on this rule is dont_notify, but it could be something else
  +function isPushNotifyDisabled() {
  // Return the value of the master push rule as a default
  const processor = new PushProcessor(MatrixClientPeg.get());
  const masterRule = processor.getPushRuleById(".m.rule.master");
  if (!masterRule) {
  console.warn("No master push rule! Notifications are disabled for this user.");
  - return false;
  + return true;
  }
  - // Why enabled == false means "enabled" is beyond me.
  - return !masterRule.enabled;
  + // If the rule is enabled then check it does not notify on everything
  + return masterRule.enabled && !masterRule.actions.includes("notify");
  }
  function getNotifier() {
  @@ -45,7 +47,7 @@ export class NotificationsEnabledController extends SettingController {
  if (!getNotifier().isPossible()) return false;
  if (calculatedValue === null || calculatedAtLevel === "default") {
  - return !isMasterRuleEnabled();
  + return !isPushNotifyDisabled();
  }
  return calculatedValue;
  @@ -63,7 +65,7 @@ export class NotificationBodyEnabledController extends SettingController {
  if (!getNotifier().isPossible()) return false;
  if (calculatedValue === null) {
  - return !isMasterRuleEnabled();
  + return !isPushNotifyDisabled();
  }
  return calculatedValue;
  