Don't show readiness warnings if not supported by sever, or if only user in room who supports readiness

This commit is contained in:
Et0h 2015-01-01 13:30:01 +00:00
parent af5076df00
commit cee4a5c2f2

View File

@ -587,6 +587,9 @@ class SyncplayClient(object):
elif self._warnings["room-file-differences"]['timer'].running: elif self._warnings["room-file-differences"]['timer'].running:
self._warnings["room-file-differences"]['timer'].stop() self._warnings["room-file-differences"]['timer'].stop()
def _checkIfYouAreOnlyUserInRoomWhoSupportsReadiness(self):
self._userlist._onlyUserInRoomWhoSupportsReadiness()
def _checkIfYouReAloneInTheRoom(self, OSDOnly): def _checkIfYouReAloneInTheRoom(self, OSDOnly):
if self._userlist.areYouAloneInRoom(): if self._userlist.areYouAloneInRoom():
self._ui.showOSDMessage(getMessage("alone-in-the-room"), constants.WARNING_OSD_MESSAGES_LOOP_INTERVAL, secondaryOSD=True) self._ui.showOSDMessage(getMessage("alone-in-the-room"), constants.WARNING_OSD_MESSAGES_LOOP_INTERVAL, secondaryOSD=True)
@ -596,6 +599,14 @@ class SyncplayClient(object):
self._warnings["alone-in-the-room"]['timer'].start(constants.WARNING_OSD_MESSAGES_LOOP_INTERVAL, True) self._warnings["alone-in-the-room"]['timer'].start(constants.WARNING_OSD_MESSAGES_LOOP_INTERVAL, True)
elif self._warnings["alone-in-the-room"]['timer'].running: elif self._warnings["alone-in-the-room"]['timer'].running:
self._warnings["alone-in-the-room"]['timer'].stop() self._warnings["alone-in-the-room"]['timer'].stop()
def isReadinessSupported(self):
if not utils.meetsMinVersion(self._client.serverVersion,constants.USER_READY_MIN_VERSION):
return False
elif self._userlist.onlyUserInRoomWhoSupportsReadiness():
return False
else:
return True
def checkReadyStates(self): def checkReadyStates(self):
if not self._client: if not self._client:
@ -618,20 +629,23 @@ class SyncplayClient(object):
def _displayReadySameWarning(self): def _displayReadySameWarning(self):
if not self._client._player: if not self._client._player:
return return
osdMessage = None
if not self._userlist.areAllFilesInRoomSame(): if not self._userlist.areAllFilesInRoomSame():
fileDifferencesMessage = getMessage("room-file-differences").format(self._userlist.getFileDifferencesForRoom()) fileDifferencesMessage = getMessage("room-file-differences").format(self._userlist.getFileDifferencesForRoom())
if self._userlist.currentUser.canControl(): if self._userlist.currentUser.canControl() and self.isReadinessSupported():
if self._userlist.areAllUsersInRoomReady(): if self._userlist.areAllUsersInRoomReady():
osdMessage = u"{}{}{}".format(fileDifferencesMessage, self._client._player.osdMessageSeparator, getMessage("all-users-ready")) osdMessage = u"{}{}{}".format(fileDifferencesMessage, self._client._player.osdMessageSeparator, getMessage("all-users-ready"))
else: else:
osdMessage = u"{}{}{}".format(fileDifferencesMessage, self._client._player.osdMessageSeparator, getMessage("not-all-ready").format(self._userlist.usersInRoomNotReady())) osdMessage = u"{}{}{}".format(fileDifferencesMessage, self._client._player.osdMessageSeparator, getMessage("not-all-ready").format(self._userlist.usersInRoomNotReady()))
else: else:
osdMessage = fileDifferencesMessage osdMessage = fileDifferencesMessage
elif self._userlist.areAllUsersInRoomReady(): elif self.isReadinessSupported():
osdMessage = getMessage("all-users-ready") if self._userlist.areAllUsersInRoomReady():
else: osdMessage = getMessage("all-users-ready")
osdMessage = getMessage("not-all-ready").format(self._userlist.usersInRoomNotReady()) else:
self._ui.showOSDMessage(osdMessage, constants.WARNING_OSD_MESSAGES_LOOP_INTERVAL, secondaryOSD=True) osdMessage = getMessage("not-all-ready").format(self._userlist.usersInRoomNotReady())
if osdMessage:
self._ui.showOSDMessage(osdMessage, constants.WARNING_OSD_MESSAGES_LOOP_INTERVAL, secondaryOSD=True)
def __displayMessageOnOSD(self, warningName, warningFunction): def __displayMessageOnOSD(self, warningName, warningFunction):
if constants.OSD_WARNING_MESSAGE_DURATION > self._warnings[warningName]["displayedFor"]: if constants.OSD_WARNING_MESSAGE_DURATION > self._warnings[warningName]["displayedFor"]:
@ -861,6 +875,12 @@ class SyncplayUserlist(object):
if user.room == self.currentUser.room: if user.room == self.currentUser.room:
return False return False
return True return True
def onlyUserInRoomWhoSupportsReadiness(self):
for user in self._users.itervalues():
if user.room == self.currentUser.room and user.isReady() is not None:
return False
return True
def isUserInYourRoom(self, username): def isUserInYourRoom(self, username):
for user in self._users.itervalues(): for user in self._users.itervalues():
@ -884,7 +904,7 @@ class SyncplayUserlist(object):
for user in self._users.itervalues(): for user in self._users.itervalues():
if user.username == username: if user.username == username:
return user.isReady() return user.isReady()
return False return None
def setReady(self, username, isReady): def setReady(self, username, isReady):
if self.currentUser.username == username: if self.currentUser.username == username: