From caa0f057d4dab2d44ee8474a7ed2c2ad37e6232a Mon Sep 17 00:00:00 2001 From: Peter Date: Mon, 19 Jun 2017 20:36:43 +0300 Subject: [PATCH] no message --- .../Contents.json | 12 ++++++++- .../ConversationInputFieldKeyboardIcon@2x.png | Bin 0 -> 525 bytes .../ConversationInputFieldKeyboardIcon@3x.png | Bin 0 -> 714 bytes .../ic_keyboard.pdf | Bin 6970 -> 0 bytes .../Contents.json | 12 ++++++++- .../ConversationInputFieldStickerIcon@2x.png | Bin 0 -> 1172 bytes .../ConversationInputFieldStickerIcon@3x.png | Bin 0 -> 1719 bytes .../ic_sticker.pdf | Bin 8119 -> 0 bytes ...ernConversationSecretAccessoryTimer@2x.png | Bin 579 -> 612 bytes ...ernConversationSecretAccessoryTimer@3x.png | Bin 915 -> 956 bytes TelegramUI/CallListController.swift | 6 ++--- .../ChannelBannedMemberController.swift | 4 +-- TelegramUI/ChatController.swift | 2 +- ...ChatSecretAutoremoveTimerActionSheet.swift | 6 ++++- TelegramUI/ChatTextInputPanelNode.swift | 23 ++++++++++++------ TelegramUI/MediaPlayerNode.swift | 12 +++++++++ TelegramUI/NumericFormat.swift | 14 +++++++++++ 17 files changed, 75 insertions(+), 16 deletions(-) create mode 100644 Images.xcassets/Chat/Input/Text/AccessoryIconKeyboard.imageset/ConversationInputFieldKeyboardIcon@2x.png create mode 100644 Images.xcassets/Chat/Input/Text/AccessoryIconKeyboard.imageset/ConversationInputFieldKeyboardIcon@3x.png delete mode 100644 Images.xcassets/Chat/Input/Text/AccessoryIconKeyboard.imageset/ic_keyboard.pdf create mode 100644 Images.xcassets/Chat/Input/Text/AccessoryIconStickers.imageset/ConversationInputFieldStickerIcon@2x.png create mode 100644 Images.xcassets/Chat/Input/Text/AccessoryIconStickers.imageset/ConversationInputFieldStickerIcon@3x.png delete mode 100644 Images.xcassets/Chat/Input/Text/AccessoryIconStickers.imageset/ic_sticker.pdf diff --git a/Images.xcassets/Chat/Input/Text/AccessoryIconKeyboard.imageset/Contents.json b/Images.xcassets/Chat/Input/Text/AccessoryIconKeyboard.imageset/Contents.json index 5785acf156..217d187faf 100644 --- a/Images.xcassets/Chat/Input/Text/AccessoryIconKeyboard.imageset/Contents.json +++ b/Images.xcassets/Chat/Input/Text/AccessoryIconKeyboard.imageset/Contents.json @@ -2,7 +2,17 @@ "images" : [ { "idiom" : "universal", - "filename" : "ic_keyboard.pdf" + "scale" : "1x" + }, + { + "idiom" : "universal", + "filename" : "ConversationInputFieldKeyboardIcon@2x.png", + "scale" : "2x" + }, + { + "idiom" : "universal", + "filename" : "ConversationInputFieldKeyboardIcon@3x.png", + "scale" : "3x" } ], "info" : { diff --git a/Images.xcassets/Chat/Input/Text/AccessoryIconKeyboard.imageset/ConversationInputFieldKeyboardIcon@2x.png b/Images.xcassets/Chat/Input/Text/AccessoryIconKeyboard.imageset/ConversationInputFieldKeyboardIcon@2x.png new file mode 100644 index 0000000000000000000000000000000000000000..90a1f74a9156d379dc95ffa16e4ddd5267b3bea4 GIT binary patch literal 525 zcmeAS@N?(olHy`uVBq!ia0vp^RzPgP!3-qJ|IMrcQaJ%WA+A7r@1f&+4jtQb@aUdH zM}g#S2m{DIe0ukxV?ge~gC}<%KECJRF`$Co5XFa2?!S5!q#mmA*zPlDfC}~m^aTTcM;PKsHWk91^m%WYz+NV+yx$lujI1ba?Y_UVs|U z{9oVO_@5X{hqm&ubv)buv!wqhCj$ecj;D)bNCo55Yt4&Z2MDx26#ct3ckh4Wd(}IZ zb3BWPznijcsl9gBWE17^X=;T_l(tUc`a0{A$t;U4w{~58$+Y)hf<@4}ivg`>A^E%j+*V-5V7h~5#!y{M&^kdCmqgW)SVl7xI}aMQ;{qq&73DD&AXa7 zs-o}Se#_tfcioTA=k~ChnI*k=eNZkT{!it4{z4AhLk|3W4DFB3S2KH@TW$5FollW> zp=8e=Ryjv8C&rVvead#%mjCu!xPJZW)vfu?cmMwSx9}d*|2v9_hwmS3+wW`De%o{U z0f&Qcj`Uvkah&mL+kuFW`4NJ-jT=*Q-<>V3-nd4yb>FVdQ&MBb@ E04Z=7j{pDw literal 0 HcmV?d00001 diff --git a/Images.xcassets/Chat/Input/Text/AccessoryIconKeyboard.imageset/ConversationInputFieldKeyboardIcon@3x.png b/Images.xcassets/Chat/Input/Text/AccessoryIconKeyboard.imageset/ConversationInputFieldKeyboardIcon@3x.png new file mode 100644 index 0000000000000000000000000000000000000000..005f85dabc8d0b30e5cf5d812ede6baa78f8a0aa GIT binary patch literal 714 zcmeAS@N?(olHy`uVBq!ia0vp^;Xv%c!3-p~Oq(eHq*?-eLR^9L-lJ#s96rAL;ITc2 zfavI+gGYBCJPHIrE>Ljq;p6+SUImi-jvU`}@Yw(V|AFE_0Fnivqk9e?-F^7@p2H{i zLQFUa)CfWc51!g{2&m;aSj%ys`Xfhf0L6D7IRnwV7ih(a6F`vczZNYO0k>#oaM19>q`os zQ88DHwtGqrw1C>=iv=aYgpa)2fXz zE3Xz!{5B`!l|oHP@!7TKOxN_c?f0n6D?PLI^rNb0Vc&~(x@6D%bm!G9@BX7p|G$gX z3(r^^G%wmV%f4HBM)cp)OP#!z+HC*z%!r|xRqJ_9{>;C;j?6{Rrn^5Ze{$csDCXh! z*)rj;K0iA3x%&V6hyU)c-?Lx!_|$&>@A>cZYku_9{pt3eo6h@ljqe2CA2#~OpI63B zFSvbIZt>gl=m!z8hhAyqwSO!-z#AcZ^p%}kq7AFe`rj3EwQ}`W2MfP?<=pmX)2?59 zuN#;Oj$5ydez*19uG_ml#J#?;d+qLpc4v0_Us&b5;#t6k^%wWP$=)*S`~CKv|My+A p{l4?W#*#xhU95kn)E=2X-~O9?=xl|&NuV^!;OXk;vd$@?2>`0~gckq+ literal 0 HcmV?d00001 diff --git a/Images.xcassets/Chat/Input/Text/AccessoryIconKeyboard.imageset/ic_keyboard.pdf b/Images.xcassets/Chat/Input/Text/AccessoryIconKeyboard.imageset/ic_keyboard.pdf deleted file mode 100644 index b713289f1b9f72b54cc09c6fac198bf20183e0ef..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 6970 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 N002ovPDHLkV1hl;QuhD= literal 0 HcmV?d00001 diff --git a/Images.xcassets/Chat/Input/Text/AccessoryIconStickers.imageset/ic_sticker.pdf b/Images.xcassets/Chat/Input/Text/AccessoryIconStickers.imageset/ic_sticker.pdf deleted file mode 100644 index ee4036d5e910ef4a99e558d3864f8714540cf24f..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 8119 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 P5tNVs6b@I=RD}K)d5!1i diff --git a/Images.xcassets/Chat/Input/Text/AccessoryIconTimer.imageset/ModernConversationSecretAccessoryTimer@2x.png b/Images.xcassets/Chat/Input/Text/AccessoryIconTimer.imageset/ModernConversationSecretAccessoryTimer@2x.png index e0ff0e6e63f34d370230b759bbe19db5b2330830..af2c0d50b10f5cdf8052109b4c017023dcc5dcc9 100644 GIT binary patch literal 612 zcmeAS@N?(olHy`uVBq!ia0vp^20(1W!3-pS`+6@1QY`^KA+A7r&!J=*+Gr*-?=~z&Q%YhxAFHdsoc3;+0Y#DN#}+}Dgy&!vZsq< zNCo5FsjZi88wj+l|GBEc@XVPH|IUZ6b9>C2x!^;+bLU%8nKw7@KMdww@a^WkqaT^Y z_aCnJ-g_}e^_=S3w8eS)o}1@1*m%E{bbYzv!Kp)Xm)y|Y&Xg+bQbt?ZBWANJP?*D9u^YggZu=D<3&iOaI$V+is3Gpa$)~={f)o_}>tI{z-N@<6!WzgS>JFh1`xzrRBbx6x2Lbb3-#m~$6!lex| z%a(b3tTc+h*EDUr$pm*PkEoCdVxhtUS6Hs3v22}Lq1?UwRE2Th_TMuag$y^fd=WAg fDScDtv5(3Bge;HKRnA$lPCA~PU!BQ)Z06$r)Oq&_r$KQNkH{rGy$l-uWu?)u&-|t z5OjBgMEd(@c6CkY>Y51D($&=uWOR2=?&;~@wr$&l3A4MprUKP~&7U-F+O+=usX&dZ zR;>aG0uj&zqhp+WKsOnb1o;IsG_dfxD&;adrYQP&Cx{d&J5{IGsZ^S=msd$vRV0<< zIz+RJOSm&-3TldS+7+9>@b=x#z`$ta>Eakt!8r9Y>$KYeJZ=yF&pLF*=dHu?4gc?k z+D(2Q@vx>n*H-An?Za{36XG~3rVIDZ()C$w*_Bdv{hwZmkohr@W4#f-m^Ujaz4}`C zYwwHfvaXKo89FbwEx%l5e$rrTMWUemslRU+nnPMk7)t6Qj?DJC)A(@7qDiMxG6X+9 zU;igNq&YM;{gw6#*Hd2;B>pWwooegCvrt|5d*Y(ST5n2B8tZgcGB$f@E{M95%)qND z<*X$xu*9Ixq-kx9gJSc9pTQk>p~FQ+fS1|wdI~LX$A;+0__J3r;oea>{(L(jIZq9OuN9!jY0D@re~=yxh1|@pzG=Bw||@K-bkx`;QhSd z={xhaXZCKJuE~GyTTVgByWV+c_CEZ2=tuhJ%5S#+4%V;d6)ezDWMBb?JcFmJpUXO@ GgeCxD%L_OF diff --git a/Images.xcassets/Chat/Input/Text/AccessoryIconTimer.imageset/ModernConversationSecretAccessoryTimer@3x.png b/Images.xcassets/Chat/Input/Text/AccessoryIconTimer.imageset/ModernConversationSecretAccessoryTimer@3x.png index 3e47b2b27b7607b97be502922e5e187c5828f2ee..7953c536bb9d26e266bd45477d57e3c3f59e7e0f 100644 GIT binary patch literal 956 zcmeAS@N?(olHy`uVBq!ia0vp^9zg8J!3-p~WG%=5QilV4LR^9L?jvXR96Giehz=gz zd-Uj@gGYhvGiT21J$M2r4w5}vpe z!?7gDFPK4Y_s{?GpZ9RNRW3Mw|BYC|A-m1L9S=K5F7y15>#8KoR{ZzzR95yxCedT> z%Q-g+wK0B=vdVk*)YiJeeoBswviME`V+{rdrgTpi$B+ufH`iN>J{t(IJjh++G(##a zZCTO%|7-tU+?jCe+ONqE>kfPFdCcLb{>Soq=#ij9T``Yk1iz{_72jE*Z*Fn??b3TM zepUCZ`=EXx)Q`E4K1&$uXI z_xNIZNKJ>l?=r75&$wBl&ZK+!s56-VIT5+eVeK?|Pv?R{)oaoX((9*oG{4fw-F;ZU zEPClh!S!XT>HOOde++5A9XDxL=qA3mt&eKwv;Td#`1{;9Uq$v9X@C21KzW&c@4>@z z%ek1Qy!rX5_w(d`KRD&2tKWHj&_4AmQZYs#Y}35150zoJWD=VV!fzSx`Ls!2>|wLm zrsz)}JiKM46>9|Cf?n=1HCEO)G2@gvt)2Q{+Ew{|2UIv}|N4sQl?OeSPIKh76nytU zWNNFG0k_nNu#R8T^I2^=-nY)!U${8Z$+lml`HY852sv` z-|EvG^=q}roRn|3mpSIntd~3TT9BXXF3iKm1)<%rqB3g&VGlPV+wyJkFfz4 ZgI2fm6p`q+?}6!;!PC{xWt~$(699p~`R@P# literal 915 zcmeAS@N?(olHy`uVBq!ia0vp^20(1e!3<&v&R}C;U}OsL32_B-ySw|lyC?VbOq?`n zQg`=6Ao~CRe|Pr;Fq+iUGqbO+Z~y-N^XJb8iv!gF1t$OzP-SoLl!+68S{8xX6Z`x7 zr%s*P-#-Ot8d!V(%$YNRB0$Bxy^~h0TGiV-dCHV2{rxk0d#84F_4o8l?(LljRNU7G zk_8$CRN2=z2Pgw_{7PRLGGL|VM2fZB%pS%%O?Px4R#OEVUvL( zJw5#sCQJhw2-Y~Es|%J8!qjxQE3GtnEHm^9SS6|~*usS+WivfXa?P0K3WdB3xq_pd z;ye^%)m=)Q(%D^u92`9LZ0pUfrGiD+o!$JB#H6S48ZrUH`<17QV@L(#)@#k1o&<=r zKK!~pH~#jvvm5XI4_)TB^zx1HlObork8$~JS{Od{vB3Xz4<0cTva+B1&;2CH;z*Iy zg%xjJnFg09f9bjFyYjW%CFMp9vhzsfR(Jb${9agNH>?Hn6c?0a(Zz|3O|YDH24j2#&cc}xmw>WmjI{AM&|5ZWv4 z(k;*075HB)o#FT|jRnaK#-5o8q4MloxRxx{IZ!&`fT=^+d z>Djk7nda_pOWob})_dAp?`@wWw|)MbozHuJZ}Yi!#t59`Kt`a51GZd(gXR}7x6elF{r G5}E)|=BOY5 diff --git a/TelegramUI/CallListController.swift b/TelegramUI/CallListController.swift index 6cc40513b8..f665ab0c3f 100644 --- a/TelegramUI/CallListController.swift +++ b/TelegramUI/CallListController.swift @@ -82,7 +82,7 @@ public final class CallListController: ViewController { self.segmentedTitleView.color = self.presentationData.theme.rootController.navigationBar.accentTextColor if let isEmpty = self.isEmpty, isEmpty { - self.title = self.presentationData.strings.Calls_TabTitle + self.navigationItem.title = self.presentationData.strings.Calls_TabTitle } else { if self.editingMode { self.navigationItem.leftBarButtonItem = UIBarButtonItem(title: self.presentationData.strings.Common_Done, style: .done, target: self, action: #selector(self.donePressed)) @@ -127,9 +127,9 @@ public final class CallListController: ViewController { if empty { strongSelf.navigationItem.setLeftBarButton(nil, animated: true) - strongSelf.title = strongSelf.presentationData.strings.Calls_TabTitle + strongSelf.navigationItem.title = strongSelf.presentationData.strings.Calls_TabTitle } else { - strongSelf.title = "" + strongSelf.navigationItem.title = "" strongSelf.navigationItem.titleView = strongSelf.segmentedTitleView if strongSelf.editingMode { strongSelf.navigationItem.leftBarButtonItem = UIBarButtonItem(title: strongSelf.presentationData.strings.Common_Done, style: .done, target: strongSelf, action: #selector(strongSelf.donePressed)) diff --git a/TelegramUI/ChannelBannedMemberController.swift b/TelegramUI/ChannelBannedMemberController.swift index 630295a22f..719b40aeda 100644 --- a/TelegramUI/ChannelBannedMemberController.swift +++ b/TelegramUI/ChannelBannedMemberController.swift @@ -266,7 +266,7 @@ private func channelBannedMemberControllerEntries(presentationData: Presentation if let updatedFlags = state.updatedFlags { currentRightsFlags = updatedFlags } else if let initialParticipant = initialParticipant, case let .member(_, _, _, maybeBanInfo) = initialParticipant, let banInfo = maybeBanInfo { - currentRightsFlags = banInfo.flags + currentRightsFlags = banInfo.rights.flags } else { currentRightsFlags = [.banSendMessages, .banSendGifs, .banSendGames, .banSendInline, .banSendStickers, .banSendMedia, .banEmbedLinks] } @@ -275,7 +275,7 @@ private func channelBannedMemberControllerEntries(presentationData: Presentation if let updatedTimeout = state.updatedTimeout { currentTimeout = updatedTimeout } else if let initialParticipant = initialParticipant, case let .member(_, _, _, maybeBanInfo) = initialParticipant, let banInfo = maybeBanInfo { - currentTimeout = banInfo.untilDate + currentTimeout = banInfo.rights.untilDate } else { currentTimeout = Int32.max } diff --git a/TelegramUI/ChatController.swift b/TelegramUI/ChatController.swift index 73fb2731e2..6dd61d2f9c 100644 --- a/TelegramUI/ChatController.swift +++ b/TelegramUI/ChatController.swift @@ -1899,7 +1899,7 @@ public class ChatController: TelegramController { let controller = generator({ controller in return presentOverlayController!(controller) }) - let legacyController = LegacyController(legacyController: controller, presentation: .modal(animateIn: false)) + let legacyController = LegacyController(legacyController: controller, presentation: .modal(animateIn: true)) presentOverlayController = { [weak legacyController] controller in if let legacyController = legacyController { diff --git a/TelegramUI/ChatSecretAutoremoveTimerActionSheet.swift b/TelegramUI/ChatSecretAutoremoveTimerActionSheet.swift index 517d165b25..8013bff008 100644 --- a/TelegramUI/ChatSecretAutoremoveTimerActionSheet.swift +++ b/TelegramUI/ChatSecretAutoremoveTimerActionSheet.swift @@ -136,7 +136,11 @@ private final class AutoremoveTimeoutSelectorItemNode: ActionSheetItemNode, UIPi } func pickerView(_ pickerView: UIPickerView, attributedTitleForRow row: Int, forComponent component: Int) -> NSAttributedString? { - return NSAttributedString(string: timeIntervalString(strings: self.strings, value: timeoutValues[row]), font: Font.medium(15.0), textColor: UIColor.black) + if timeoutValues[row] == 0 { + return NSAttributedString(string: self.strings.Profile_MessageLifetimeForever, font: Font.medium(15.0), textColor: UIColor.black) + } else { + return NSAttributedString(string: timeIntervalString(strings: self.strings, value: timeoutValues[row]), font: Font.medium(15.0), textColor: UIColor.black) + } } func pickerView(_ pickerView: UIPickerView, didSelectRow row: Int, inComponent component: Int) { diff --git a/TelegramUI/ChatTextInputPanelNode.swift b/TelegramUI/ChatTextInputPanelNode.swift index 95d25a0f2a..731867f93c 100644 --- a/TelegramUI/ChatTextInputPanelNode.swift +++ b/TelegramUI/ChatTextInputPanelNode.swift @@ -105,7 +105,7 @@ struct ChatTextInputPanelState: Equatable { private final class AccessoryItemIconButton: HighlightableButton { private let item: ChatTextInputAccessoryItem - init(item: ChatTextInputAccessoryItem, theme: PresentationTheme) { + init(item: ChatTextInputAccessoryItem, theme: PresentationTheme, strings: PresentationStrings) { self.item = item super.init(frame: CGRect()) @@ -122,14 +122,15 @@ private final class AccessoryItemIconButton: HighlightableButton { self.setImage(nil, for: []) self.titleLabel?.font = Font.regular(12.0) self.setTitleColor(theme.chat.inputPanel.inputControlColor, for: []) - self.setTitle("\(timeout)s", for: []) + self.setTitle(shortTimeIntervalString(strings: strings, value: timeout), for: []) } else { self.setImage(PresentationResourcesChat.chatInputTextFieldTimerImage(theme), for: []) - } + self.imageEdgeInsets = UIEdgeInsets(top: 0.0, left: 0.0, bottom: 1.0, right: 0.0) + } } } - func updateTheme(theme: PresentationTheme) { + func updateThemeAndStrings(theme: PresentationTheme, strings: PresentationStrings) { switch self.item { case .keyboard: self.setImage(PresentationResourcesChat.chatInputTextFieldKeyboardImage(theme), for: []) @@ -142,9 +143,10 @@ private final class AccessoryItemIconButton: HighlightableButton { self.setImage(nil, for: []) self.titleLabel?.font = Font.regular(12.0) self.setTitleColor(theme.chat.inputPanel.inputControlColor, for: []) - self.setTitle("\(timeout)s", for: []) + self.setTitle(shortTimeIntervalString(strings: strings, value: timeout), for: []) } else { self.setImage(PresentationResourcesChat.chatInputTextFieldTimerImage(theme), for: []) + self.imageEdgeInsets = UIEdgeInsets(top: 0.0, left: 0.0, bottom: 1.0, right: 0.0) } } } @@ -197,6 +199,7 @@ class ChatTextInputPanelNode: ChatInputPanelNode, ASEditableTextNodeDelegate { private var extendedSearchLayout = false private var theme: PresentationTheme? + private var strings: PresentationStrings? var inputTextState: ChatTextInputState { if let textInputNode = self.textInputNode { @@ -437,7 +440,13 @@ class ChatTextInputPanelNode: ChatInputPanelNode, ASEditableTextNodeDelegate { self.audioRecordingCancelIndicator?.updateTheme(theme: interfaceState.theme) for (_, button) in self.accessoryItemButtons { - button.updateTheme(theme: interfaceState.theme) + button.updateThemeAndStrings(theme: interfaceState.theme, strings: interfaceState.strings) + } + } else if self.strings !== interfaceState.strings { + self.strings = interfaceState.strings + + for (_, button) in self.accessoryItemButtons { + button.updateThemeAndStrings(theme: interfaceState.theme, strings: interfaceState.strings) } } @@ -491,7 +500,7 @@ class ChatTextInputPanelNode: ChatInputPanelNode, ASEditableTextNodeDelegate { } } if itemAndButton == nil { - let button = AccessoryItemIconButton(item: item, theme: interfaceState.theme) + let button = AccessoryItemIconButton(item: item, theme: interfaceState.theme, strings: interfaceState.strings) button.addTarget(self, action: #selector(self.accessoryItemButtonPressed(_:)), for: [.touchUpInside]) itemAndButton = (item, button) } diff --git a/TelegramUI/MediaPlayerNode.swift b/TelegramUI/MediaPlayerNode.swift index a135484db1..4030a9fe7f 100644 --- a/TelegramUI/MediaPlayerNode.swift +++ b/TelegramUI/MediaPlayerNode.swift @@ -246,6 +246,18 @@ final class MediaPlayerNode: ASDisplayNode { deinit { assert(Queue.mainQueue().isCurrent()) + + if let (takeFrameQueue, _) = self.takeFrameAndQueue { + if let videoLayer = self.videoLayer { + takeFrameQueue.async { + videoLayer.flushAndRemoveImage() + + takeFrameQueue.after(1.0, { + videoLayer.flushAndRemoveImage() + }) + } + } + } } override var frame: CGRect { diff --git a/TelegramUI/NumericFormat.swift b/TelegramUI/NumericFormat.swift index 9098d0eb75..46aff24ef1 100644 --- a/TelegramUI/NumericFormat.swift +++ b/TelegramUI/NumericFormat.swift @@ -34,6 +34,20 @@ func timeIntervalString(strings: PresentationStrings, value: Int32) -> String { } } +func shortTimeIntervalString(strings: PresentationStrings, value: Int32) -> String { + if value < 60 { + return strings.MessageTimer_ShortSeconds(max(1, value)) + } else if value < 60 * 60 { + return strings.MessageTimer_ShortMinutes(max(1, value / 60)) + } else if value < 60 * 60 * 24 { + return strings.MessageTimer_ShortHours(max(1, value / (60 * 60))) + } else if value < 60 * 60 * 24 * 7 { + return strings.MessageTimer_ShortDays(max(1, value / (60 * 60 * 24))) + } else { + return strings.MessageTimer_ShortWeeks(max(1, value / (60 * 60 * 24 * 7))) + } +} + func muteForIntervalString(strings: PresentationStrings, value: Int32) -> String { if value < 60 * 60 { return strings.MuteFor_Minutes(max(1, value / 60))