<?php
 
 
 

namespace PhpWA\Protocol\Proto;

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




class GlobalSettings extends \Google\Protobuf\Internal\Message
{
    


    protected $lightThemeWallpaper = null;
    


    protected $mediaVisibility = null;
    


    protected $darkThemeWallpaper = null;
    


    protected $autoDownloadWiFi = null;
    


    protected $autoDownloadCellular = null;
    


    protected $autoDownloadRoaming = null;
    


    protected $showIndividualNotificationsPreview = null;
    


    protected $showGroupNotificationsPreview = null;
    


    protected $disappearingModeDuration = null;
    


    protected $disappearingModeTimestamp = null;
    


    protected $avatarUserSettings = null;
    


    protected $fontSize = null;
    


    protected $securityNotifications = null;
    


    protected $autoUnarchiveChats = null;
    


    protected $videoQualityMode = null;
    


    protected $photoQualityMode = null;
    


    protected $individualNotificationSettings = null;
    


    protected $groupNotificationSettings = null;
    


    protected $chatLockSettings = null;
    


    protected $chatDbLidMigrationTimestamp = null;

    



























    public function __construct($data = NULL) {
        \PhpWA\Protocol\Proto\Metadata\WAProto::initOnce();
        parent::__construct($data);
    }

    



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

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

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

    




    public function setLightThemeWallpaper($var)
    {
        GPBUtil::checkMessage($var, \PhpWA\Protocol\Proto\WallpaperSettings::class);
        $this->lightThemeWallpaper = $var;

        return $this;
    }

    



    public function getMediaVisibility()
    {
        return isset($this->mediaVisibility) ? $this->mediaVisibility : 0;
    }

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

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

    




    public function setMediaVisibility($var)
    {
        GPBUtil::checkEnum($var, \PhpWA\Protocol\Proto\MediaVisibility::class);
        $this->mediaVisibility = $var;

        return $this;
    }

    



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

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

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

    




    public function setDarkThemeWallpaper($var)
    {
        GPBUtil::checkMessage($var, \PhpWA\Protocol\Proto\WallpaperSettings::class);
        $this->darkThemeWallpaper = $var;

        return $this;
    }

    



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

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

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

    




    public function setAutoDownloadWiFi($var)
    {
        GPBUtil::checkMessage($var, \PhpWA\Protocol\Proto\AutoDownloadSettings::class);
        $this->autoDownloadWiFi = $var;

        return $this;
    }

    



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

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

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

    




    public function setAutoDownloadCellular($var)
    {
        GPBUtil::checkMessage($var, \PhpWA\Protocol\Proto\AutoDownloadSettings::class);
        $this->autoDownloadCellular = $var;

        return $this;
    }

    



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

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

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

    




    public function setAutoDownloadRoaming($var)
    {
        GPBUtil::checkMessage($var, \PhpWA\Protocol\Proto\AutoDownloadSettings::class);
        $this->autoDownloadRoaming = $var;

        return $this;
    }

    



    public function getShowIndividualNotificationsPreview()
    {
        return isset($this->showIndividualNotificationsPreview) ? $this->showIndividualNotificationsPreview : false;
    }

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

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

    




    public function setShowIndividualNotificationsPreview($var)
    {
        GPBUtil::checkBool($var);
        $this->showIndividualNotificationsPreview = $var;

        return $this;
    }

    



    public function getShowGroupNotificationsPreview()
    {
        return isset($this->showGroupNotificationsPreview) ? $this->showGroupNotificationsPreview : false;
    }

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

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

    




    public function setShowGroupNotificationsPreview($var)
    {
        GPBUtil::checkBool($var);
        $this->showGroupNotificationsPreview = $var;

        return $this;
    }

    



    public function getDisappearingModeDuration()
    {
        return isset($this->disappearingModeDuration) ? $this->disappearingModeDuration : 0;
    }

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

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

    




    public function setDisappearingModeDuration($var)
    {
        GPBUtil::checkInt32($var);
        $this->disappearingModeDuration = $var;

        return $this;
    }

    



    public function getDisappearingModeTimestamp()
    {
        return isset($this->disappearingModeTimestamp) ? $this->disappearingModeTimestamp : 0;
    }

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

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

    




    public function setDisappearingModeTimestamp($var)
    {
        GPBUtil::checkInt64($var);
        $this->disappearingModeTimestamp = $var;

        return $this;
    }

    



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

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

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

    




    public function setAvatarUserSettings($var)
    {
        GPBUtil::checkMessage($var, \PhpWA\Protocol\Proto\AvatarUserSettings::class);
        $this->avatarUserSettings = $var;

        return $this;
    }

    



    public function getFontSize()
    {
        return isset($this->fontSize) ? $this->fontSize : 0;
    }

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

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

    




    public function setFontSize($var)
    {
        GPBUtil::checkInt32($var);
        $this->fontSize = $var;

        return $this;
    }

    



    public function getSecurityNotifications()
    {
        return isset($this->securityNotifications) ? $this->securityNotifications : false;
    }

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

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

    




    public function setSecurityNotifications($var)
    {
        GPBUtil::checkBool($var);
        $this->securityNotifications = $var;

        return $this;
    }

    



    public function getAutoUnarchiveChats()
    {
        return isset($this->autoUnarchiveChats) ? $this->autoUnarchiveChats : false;
    }

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

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

    




    public function setAutoUnarchiveChats($var)
    {
        GPBUtil::checkBool($var);
        $this->autoUnarchiveChats = $var;

        return $this;
    }

    



    public function getVideoQualityMode()
    {
        return isset($this->videoQualityMode) ? $this->videoQualityMode : 0;
    }

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

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

    




    public function setVideoQualityMode($var)
    {
        GPBUtil::checkInt32($var);
        $this->videoQualityMode = $var;

        return $this;
    }

    



    public function getPhotoQualityMode()
    {
        return isset($this->photoQualityMode) ? $this->photoQualityMode : 0;
    }

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

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

    




    public function setPhotoQualityMode($var)
    {
        GPBUtil::checkInt32($var);
        $this->photoQualityMode = $var;

        return $this;
    }

    



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

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

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

    




    public function setIndividualNotificationSettings($var)
    {
        GPBUtil::checkMessage($var, \PhpWA\Protocol\Proto\NotificationSettings::class);
        $this->individualNotificationSettings = $var;

        return $this;
    }

    



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

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

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

    




    public function setGroupNotificationSettings($var)
    {
        GPBUtil::checkMessage($var, \PhpWA\Protocol\Proto\NotificationSettings::class);
        $this->groupNotificationSettings = $var;

        return $this;
    }

    



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

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

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

    




    public function setChatLockSettings($var)
    {
        GPBUtil::checkMessage($var, \PhpWA\Protocol\Proto\ChatLockSettings::class);
        $this->chatLockSettings = $var;

        return $this;
    }

    



    public function getChatDbLidMigrationTimestamp()
    {
        return isset($this->chatDbLidMigrationTimestamp) ? $this->chatDbLidMigrationTimestamp : 0;
    }

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

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

    




    public function setChatDbLidMigrationTimestamp($var)
    {
        GPBUtil::checkInt64($var);
        $this->chatDbLidMigrationTimestamp = $var;

        return $this;
    }

}

