<?php
# Generated by the protocol buffer compiler.  DO NOT EDIT!
# NO CHECKED-IN PROTOBUF GENCODE
# source: WAProto.proto

namespace PhpWA\Protocol\Proto;

use Google\Protobuf\Internal\GPBType;
use Google\Protobuf\Internal\GPBUtil;
use Google\Protobuf\RepeatedField;

/**
 * Generated from protobuf message <code>proto.GlobalSettings</code>
 */
class GlobalSettings extends \Google\Protobuf\Internal\Message
{
    /**
     * Generated from protobuf field <code>optional .proto.WallpaperSettings lightThemeWallpaper = 1;</code>
     */
    protected $lightThemeWallpaper = null;
    /**
     * Generated from protobuf field <code>optional .proto.MediaVisibility mediaVisibility = 2;</code>
     */
    protected $mediaVisibility = null;
    /**
     * Generated from protobuf field <code>optional .proto.WallpaperSettings darkThemeWallpaper = 3;</code>
     */
    protected $darkThemeWallpaper = null;
    /**
     * Generated from protobuf field <code>optional .proto.AutoDownloadSettings autoDownloadWiFi = 4;</code>
     */
    protected $autoDownloadWiFi = null;
    /**
     * Generated from protobuf field <code>optional .proto.AutoDownloadSettings autoDownloadCellular = 5;</code>
     */
    protected $autoDownloadCellular = null;
    /**
     * Generated from protobuf field <code>optional .proto.AutoDownloadSettings autoDownloadRoaming = 6;</code>
     */
    protected $autoDownloadRoaming = null;
    /**
     * Generated from protobuf field <code>optional bool showIndividualNotificationsPreview = 7;</code>
     */
    protected $showIndividualNotificationsPreview = null;
    /**
     * Generated from protobuf field <code>optional bool showGroupNotificationsPreview = 8;</code>
     */
    protected $showGroupNotificationsPreview = null;
    /**
     * Generated from protobuf field <code>optional int32 disappearingModeDuration = 9;</code>
     */
    protected $disappearingModeDuration = null;
    /**
     * Generated from protobuf field <code>optional int64 disappearingModeTimestamp = 10;</code>
     */
    protected $disappearingModeTimestamp = null;
    /**
     * Generated from protobuf field <code>optional .proto.AvatarUserSettings avatarUserSettings = 11;</code>
     */
    protected $avatarUserSettings = null;
    /**
     * Generated from protobuf field <code>optional int32 fontSize = 12;</code>
     */
    protected $fontSize = null;
    /**
     * Generated from protobuf field <code>optional bool securityNotifications = 13;</code>
     */
    protected $securityNotifications = null;
    /**
     * Generated from protobuf field <code>optional bool autoUnarchiveChats = 14;</code>
     */
    protected $autoUnarchiveChats = null;
    /**
     * Generated from protobuf field <code>optional int32 videoQualityMode = 15;</code>
     */
    protected $videoQualityMode = null;
    /**
     * Generated from protobuf field <code>optional int32 photoQualityMode = 16;</code>
     */
    protected $photoQualityMode = null;
    /**
     * Generated from protobuf field <code>optional .proto.NotificationSettings individualNotificationSettings = 17;</code>
     */
    protected $individualNotificationSettings = null;
    /**
     * Generated from protobuf field <code>optional .proto.NotificationSettings groupNotificationSettings = 18;</code>
     */
    protected $groupNotificationSettings = null;
    /**
     * Generated from protobuf field <code>optional .proto.ChatLockSettings chatLockSettings = 19;</code>
     */
    protected $chatLockSettings = null;
    /**
     * Generated from protobuf field <code>optional int64 chatDbLidMigrationTimestamp = 20;</code>
     */
    protected $chatDbLidMigrationTimestamp = null;

    /**
     * Constructor.
     *
     * @param array $data {
     *     Optional. Data for populating the Message object.
     *
     *     @type \PhpWA\Protocol\Proto\WallpaperSettings $lightThemeWallpaper
     *     @type int $mediaVisibility
     *     @type \PhpWA\Protocol\Proto\WallpaperSettings $darkThemeWallpaper
     *     @type \PhpWA\Protocol\Proto\AutoDownloadSettings $autoDownloadWiFi
     *     @type \PhpWA\Protocol\Proto\AutoDownloadSettings $autoDownloadCellular
     *     @type \PhpWA\Protocol\Proto\AutoDownloadSettings $autoDownloadRoaming
     *     @type bool $showIndividualNotificationsPreview
     *     @type bool $showGroupNotificationsPreview
     *     @type int $disappearingModeDuration
     *     @type int|string $disappearingModeTimestamp
     *     @type \PhpWA\Protocol\Proto\AvatarUserSettings $avatarUserSettings
     *     @type int $fontSize
     *     @type bool $securityNotifications
     *     @type bool $autoUnarchiveChats
     *     @type int $videoQualityMode
     *     @type int $photoQualityMode
     *     @type \PhpWA\Protocol\Proto\NotificationSettings $individualNotificationSettings
     *     @type \PhpWA\Protocol\Proto\NotificationSettings $groupNotificationSettings
     *     @type \PhpWA\Protocol\Proto\ChatLockSettings $chatLockSettings
     *     @type int|string $chatDbLidMigrationTimestamp
     * }
     */
    public function __construct($data = NULL) {
        \PhpWA\Protocol\Proto\Metadata\WAProto::initOnce();
        parent::__construct($data);
    }

    /**
     * Generated from protobuf field <code>optional .proto.WallpaperSettings lightThemeWallpaper = 1;</code>
     * @return \PhpWA\Protocol\Proto\WallpaperSettings|null
     */
    public function getLightThemeWallpaper()
    {
        return $this->lightThemeWallpaper;
    }

    public function hasLightThemeWallpaper()
    {
        return isset($this->lightThemeWallpaper);
    }

    public function clearLightThemeWallpaper()
    {
        unset($this->lightThemeWallpaper);
    }

    /**
     * Generated from protobuf field <code>optional .proto.WallpaperSettings lightThemeWallpaper = 1;</code>
     * @param \PhpWA\Protocol\Proto\WallpaperSettings $var
     * @return $this
     */
    public function setLightThemeWallpaper($var)
    {
        GPBUtil::checkMessage($var, \PhpWA\Protocol\Proto\WallpaperSettings::class);
        $this->lightThemeWallpaper = $var;

        return $this;
    }

    /**
     * Generated from protobuf field <code>optional .proto.MediaVisibility mediaVisibility = 2;</code>
     * @return int
     */
    public function getMediaVisibility()
    {
        return isset($this->mediaVisibility) ? $this->mediaVisibility : 0;
    }

    public function hasMediaVisibility()
    {
        return isset($this->mediaVisibility);
    }

    public function clearMediaVisibility()
    {
        unset($this->mediaVisibility);
    }

    /**
     * Generated from protobuf field <code>optional .proto.MediaVisibility mediaVisibility = 2;</code>
     * @param int $var
     * @return $this
     */
    public function setMediaVisibility($var)
    {
        GPBUtil::checkEnum($var, \PhpWA\Protocol\Proto\MediaVisibility::class);
        $this->mediaVisibility = $var;

        return $this;
    }

    /**
     * Generated from protobuf field <code>optional .proto.WallpaperSettings darkThemeWallpaper = 3;</code>
     * @return \PhpWA\Protocol\Proto\WallpaperSettings|null
     */
    public function getDarkThemeWallpaper()
    {
        return $this->darkThemeWallpaper;
    }

    public function hasDarkThemeWallpaper()
    {
        return isset($this->darkThemeWallpaper);
    }

    public function clearDarkThemeWallpaper()
    {
        unset($this->darkThemeWallpaper);
    }

    /**
     * Generated from protobuf field <code>optional .proto.WallpaperSettings darkThemeWallpaper = 3;</code>
     * @param \PhpWA\Protocol\Proto\WallpaperSettings $var
     * @return $this
     */
    public function setDarkThemeWallpaper($var)
    {
        GPBUtil::checkMessage($var, \PhpWA\Protocol\Proto\WallpaperSettings::class);
        $this->darkThemeWallpaper = $var;

        return $this;
    }

    /**
     * Generated from protobuf field <code>optional .proto.AutoDownloadSettings autoDownloadWiFi = 4;</code>
     * @return \PhpWA\Protocol\Proto\AutoDownloadSettings|null
     */
    public function getAutoDownloadWiFi()
    {
        return $this->autoDownloadWiFi;
    }

    public function hasAutoDownloadWiFi()
    {
        return isset($this->autoDownloadWiFi);
    }

    public function clearAutoDownloadWiFi()
    {
        unset($this->autoDownloadWiFi);
    }

    /**
     * Generated from protobuf field <code>optional .proto.AutoDownloadSettings autoDownloadWiFi = 4;</code>
     * @param \PhpWA\Protocol\Proto\AutoDownloadSettings $var
     * @return $this
     */
    public function setAutoDownloadWiFi($var)
    {
        GPBUtil::checkMessage($var, \PhpWA\Protocol\Proto\AutoDownloadSettings::class);
        $this->autoDownloadWiFi = $var;

        return $this;
    }

    /**
     * Generated from protobuf field <code>optional .proto.AutoDownloadSettings autoDownloadCellular = 5;</code>
     * @return \PhpWA\Protocol\Proto\AutoDownloadSettings|null
     */
    public function getAutoDownloadCellular()
    {
        return $this->autoDownloadCellular;
    }

    public function hasAutoDownloadCellular()
    {
        return isset($this->autoDownloadCellular);
    }

    public function clearAutoDownloadCellular()
    {
        unset($this->autoDownloadCellular);
    }

    /**
     * Generated from protobuf field <code>optional .proto.AutoDownloadSettings autoDownloadCellular = 5;</code>
     * @param \PhpWA\Protocol\Proto\AutoDownloadSettings $var
     * @return $this
     */
    public function setAutoDownloadCellular($var)
    {
        GPBUtil::checkMessage($var, \PhpWA\Protocol\Proto\AutoDownloadSettings::class);
        $this->autoDownloadCellular = $var;

        return $this;
    }

    /**
     * Generated from protobuf field <code>optional .proto.AutoDownloadSettings autoDownloadRoaming = 6;</code>
     * @return \PhpWA\Protocol\Proto\AutoDownloadSettings|null
     */
    public function getAutoDownloadRoaming()
    {
        return $this->autoDownloadRoaming;
    }

    public function hasAutoDownloadRoaming()
    {
        return isset($this->autoDownloadRoaming);
    }

    public function clearAutoDownloadRoaming()
    {
        unset($this->autoDownloadRoaming);
    }

    /**
     * Generated from protobuf field <code>optional .proto.AutoDownloadSettings autoDownloadRoaming = 6;</code>
     * @param \PhpWA\Protocol\Proto\AutoDownloadSettings $var
     * @return $this
     */
    public function setAutoDownloadRoaming($var)
    {
        GPBUtil::checkMessage($var, \PhpWA\Protocol\Proto\AutoDownloadSettings::class);
        $this->autoDownloadRoaming = $var;

        return $this;
    }

    /**
     * Generated from protobuf field <code>optional bool showIndividualNotificationsPreview = 7;</code>
     * @return bool
     */
    public function getShowIndividualNotificationsPreview()
    {
        return isset($this->showIndividualNotificationsPreview) ? $this->showIndividualNotificationsPreview : false;
    }

    public function hasShowIndividualNotificationsPreview()
    {
        return isset($this->showIndividualNotificationsPreview);
    }

    public function clearShowIndividualNotificationsPreview()
    {
        unset($this->showIndividualNotificationsPreview);
    }

    /**
     * Generated from protobuf field <code>optional bool showIndividualNotificationsPreview = 7;</code>
     * @param bool $var
     * @return $this
     */
    public function setShowIndividualNotificationsPreview($var)
    {
        GPBUtil::checkBool($var);
        $this->showIndividualNotificationsPreview = $var;

        return $this;
    }

    /**
     * Generated from protobuf field <code>optional bool showGroupNotificationsPreview = 8;</code>
     * @return bool
     */
    public function getShowGroupNotificationsPreview()
    {
        return isset($this->showGroupNotificationsPreview) ? $this->showGroupNotificationsPreview : false;
    }

    public function hasShowGroupNotificationsPreview()
    {
        return isset($this->showGroupNotificationsPreview);
    }

    public function clearShowGroupNotificationsPreview()
    {
        unset($this->showGroupNotificationsPreview);
    }

    /**
     * Generated from protobuf field <code>optional bool showGroupNotificationsPreview = 8;</code>
     * @param bool $var
     * @return $this
     */
    public function setShowGroupNotificationsPreview($var)
    {
        GPBUtil::checkBool($var);
        $this->showGroupNotificationsPreview = $var;

        return $this;
    }

    /**
     * Generated from protobuf field <code>optional int32 disappearingModeDuration = 9;</code>
     * @return int
     */
    public function getDisappearingModeDuration()
    {
        return isset($this->disappearingModeDuration) ? $this->disappearingModeDuration : 0;
    }

    public function hasDisappearingModeDuration()
    {
        return isset($this->disappearingModeDuration);
    }

    public function clearDisappearingModeDuration()
    {
        unset($this->disappearingModeDuration);
    }

    /**
     * Generated from protobuf field <code>optional int32 disappearingModeDuration = 9;</code>
     * @param int $var
     * @return $this
     */
    public function setDisappearingModeDuration($var)
    {
        GPBUtil::checkInt32($var);
        $this->disappearingModeDuration = $var;

        return $this;
    }

    /**
     * Generated from protobuf field <code>optional int64 disappearingModeTimestamp = 10;</code>
     * @return int|string
     */
    public function getDisappearingModeTimestamp()
    {
        return isset($this->disappearingModeTimestamp) ? $this->disappearingModeTimestamp : 0;
    }

    public function hasDisappearingModeTimestamp()
    {
        return isset($this->disappearingModeTimestamp);
    }

    public function clearDisappearingModeTimestamp()
    {
        unset($this->disappearingModeTimestamp);
    }

    /**
     * Generated from protobuf field <code>optional int64 disappearingModeTimestamp = 10;</code>
     * @param int|string $var
     * @return $this
     */
    public function setDisappearingModeTimestamp($var)
    {
        GPBUtil::checkInt64($var);
        $this->disappearingModeTimestamp = $var;

        return $this;
    }

    /**
     * Generated from protobuf field <code>optional .proto.AvatarUserSettings avatarUserSettings = 11;</code>
     * @return \PhpWA\Protocol\Proto\AvatarUserSettings|null
     */
    public function getAvatarUserSettings()
    {
        return $this->avatarUserSettings;
    }

    public function hasAvatarUserSettings()
    {
        return isset($this->avatarUserSettings);
    }

    public function clearAvatarUserSettings()
    {
        unset($this->avatarUserSettings);
    }

    /**
     * Generated from protobuf field <code>optional .proto.AvatarUserSettings avatarUserSettings = 11;</code>
     * @param \PhpWA\Protocol\Proto\AvatarUserSettings $var
     * @return $this
     */
    public function setAvatarUserSettings($var)
    {
        GPBUtil::checkMessage($var, \PhpWA\Protocol\Proto\AvatarUserSettings::class);
        $this->avatarUserSettings = $var;

        return $this;
    }

    /**
     * Generated from protobuf field <code>optional int32 fontSize = 12;</code>
     * @return int
     */
    public function getFontSize()
    {
        return isset($this->fontSize) ? $this->fontSize : 0;
    }

    public function hasFontSize()
    {
        return isset($this->fontSize);
    }

    public function clearFontSize()
    {
        unset($this->fontSize);
    }

    /**
     * Generated from protobuf field <code>optional int32 fontSize = 12;</code>
     * @param int $var
     * @return $this
     */
    public function setFontSize($var)
    {
        GPBUtil::checkInt32($var);
        $this->fontSize = $var;

        return $this;
    }

    /**
     * Generated from protobuf field <code>optional bool securityNotifications = 13;</code>
     * @return bool
     */
    public function getSecurityNotifications()
    {
        return isset($this->securityNotifications) ? $this->securityNotifications : false;
    }

    public function hasSecurityNotifications()
    {
        return isset($this->securityNotifications);
    }

    public function clearSecurityNotifications()
    {
        unset($this->securityNotifications);
    }

    /**
     * Generated from protobuf field <code>optional bool securityNotifications = 13;</code>
     * @param bool $var
     * @return $this
     */
    public function setSecurityNotifications($var)
    {
        GPBUtil::checkBool($var);
        $this->securityNotifications = $var;

        return $this;
    }

    /**
     * Generated from protobuf field <code>optional bool autoUnarchiveChats = 14;</code>
     * @return bool
     */
    public function getAutoUnarchiveChats()
    {
        return isset($this->autoUnarchiveChats) ? $this->autoUnarchiveChats : false;
    }

    public function hasAutoUnarchiveChats()
    {
        return isset($this->autoUnarchiveChats);
    }

    public function clearAutoUnarchiveChats()
    {
        unset($this->autoUnarchiveChats);
    }

    /**
     * Generated from protobuf field <code>optional bool autoUnarchiveChats = 14;</code>
     * @param bool $var
     * @return $this
     */
    public function setAutoUnarchiveChats($var)
    {
        GPBUtil::checkBool($var);
        $this->autoUnarchiveChats = $var;

        return $this;
    }

    /**
     * Generated from protobuf field <code>optional int32 videoQualityMode = 15;</code>
     * @return int
     */
    public function getVideoQualityMode()
    {
        return isset($this->videoQualityMode) ? $this->videoQualityMode : 0;
    }

    public function hasVideoQualityMode()
    {
        return isset($this->videoQualityMode);
    }

    public function clearVideoQualityMode()
    {
        unset($this->videoQualityMode);
    }

    /**
     * Generated from protobuf field <code>optional int32 videoQualityMode = 15;</code>
     * @param int $var
     * @return $this
     */
    public function setVideoQualityMode($var)
    {
        GPBUtil::checkInt32($var);
        $this->videoQualityMode = $var;

        return $this;
    }

