diff --git a/YuMi/Modules/YMMessage/View/Session/Content/MessageContentText.m b/YuMi/Modules/YMMessage/View/Session/Content/MessageContentText.m index b03a996d..e371bcc7 100644 --- a/YuMi/Modules/YMMessage/View/Session/Content/MessageContentText.m +++ b/YuMi/Modules/YMMessage/View/Session/Content/MessageContentText.m @@ -58,7 +58,10 @@ } else { NSString * messageText = model.message.text; if (!messageText || (model.message.messageType != NIMMessageTypeTip && model.message.messageType != NIMMessageTypeText)) { - messageText = YMLocalizedString(@"MessageContentText0"); +// messageText = YMLocalizedString(@"MessageContentText0"); + messageText = [NSString stringWithFormat:@"%@\n%@", + YMLocalizedString(@"MessageContentText0"), + model.message.rawAttachContent]; } QEmotionHelper *faceManager = [QEmotionHelper sharedEmotionHelper]; NSMutableAttributedString * attribute = [faceManager attributedStringByText:messageText font:[UIFont systemFontOfSize:13]]; diff --git a/YuMi/Modules/YMMessage/View/Session/Content/SesssionModel/MessageHeadlinesTextModel.m b/YuMi/Modules/YMMessage/View/Session/Content/SesssionModel/MessageHeadlinesTextModel.m index 389b7222..46de4ac3 100644 --- a/YuMi/Modules/YMMessage/View/Session/Content/SesssionModel/MessageHeadlinesTextModel.m +++ b/YuMi/Modules/YMMessage/View/Session/Content/SesssionModel/MessageHeadlinesTextModel.m @@ -35,7 +35,10 @@ self.isSelf = [[NIMSDK sharedSDK].loginManager.currentAccount isEqualToString:message.from]; NSString * messageText = message.text; if (!messageText) { - messageText = YMLocalizedString(@"MessageTextModel0"); +// messageText = YMLocalizedString(@"MessageContentText0"); + messageText = [NSString stringWithFormat:@"%@\n%@", + YMLocalizedString(@"MessageContentText0"), + message.rawAttachContent]; } CGFloat width = [UILabel getWidthWithText:messageText height:kGetScaleWidth(36) font:kFontMedium(14)]; diff --git a/YuMi/Modules/YMMessage/View/Session/Content/SesssionModel/MessageTextClickModel.m b/YuMi/Modules/YMMessage/View/Session/Content/SesssionModel/MessageTextClickModel.m index 236c27e7..b9bfdcd3 100644 --- a/YuMi/Modules/YMMessage/View/Session/Content/SesssionModel/MessageTextClickModel.m +++ b/YuMi/Modules/YMMessage/View/Session/Content/SesssionModel/MessageTextClickModel.m @@ -25,7 +25,10 @@ } } if (!messageText) { - messageText = YMLocalizedString(@"MessageTextClickModel0"); +// messageText = YMLocalizedString(@"MessageContentText0"); + messageText = [NSString stringWithFormat:@"%@\n%@", + YMLocalizedString(@"MessageContentText0"), + message.rawAttachContent]; } CGSize dstRect = CGSizeMake(CONTENT_WIDTH_MAX - MESSAGE_PADDING * 2, MAXFLOAT); diff --git a/YuMi/Modules/YMMessage/View/Session/Content/SesssionModel/MessageTextModel.m b/YuMi/Modules/YMMessage/View/Session/Content/SesssionModel/MessageTextModel.m index 092613bb..11c267dd 100644 --- a/YuMi/Modules/YMMessage/View/Session/Content/SesssionModel/MessageTextModel.m +++ b/YuMi/Modules/YMMessage/View/Session/Content/SesssionModel/MessageTextModel.m @@ -15,7 +15,10 @@ self.messageType = SessionMessageType_Text; NSString * messageText = message.text; if (!messageText) { - messageText = YMLocalizedString(@"MessageTextModel0"); +// messageText = YMLocalizedString(@"MessageContentText0"); + messageText = [NSString stringWithFormat:@"%@\n%@", + YMLocalizedString(@"MessageContentText0"), + message.rawAttachContent]; } CGSize dstRect = CGSizeMake(CONTENT_WIDTH_MAX - MESSAGE_PADDING * 2, MAXFLOAT); QEmotionHelper *faceManager = [QEmotionHelper sharedEmotionHelper]; diff --git a/YuMi/Modules/YMMonents/View/Cell/XPMomentsTableViewCell.m b/YuMi/Modules/YMMonents/View/Cell/XPMomentsTableViewCell.m index e5bf1300..61371127 100644 --- a/YuMi/Modules/YMMonents/View/Cell/XPMomentsTableViewCell.m +++ b/YuMi/Modules/YMMonents/View/Cell/XPMomentsTableViewCell.m @@ -103,9 +103,7 @@ [self.topicView mas_makeConstraints:^(MASConstraintMaker *make) { make.height.mas_equalTo(kMOMENTS_TEXT_TOPIC_HEIGHT); }]; -// [self.photoView mas_makeConstraints:^(MASConstraintMaker *make) { -// make.width.mas_equalTo(KScreenWidth-30); -// }]; + [self.toolBarView mas_makeConstraints:^(MASConstraintMaker *make) { make.leading.trailing.mas_equalTo(self.backView); make.top.mas_equalTo(self.stackView.mas_bottom).mas_offset(10); @@ -257,6 +255,7 @@ } } } + -(void)setMineMomentsInfo:(MomentsInfoModel *)mineMonentsInfo{ _mineMomentsInfo = mineMonentsInfo; if (_mineMomentsInfo) { @@ -277,9 +276,9 @@ make.height.mas_equalTo(0); }]; } - + CGFloat contentHeight = [XPMomentsLayoutConfig momentsContentHeight:_mineMomentsInfo] + 24; - + self.topicView.hidden = _mineMomentsInfo.worldId <= 0; if(_mineMomentsInfo.squareTop && _mineMomentsInfo.content.length == 0){ @@ -291,9 +290,9 @@ make.height.mas_equalTo(contentHeight); }]; } - } } + - (void)setMomentsInfo:(MomentsInfoModel *)monentsInfo { _momentsInfo = monentsInfo; if (_momentsInfo) { @@ -318,7 +317,7 @@ CGFloat contentHeight = [XPMomentsLayoutConfig momentsContentHeight:_momentsInfo] + 24; - self.topicView.hidden = monentsInfo.worldId <= 0; + self.topicView.hidden = monentsInfo.worldId <= 0; if(_momentsInfo.topicTop && _momentsInfo.content.length == 0){ [self.textView mas_updateConstraints:^(MASConstraintMaker *make) { @@ -329,7 +328,6 @@ make.height.mas_equalTo(contentHeight); }]; } - } } diff --git a/YuMi/Modules/YMMonents/View/XPMomentsLatestViewController.m b/YuMi/Modules/YMMonents/View/XPMomentsLatestViewController.m index 9c48f6a5..60f5d37b 100644 --- a/YuMi/Modules/YMMonents/View/XPMomentsLatestViewController.m +++ b/YuMi/Modules/YMMonents/View/XPMomentsLatestViewController.m @@ -189,7 +189,7 @@ UIKIT_EXTERN NSString *kRequestTicket; }]; if (_momentsInfo) { NSInteger row = [self.datasource indexOfObject:_momentsInfo]; - [self.tableView reloadRowsAtIndexPaths:@[[NSIndexPath indexPathForRow:row inSection:0]] withRowAnimation:UITableViewRowAnimationNone]; + [self.tableView reloadRowsAtIndexPaths:@[[NSIndexPath indexPathForRow:row inSection:0]] withRowAnimation:UITableViewRowAnimationFade]; } } diff --git a/YuMi/Modules/YMRoom/View/AnimationView/Model/PIUniversalBannerModel.h b/YuMi/Modules/YMRoom/View/AnimationView/Model/PIUniversalBannerModel.h index 56099a30..0359b8ce 100644 --- a/YuMi/Modules/YMRoom/View/AnimationView/Model/PIUniversalBannerModel.h +++ b/YuMi/Modules/YMRoom/View/AnimationView/Model/PIUniversalBannerModel.h @@ -8,6 +8,10 @@ #import #import NS_ASSUME_NONNULL_BEGIN + + + + @class PIUniversalBannerItemModel; @interface PIUniversalBannerModel : NSObject @property(nonatomic,copy) NSDictionary *template; diff --git a/YuMi/Modules/YMRoom/View/AnimationView/RoomAnimationView.m b/YuMi/Modules/YMRoom/View/AnimationView/RoomAnimationView.m index ce80fdb6..bf9e7503 100644 --- a/YuMi/Modules/YMRoom/View/AnimationView/RoomAnimationView.m +++ b/YuMi/Modules/YMRoom/View/AnimationView/RoomAnimationView.m @@ -137,7 +137,6 @@ XPRoomGraffitiGiftAnimationViewDelegate @property(nonatomic, assign) BOOL isPlayOfB; @property(nonatomic, strong) NSMutableArray *animationListB; // 玩法 @property(nonatomic, assign) CGFloat broadCastHieght; -@property(nonatomic, assign) BOOL isLuckyGiftAnimation; @property (nonatomic, strong) NetImageView *imageLoader; @property (nonatomic, strong) SVGAImageView *datingEffectView; @property (nonatomic, strong) NSMutableArray *sailingQueue; @@ -147,8 +146,8 @@ XPRoomGraffitiGiftAnimationViewDelegate @property (nonatomic,strong) SVGAImageView *luckyGiftEffectView; ///福袋礼物送礼物的特效 @property (nonatomic, strong) VAPView *luckyVapGiftEffectView; ///福袋礼物VAP特效 -@property(nonatomic, strong) PIUniversalBannerView *tempUniversalBanner; // 防止内存没有被持有而过早回收 - +//@property(nonatomic, strong) PIUniversalBannerView *tempUniversalBanner; // 防止内存没有被持有而过早回收 +@property(nonatomic, strong) NSMutableArray * universalBannerViewCaches; @end @implementation RoomAnimationView @@ -165,10 +164,11 @@ XPRoomGraffitiGiftAnimationViewDelegate [self pop_removeAllAnimations]; - if (_giftEffectTimer) { - dispatch_source_cancel(self.giftEffectTimer); - self.giftEffectTimer = nil; + if (_giftEffectTimer && !dispatch_source_testcancel(_giftEffectTimer)) { + dispatch_source_cancel(_giftEffectTimer); + _giftEffectTimer = nil; } + if (_giftEffectsQueue) { self.giftEffectsQueue = NULL; } @@ -463,6 +463,54 @@ XPRoomGraffitiGiftAnimationViewDelegate } #pragma mark - Method: Banner +- (void)inserBannerModelToQueue:(id)obj { + [self.roomBannertModelsQueueV2 addObject:obj]; + if (!self.isRoomBannerV2Displaying) { + [self processNextRoomEffectAttachment]; + } +} + + +- (void)sortBannerQueue { +#if DEBUG + AttachmentModel *attachmentModel = [self.roomBannertModelsQueueV2 xpSafeObjectAtIndex:0]; + if (attachmentModel) { + NSLog(@"内容:%@ | %@", [attachmentModel.data objectForKey:@"roomUid"], [attachmentModel.data objectForKey:@"uidList"]); + } +#endif + // TODO: 用户本人飘屏>房间内其他人飘屏>房间外飘屏 + // MARK: 不一定能确定是 本人 触发的飘屏,飘屏的 ID 不一定存在。 + RoomInfoModel *roomInfo = self.hostDelegate.getRoomInfo; + NSString *currentRoomUid = @(roomInfo.uid).stringValue; + NSString *currentUid = [AccountInfoStorage instance].getUid; + [self.roomBannertModelsQueueV2 sortUsingComparator:^NSComparisonResult(AttachmentModel * _Nonnull obj1, AttachmentModel * _Nonnull obj2) { + + // 检查 obj1 的属性 + NSArray *obj1UidList = [obj1.data valueForKey:@"uidList"]; + NSString *obj1RoomUid = [obj1.data valueForKey:@"roomUid"]; + BOOL obj1IsCurrentUser = obj1UidList && [obj1UidList containsObject:currentUid]; + BOOL obj1IsCurrentRoom = obj1RoomUid && [obj1RoomUid isEqualToString:currentRoomUid]; + + // 检查 obj2 的属性 + NSArray *obj2UidList = [obj2.data valueForKey:@"uidList"]; + NSString *obj2RoomUid = [obj2.data valueForKey:@"roomUid"]; + BOOL obj2IsCurrentUser = obj2UidList && [obj2UidList containsObject:currentUid]; + BOOL obj2IsCurrentRoom = obj2RoomUid && [obj2RoomUid isEqualToString:currentRoomUid]; + + if (obj1IsCurrentUser && !obj2IsCurrentUser) { + return NSOrderedAscending; + } else if (!obj1IsCurrentUser && obj2IsCurrentUser) { + return NSOrderedDescending; + } else if (obj1IsCurrentRoom && !obj2IsCurrentRoom) { + return NSOrderedAscending; + } else if (!obj1IsCurrentRoom && obj2IsCurrentRoom) { + return NSOrderedDescending; + } else { + return NSOrderedSame; + } + }]; +} + - (void)processNextRoomEffectAttachment { // 检查队列是否有元素 if (self.roomBannertModelsQueueV2.count == 0) { @@ -473,6 +521,8 @@ XPRoomGraffitiGiftAnimationViewDelegate if (self.isRoomBannerV2Displaying) { return; } + + [self sortBannerQueue]; // 从队列中取出第一个元素并移出队列 AttachmentModel *nextAttachment = [self.roomBannertModelsQueueV2 firstObject]; @@ -510,12 +560,12 @@ XPRoomGraffitiGiftAnimationViewDelegate } } -- (void)receiveLuckyPackageBanner:(AttachmentModel *)obj { - [self.roomBannertModelsQueueV2 addObject:obj]; - if (!self.isRoomBannerV2Displaying) { - [self processNextRoomEffectAttachment]; - } -} +//- (void)receiveLuckyPackageBanner:(AttachmentModel *)obj { +// [self.roomBannertModelsQueueV2 addObject:obj]; +// if (!self.isRoomBannerV2Displaying) { +// [self processNextRoomEffectAttachment]; +// } +//} - (void)playLuckyPackageBanner:(AttachmentModel *)obj { if (!obj.data) { @@ -539,10 +589,7 @@ XPRoomGraffitiGiftAnimationViewDelegate } - (void)receiveRoomGiftBanner:(AttachmentModel *)obj { - [self.roomBannertModelsQueueV2 addObject:obj]; - if (!self.isRoomBannerV2Displaying) { - [self processNextRoomEffectAttachment]; - } + [self inserBannerModelToQueue:obj]; } - (void)playRoomGiftBanner:(AttachmentModel *)obj { @@ -563,10 +610,7 @@ XPRoomGraffitiGiftAnimationViewDelegate } - (void)receiveCPEvent:(AttachmentModel *)attachment { - [self.roomBannertModelsQueueV2 addObject:attachment]; - if (!self.isRoomBannerV2Displaying) { - [self processNextRoomEffectAttachment]; - } + [self inserBannerModelToQueue:attachment]; } - (void)playCPBinding:(AttachmentModel *)attachment { @@ -611,10 +655,7 @@ XPRoomGraffitiGiftAnimationViewDelegate } - (void)receiveLuckGiftBanner:(AttachmentModel *)attachment { - [self.roomBannertModelsQueueV2 addObject:attachment]; - if (!self.isRoomBannerV2Displaying) { - [self processNextRoomEffectAttachment]; - } + [self inserBannerModelToQueue:attachment]; } - (void)playLuckyWinningBanner:(AttachmentModel *)nextAttachment { @@ -654,10 +695,7 @@ XPRoomGraffitiGiftAnimationViewDelegate } - (void)receiveGameBanner:(AttachmentModel *)attachment { - [self.roomBannertModelsQueueV2 addObject:attachment]; - if (!self.isRoomBannerV2Displaying) { - [self processNextRoomEffectAttachment]; - } + [self inserBannerModelToQueue:attachment]; } - (void)playGameBanner:(AttachmentModel *)attachment { @@ -835,7 +873,7 @@ XPRoomGraffitiGiftAnimationViewDelegate } } else { if (![NSString isEmpty:receiveInfo.mp4Url] || ![NSString isEmpty:receiveInfo.vggUrl]) { - [self.svgaQueue addObject:receiveInfo]; + [self addToSvgaQueue:receiveInfo]; } } @@ -862,7 +900,7 @@ XPRoomGraffitiGiftAnimationViewDelegate model.isBatch = receiveInfo.isBatch; model.targetAvatar = receiveInfo.targetAvatar; model.targetNick = receiveInfo.targetNick; - [self.svgaQueue addObject:model]; + [self addToSvgaQueue:model]; } else if (obj.hasVggPic && roomInfo.hasAnimationEffect) { GiftReceiveInfoModel * model = [[GiftReceiveInfoModel alloc] init]; model.mp4Url = obj.viewUrl; @@ -874,7 +912,7 @@ XPRoomGraffitiGiftAnimationViewDelegate model.isBatch = receiveInfo.isBatch; model.targetAvatar = receiveInfo.targetAvatar; model.targetNick = receiveInfo.targetNick; - [self.svgaQueue addObject:model]; + [self addToSvgaQueue:model]; } }]; } @@ -907,7 +945,7 @@ XPRoomGraffitiGiftAnimationViewDelegate [self createGiftSvgaAnimation:receiveModel]; }); }else { - [self.svgaQueue removeObjectAtIndex:0]; + [self removeFromSvgaQueueAtIndex:0]; self.isPlayingGiftEffect = NO; } } @@ -965,11 +1003,7 @@ XPRoomGraffitiGiftAnimationViewDelegate @kWeakify(self); dispatch_after(dispatch_time(DISPATCH_TIME_NOW, (int64_t)(0.25 * NSEC_PER_SEC)), dispatch_get_main_queue(), ^{ @kStrongify(self); - dispatch_async(self.giftEffectsQueue, ^{ - if (self.svgaQueue.count > 0) { - [self.svgaQueue removeObjectAtIndex:0]; - } - }); + [self removeFromSvgaQueueAtIndex:0]; }); } @@ -1103,6 +1137,8 @@ XPRoomGraffitiGiftAnimationViewDelegate self.vapGiftEffectView.hidden = YES; [self.vapGiftEffectView setMute:YES]; [self.vapGiftEffectView stopHWDMP4]; + [self.vapGiftEffectView removeFromSuperview]; + self.vapGiftEffectView = nil; } - (void)playPAGFailure { @@ -2045,6 +2081,20 @@ XPRoomGraffitiGiftAnimationViewDelegate return _svgaQueue; } +- (void)addToSvgaQueue:(GiftReceiveInfoModel *)model { + dispatch_async(self.giftEffectsQueue, ^{ + [self.svgaQueue addObject:model]; + }); +} + +- (void)removeFromSvgaQueueAtIndex:(NSInteger)index { + dispatch_async(self.giftEffectsQueue, ^{ + if (index < self.svgaQueue.count) { + [self.svgaQueue removeObjectAtIndex:index]; + } + }); +} + - (XPRoomGiftAnimationParser *)vapParser { if (!_vapParser) { _vapParser = [[XPRoomGiftAnimationParser alloc] init]; @@ -2203,7 +2253,6 @@ XPRoomGraffitiGiftAnimationViewDelegate - (void)createBigPrizeAnimation:(PIBaseAnimationViewModel *)prizeModel { self.isPlayOfB = YES; CGFloat top = (kNavigationHeight + 15); - self.isLuckyGiftAnimation = YES; XPRoomLuckyBigPrizeView * luckyGiftEffectView = [[XPRoomLuckyBigPrizeView alloc] initWithFrame:CGRectMake(KScreenWidth, top, 375, 71)]; luckyGiftEffectView.delegate = self; [self.topContainer addSubview:luckyGiftEffectView]; @@ -2671,7 +2720,10 @@ XPRoomGraffitiGiftAnimationViewDelegate BOOL isSvga = [model.resourceType isEqualToString:@"SVGA"]; bannerView.isSvga = isSvga; bannerView.delegate = self; - self.tempUniversalBanner = bannerView; + if (!_universalBannerViewCaches) { + _universalBannerViewCaches = @[].mutableCopy; + } + [self.universalBannerViewCaches addObject:bannerView]; @kWeakify(bannerView); @kWeakify(self); [bannerView setAllowToPlay:^{ @@ -2698,6 +2750,7 @@ XPRoomGraffitiGiftAnimationViewDelegate @kStrongify(self); if (finished) { [bannerView removeFromSuperview]; + [self.universalBannerViewCaches removeObject:bannerView]; self.isPlayOfB = NO; if(self.animationListB.count > 0){ [self.animationListB removeObjectAtIndex:0]; diff --git a/YuMi/Modules/YMRoom/View/StageView/SocialStageView.m b/YuMi/Modules/YMRoom/View/StageView/SocialStageView.m index 3c814ab1..6cff0ed3 100644 --- a/YuMi/Modules/YMRoom/View/StageView/SocialStageView.m +++ b/YuMi/Modules/YMRoom/View/StageView/SocialStageView.m @@ -12,7 +12,7 @@ #import "RoomInfoModel.h" #import "ClientConfig.h" //房主距离顶部间距 -#define ownerTopMargin 35 +#define ownerTopMargin 100//35 // 房主头像宽 58 + 光圈 5 #define ownerWidth (45 + 5) * kScreenScale // 昵称高12,距离头像间距 10 diff --git a/YuMi/ar.lproj/Localizable.strings b/YuMi/ar.lproj/Localizable.strings index 2797c840..8c0b5f74 100644 --- a/YuMi/ar.lproj/Localizable.strings +++ b/YuMi/ar.lproj/Localizable.strings @@ -468,15 +468,12 @@ "MessageOpenLiveModel0" = "الآن %@ متصل"; -"MessageTextClickModel0" = "نوع الرسالة غير معروف"; "PKIDLoginViewController2" = "يرجى التواصل مع خدمة العملاء"; "PKIDLoginViewController3" = "LINE: pekoyuyin"; "PKIDLoginViewController4" = "فهمت"; "MessageLevelUpgradeModel0" = "تهانينا! وصلت مستوى جاذبيتك إلى المستوى %@"; "MessageLevelUpgradeModel1" = "تهانينا! وصل مستواك إلى المستوى %@"; -"MessageTextModel0" = "نوع الرسالة غير معروف"; - "MessageTweetModel0" = "هذا لحساب ارتفاع السطر"; "MessageContentTweetView0" = "هذا لحساب ارتفاع السطر"; @@ -2612,15 +2609,12 @@ ineHeadView12" = "الحمل"; "MessageOpenLiveModel0" = "تم الانتقال إلى %@"; -"MessageTextClickModel0" = "نوع الرسالة غير معروف"; "PKIDLoginViewController2" = "يرجى الاتصال بخدمة العملاء للمساعدة"; "PKIDLoginViewController4" = "فهمت"; "MessageLevelUpgradeModel0" = "تهانينا! لقد وصلت إلى مستوى سحرية %@"; "MessageLevelUpgradeModel1" = "تهانينا! لقد وصلت إلى مستوى %@"; -"MessageTextModel0" = "نوع الرسالة غير معروف"; - "MessageTweetModel0" = "هذا مثال على حساب ارتفاع السطر"; "MessageContentTweetView0" = "هذا مثال على حساب ارتفاع السطر"; diff --git a/YuMi/en.lproj/Localizable.strings b/YuMi/en.lproj/Localizable.strings index cef37402..e1eaa278 100644 --- a/YuMi/en.lproj/Localizable.strings +++ b/YuMi/en.lproj/Localizable.strings @@ -158,15 +158,12 @@ "MessageOpenLiveModel0" = "%@ is online now"; -"MessageTextClickModel0" = "Unknown message type"; "PKIDLoginViewController2" = "Please contact customer service"; "PKIDLoginViewController3" = "LINE:pekoyuyin"; "PKIDLoginViewController4" = "I understand"; "MessageLevelUpgradeModel0" = "Congratulations! Your charm level has reached %@"; "MessageLevelUpgradeModel1" = "Congratulations! Your level has reached %@"; -"MessageTextModel0" = "Unknown message type"; - "MessageTweetModel0" = "This is to calculate the height of a line"; "MessageContentTweetView0" = "This is to calculate the height of a line"; diff --git a/YuMi/tr.lproj/Localizable.strings b/YuMi/tr.lproj/Localizable.strings index 89e538fd..b8296e01 100644 --- a/YuMi/tr.lproj/Localizable.strings +++ b/YuMi/tr.lproj/Localizable.strings @@ -1923,15 +1923,12 @@ "MessageOpenLiveModel0" = "%@ yayında"; -"MessageTextClickModel0" = "Bilinmeyen mesaj türü"; "PKIDLoginViewController2" = "Lütfen müşteri hizmetleriyle iletişime geçin"; "PKIDLoginViewController3" = "LINE: pekoyuyin"; "PKIDLoginViewController4" = "Tamam"; "MessageLevelUpgradeModel0" = "Tebrikler! Çekicilik seviyeniz %@ seviyesine ulaştı"; "MessageLevelUpgradeModel1" = "Tebrikler! Seviyeniz %@ seviyesine ulaştı"; -"MessageTextModel0" = "Bilinmeyen mesaj türü"; - "MessageTweetModel0" = "Bu bir satırın yüksekliğini hesaplamak"; "MessageContentTweetView0" = "Bu bir satırın yüksekliğini hesaplamak"; diff --git a/YuMi/zh-Hant.lproj/Localizable.strings b/YuMi/zh-Hant.lproj/Localizable.strings index 24aeae29..2e85671a 100644 --- a/YuMi/zh-Hant.lproj/Localizable.strings +++ b/YuMi/zh-Hant.lproj/Localizable.strings @@ -1967,15 +1967,12 @@ "MessageOpenLiveModel0" = "%@ 上線了"; -"MessageTextClickModel0" = "未知消息類型"; "PKIDLoginViewController2" = "請聯繫客服處理"; "PKIDLoginViewController3" = "LINE:pekoyuyin"; "PKIDLoginViewController4" = "我知道了"; "MessageLevelUpgradeModel0" = "恭喜!您的魅力等級已到達%@"; "MessageLevelUpgradeModel1" = "恭喜!您的等級已到達%@"; -"MessageTextModel0" = "未知消息類型"; - "MessageTweetModel0" = "這個是計算一行的高度的"; "MessageContentTweetView0" = "這個是計算一行的高度的";