import { createLogger, utilsLogger } from "../../logger";

const logger = createLogger({
  category: "userCellPlayerMutedPreference",
  subsystem: "General",
  parent: utilsLogger,
});

const { log_info } = logger;

// Default value for muted state, if there is no value in config
const defaultMutedStateMobile = true;

// According by current requirements, this flag persist only during current session
// We don't use session storage to avoid using await
let mutedStateMobile: null | Boolean = null;

export const getUserCellPlayerMutedPreference = (audioMutedByDefault) => {
  if (mutedStateMobile !== null) {
    return mutedStateMobile;
  }

  if (audioMutedByDefault !== null && audioMutedByDefault !== undefined) {
    return audioMutedByDefault;
  }

  return defaultMutedStateMobile;
};

export const setUserCellPlayerMutedPreference = (muted: boolean): void => {
  log_info(`setUserCellPlayerMutedPreference: set player muted: ${muted}`);
  mutedStateMobile = muted;
};