    /**
     * Generated from protobuf field <code>optional int32 photoQualityMode = 16;</code>
     * @return int
     */
    public function getPhotoQualityMode()
    {
        return isset($this->photoQualityMode) ? $this->photoQualityMode : 0;
    }

    public function hasPhotoQualityMode()
    {
        return isset($this->photoQualityMode);
    }

    public function clearPhotoQualityMode()
    {
        unset($this->photoQualityMode);
    }

    /**
     * Generated from protobuf field <code>optional int32 photoQualityMode = 16;</code>
     * @param int $var
     * @return $this
     */
    public function setPhotoQualityMode($var)
    {
        GPBUtil::checkInt32($var);
        $this->photoQualityMode = $var;

        return $this;
    }

    /**
     * Generated from protobuf field <code>optional .proto.NotificationSettings individualNotificationSettings = 17;</code>
     * @return \PhpWA\Protocol\Proto\NotificationSettings|null
     */
    public function getIndividualNotificationSettings()
    {
        return $this->individualNotificationSettings;
    }

    public function hasIndividualNotificationSettings()
    {
        return isset($this->individualNotificationSettings);
    }

    public function clearIndividualNotificationSettings()
    {
        unset($this->individualNotificationSettings);
    }

    /**
     * Generated from protobuf field <code>optional .proto.NotificationSettings individualNotificationSettings = 17;</code>
     * @param \PhpWA\Protocol\Proto\NotificationSettings $var
     * @return $this
     */
    public function setIndividualNotificationSettings($var)
    {
        GPBUtil::checkMessage($var, \PhpWA\Protocol\Proto\NotificationSettings::class);
        $this->individualNotificationSettings = $var;

        return $this;
    }

    /**
     * Generated from protobuf field <code>optional .proto.NotificationSettings groupNotificationSettings = 18;</code>
     * @return \PhpWA\Protocol\Proto\NotificationSettings|null
     */
    public function getGroupNotificationSettings()
    {
        return $this->groupNotificationSettings;
    }

    public function hasGroupNotificationSettings()
    {
        return isset($this->groupNotificationSettings);
    }

    public function clearGroupNotificationSettings()
    {
        unset($this->groupNotificationSettings);
    }

    /**
     * Generated from protobuf field <code>optional .proto.NotificationSettings groupNotificationSettings = 18;</code>
     * @param \PhpWA\Protocol\Proto\NotificationSettings $var
     * @return $this
     */
    public function setGroupNotificationSettings($var)
    {
        GPBUtil::checkMessage($var, \PhpWA\Protocol\Proto\NotificationSettings::class);
        $this->groupNotificationSettings = $var;

        return $this;
    }

    /**
     * Generated from protobuf field <code>optional .proto.ChatLockSettings chatLockSettings = 19;</code>
     * @return \PhpWA\Protocol\Proto\ChatLockSettings|null
     */
    public function getChatLockSettings()
    {
        return $this->chatLockSettings;
    }

    public function hasChatLockSettings()
    {
        return isset($this->chatLockSettings);
    }

    public function clearChatLockSettings()
    {
        unset($this->chatLockSettings);
    }

    /**
     * Generated from protobuf field <code>optional .proto.ChatLockSettings chatLockSettings = 19;</code>
     * @param \PhpWA\Protocol\Proto\ChatLockSettings $var
     * @return $this
     */
    public function setChatLockSettings($var)
    {
        GPBUtil::checkMessage($var, \PhpWA\Protocol\Proto\ChatLockSettings::class);
        $this->chatLockSettings = $var;

        return $this;
    }

    /**
     * Generated from protobuf field <code>optional int64 chatDbLidMigrationTimestamp = 20;</code>
     * @return int|string
     */
    public function getChatDbLidMigrationTimestamp()
    {
        return isset($this->chatDbLidMigrationTimestamp) ? $this->chatDbLidMigrationTimestamp : 0;
    }

    public function hasChatDbLidMigrationTimestamp()
    {
        return isset($this->chatDbLidMigrationTimestamp);
    }

    public function clearChatDbLidMigrationTimestamp()
    {
        unset($this->chatDbLidMigrationTimestamp);
    }

    /**
     * Generated from protobuf field <code>optional int64 chatDbLidMigrationTimestamp = 20;</code>
     * @param int|string $var
     * @return $this
     */
    public function setChatDbLidMigrationTimestamp($var)
    {
        GPBUtil::checkInt64($var);
        $this->chatDbLidMigrationTimestamp = $var;

        return $this;
    }

}

