596 lines
25 KiB
Objective-C
596 lines
25 KiB
Objective-C
//
|
|
// YMReceiveRedPacketView.m
|
|
// YUMI
|
|
//
|
|
// Created by YUMI on 2022/9/2.
|
|
//
|
|
|
|
#import "XPReceiveRedPacketView.h"
|
|
#import "XPReceiveRedPacketModel.h"
|
|
#import "NSObject+MJExtension.h"
|
|
#import "DJDKMIMOMColor.h"
|
|
#import <Masonry/Masonry.h>
|
|
#import "NetImageView.h"
|
|
#import "TTPopUp.h"
|
|
#import "Api+RedPacket.h"
|
|
#import "XNDJTDDLoadingTool.h"
|
|
#import "XPRedPacketResultModel.h"
|
|
#import "XPOpenRedPacketCell.h"
|
|
#import "XCCurrentVCStackManager.h"
|
|
#import "XPRoomViewController.h"
|
|
#import "RoomHostDelegate.h"
|
|
#import "XPRoomMiniManager.h"
|
|
#import "RoomInfoModel.h"
|
|
#import "XPRedPacketModel.h"
|
|
#import "YUMIConstant.h"
|
|
#import "NSArray+Safe.h"
|
|
#import "CountDownHelper.h"
|
|
#import "PIReceiveRedPacketSuccessView.h"
|
|
|
|
@interface XPReceiveRedPacketView()<CountDownHelperDelegate>
|
|
|
|
@property (nonatomic, strong) XPRedPacketResultModel *resultData;
|
|
|
|
///背景
|
|
@property (nonatomic, strong) UIImageView *bgImageView;
|
|
///发送者头像
|
|
@property (nonatomic, strong) NetImageView *sendAvatar;
|
|
///发送者昵称
|
|
@property (nonatomic, strong) UILabel *sendNickLabel;
|
|
///收到的祝福语
|
|
@property (nonatomic, strong) UILabel *sendWishLabel;
|
|
///收到的祝福语背景
|
|
@property(nonatomic,strong) UIView *sendWishView;
|
|
///抢红包按钮
|
|
@property (nonatomic, strong) UIButton *openButton;
|
|
///抢红包icon
|
|
@property(nonatomic,strong) UIImageView *robIcon;
|
|
///抢红包类型
|
|
@property(nonatomic,strong) UILabel *robView;
|
|
///倒计时
|
|
@property(nonatomic,strong) UILabel *countDownView;
|
|
///倒计时
|
|
@property(nonatomic,strong) UILabel *countDownTitleView;
|
|
///关闭
|
|
@property (nonatomic, strong) UIButton *closeBtn;
|
|
///倒计时
|
|
@property (nonatomic,strong) CountDownHelper *countDownHelper;
|
|
@property(nonatomic,assign) BOOL isCountDownEnd;
|
|
@end
|
|
|
|
@implementation XPReceiveRedPacketView
|
|
-(void)dealloc{
|
|
|
|
}
|
|
- (instancetype)initWithFrame:(CGRect)frame {
|
|
if (self = [super initWithFrame:frame]) {
|
|
[self initSubViews];
|
|
[self initSubViewConstraints];
|
|
}
|
|
return self;
|
|
}
|
|
|
|
#pragma mark - Private Method
|
|
- (void)initSubViews {
|
|
self.isCountDownEnd = YES;
|
|
[self addSubview:self.alphaView];
|
|
[self addSubview:self.bgImageView];
|
|
[self.bgImageView addSubview:self.closeBtn];
|
|
[self.bgImageView addSubview:self.sendAvatar];
|
|
[self.bgImageView addSubview:self.sendNickLabel];
|
|
[self.bgImageView addSubview:self.sendWishView];
|
|
[self.sendWishView addSubview:self.sendWishLabel];
|
|
[self.bgImageView addSubview:self.openButton];
|
|
[self.openButton addSubview:self.robIcon];
|
|
[self.bgImageView addSubview:self.robView];
|
|
[self.bgImageView addSubview:self.countDownView];
|
|
[self.bgImageView addSubview:self.countDownTitleView];
|
|
[self.bgImageView addSubview:self.robView];
|
|
|
|
}
|
|
|
|
- (void)initSubViewConstraints {
|
|
[self.alphaView mas_makeConstraints:^(MASConstraintMaker *make) {
|
|
make.edges.mas_equalTo(0);
|
|
}];
|
|
[self.bgImageView mas_makeConstraints:^(MASConstraintMaker *make) {
|
|
make.width.mas_equalTo(kGetScaleWidth(327));
|
|
make.height.mas_equalTo(kGetScaleWidth(466));
|
|
make.centerX.centerY.mas_equalTo(self);
|
|
}];
|
|
[self.closeBtn mas_makeConstraints:^(MASConstraintMaker *make) {
|
|
make.top.mas_equalTo(kGetScaleWidth(39));
|
|
make.height.width.mas_equalTo(kGetScaleWidth(28));
|
|
make.trailing.mas_equalTo(-kGetScaleWidth(8));
|
|
}];
|
|
|
|
[self.sendAvatar mas_makeConstraints:^(MASConstraintMaker *make) {
|
|
make.centerX.mas_equalTo(self.bgImageView);
|
|
make.top.mas_equalTo(self.bgImageView).mas_offset(kGetScaleWidth(94));
|
|
make.width.height.mas_equalTo(kGetScaleWidth(65));
|
|
}];
|
|
[self.sendNickLabel mas_makeConstraints:^(MASConstraintMaker *make) {
|
|
make.centerX.mas_equalTo(self.bgImageView);
|
|
make.top.mas_equalTo(self.sendAvatar.mas_bottom).mas_offset(kGetScaleWidth(4));
|
|
make.height.mas_equalTo(kGetScaleWidth(22));
|
|
make.width.mas_equalTo(kGetScaleWidth(200));
|
|
}];
|
|
[self.sendWishView mas_makeConstraints:^(MASConstraintMaker *make) {
|
|
make.width.mas_lessThanOrEqualTo(kGetScaleWidth(235));
|
|
make.top.equalTo(self.sendNickLabel.mas_bottom).mas_offset(kGetScaleWidth(10));
|
|
make.height.mas_equalTo(kGetScaleWidth(35));
|
|
make.centerX.mas_equalTo(self.bgImageView);
|
|
}];
|
|
|
|
[self.sendWishLabel mas_makeConstraints:^(MASConstraintMaker *make) {
|
|
make.center.mas_equalTo(self.sendWishView);
|
|
make.leading.trailing.equalTo(self.sendWishView).inset(kGetScaleWidth(10));
|
|
}];
|
|
[self.openButton mas_makeConstraints:^(MASConstraintMaker *make) {
|
|
make.centerX.mas_equalTo(self.bgImageView);
|
|
make.top.equalTo(self.sendWishView.mas_bottom).mas_offset(kGetScaleWidth(14));
|
|
make.width.mas_equalTo(kGetScaleWidth(143));
|
|
make.height.mas_equalTo(kGetScaleWidth(124));
|
|
}];
|
|
[self.robIcon mas_makeConstraints:^(MASConstraintMaker *make) {
|
|
make.height.mas_equalTo(kGetScaleWidth(34));
|
|
make.width.mas_equalTo(kGetScaleWidth(38));
|
|
make.center.mas_equalTo(self.openButton);
|
|
|
|
}];
|
|
[self.robView mas_makeConstraints:^(MASConstraintMaker *make) {
|
|
make.top.equalTo(self.sendWishView.mas_bottom).mas_offset(kGetScaleWidth(56));
|
|
make.centerX.mas_equalTo(self.bgImageView);
|
|
make.height.mas_equalTo(kGetScaleWidth(40));
|
|
}];
|
|
|
|
[self.countDownView mas_makeConstraints:^(MASConstraintMaker *make) {
|
|
make.top.equalTo(self.sendWishView.mas_bottom).mas_offset(kGetScaleWidth(51));
|
|
make.centerX.mas_equalTo(self.bgImageView);
|
|
make.height.mas_equalTo(kGetScaleWidth(28));
|
|
|
|
}];
|
|
[self.countDownTitleView mas_makeConstraints:^(MASConstraintMaker *make) {
|
|
make.top.equalTo(self.sendWishView.mas_bottom).mas_offset(kGetScaleWidth(79));
|
|
make.centerX.mas_equalTo(self.bgImageView);
|
|
make.height.mas_equalTo(kGetScaleWidth(17));
|
|
|
|
}];
|
|
}
|
|
|
|
|
|
|
|
|
|
- (void)setReceiveModel:(XPRedPacketModel *)receiveModel {
|
|
_receiveModel = receiveModel;
|
|
|
|
if(_receiveModel.result != nil){
|
|
self.resultData = [XPRedPacketResultModel modelWithDictionary:_receiveModel.result] ;
|
|
if(self.resultData.redEnvelopeState == RedPacketState_Remain_Zero || self.resultData.redEnvelopeState == RedPacketState_Success){
|
|
[self showRedPacketResultViewWithResultData:self.resultData];
|
|
return;
|
|
}
|
|
}
|
|
|
|
|
|
self.sendAvatar.imageUrl = _receiveModel.sendUserAvatar.length > 0 ? receiveModel.sendUserAvatar : receiveModel.userVO.avatar;
|
|
NSString *nick = _receiveModel.sendUserNick.length > 0 ? _receiveModel.sendUserNick : receiveModel.userVO.nick;
|
|
if (nick.length > 6) {
|
|
nick = [NSString stringWithFormat:@"%@...", [nick substringToIndex:6]];
|
|
}
|
|
self.sendNickLabel.text = [NSString stringWithFormat:@"%@%@",nick,YMLocalizedString(@"XPReceiveRedPacketView8")] ;
|
|
self.robView.hidden = YES;
|
|
self.robIcon.hidden = YES;
|
|
self.countDownView.hidden = YES;
|
|
self.countDownTitleView.hidden = YES;
|
|
|
|
if(_receiveModel.kind == RedPacketConditionsType_NO){
|
|
self.sendWishLabel.text = _receiveModel.redEnvelopeMessage.length > 0 ? _receiveModel.redEnvelopeMessage :YMLocalizedString(@"XPReceiveRedPacketView9");
|
|
if(_receiveModel.validityType == 1){
|
|
NSInteger time = [self getTimeDifferenceWithTimestamp:_receiveModel.timestamp / 1000 beginTime:_receiveModel.beginTime / 1000];
|
|
if(time > 0){
|
|
self.countDownView.hidden = NO;
|
|
self.countDownTitleView.hidden = NO;
|
|
self.isCountDownEnd = NO;
|
|
[self.countDownHelper openCountdownWithTime:(int)time];
|
|
|
|
}else{
|
|
self.robIcon.hidden = NO;
|
|
}
|
|
}else{
|
|
self.robIcon.hidden = NO;
|
|
}
|
|
}else if(_receiveModel.kind == RedPacketConditionsType_Followd){
|
|
|
|
if(_receiveModel.finish == 1){
|
|
self.sendWishLabel.text = YMLocalizedString(@"XPReceiveRedPacketView17");
|
|
}else{
|
|
NSMutableAttributedString *textAtt = [[NSMutableAttributedString alloc]initWithString:YMLocalizedString(@"XPReceiveRedPacketView10") attributes:@{NSFontAttributeName:kFontRegular(11),NSForegroundColorAttributeName:[UIColor whiteColor]}];
|
|
[textAtt addAttributes:@{NSFontAttributeName:kFontRegular(11),NSForegroundColorAttributeName:UIColorFromRGB(0xFFF87A)} range:NSMakeRange(0, 4)];
|
|
self.sendWishLabel.attributedText = textAtt;
|
|
}
|
|
NSInteger time = [self getTimeDifferenceWithTimestamp:_receiveModel.timestamp / 1000 beginTime:_receiveModel.beginTime / 1000];
|
|
if(time > 0){
|
|
self.isCountDownEnd = NO;
|
|
[self.countDownHelper openCountdownWithTime:(int)time];
|
|
if(_receiveModel.finish == 1){
|
|
self.countDownView.hidden = NO;
|
|
self.countDownTitleView.hidden = NO;
|
|
}else{
|
|
|
|
self.robView.hidden = NO;
|
|
self.robView.text = YMLocalizedString(@"XPReceiveRedPacketView13");
|
|
}
|
|
}else{
|
|
|
|
if(_receiveModel.finish == 1){
|
|
self.robIcon.hidden = NO;
|
|
}else{
|
|
self.robView.hidden = NO;
|
|
self.robView.text = YMLocalizedString(@"XPReceiveRedPacketView16");
|
|
}
|
|
|
|
}
|
|
|
|
}else if(_receiveModel.kind == RedPacketConditionsType_Share){
|
|
if(_receiveModel.finish == 1){
|
|
self.sendWishLabel.text = YMLocalizedString(@"XPReceiveRedPacketView17");
|
|
|
|
}else{
|
|
NSMutableAttributedString *textAtt = [[NSMutableAttributedString alloc]initWithString:YMLocalizedString(@"XPReceiveRedPacketView11") attributes:@{NSFontAttributeName:kFontRegular(11),NSForegroundColorAttributeName:[UIColor whiteColor]}];
|
|
[textAtt addAttributes:@{NSFontAttributeName:kFontRegular(11),NSForegroundColorAttributeName:UIColorFromRGB(0xFFF87A)} range:NSMakeRange(0, 6)];
|
|
self.sendWishLabel.attributedText = textAtt;
|
|
}
|
|
|
|
NSInteger time = [self getTimeDifferenceWithTimestamp:_receiveModel.timestamp / 1000 beginTime:_receiveModel.beginTime / 1000];
|
|
if(time > 0){
|
|
self.isCountDownEnd = NO;
|
|
[self.countDownHelper openCountdownWithTime:(int)time];
|
|
if(_receiveModel.finish == 1){
|
|
self.countDownView.hidden = NO;
|
|
self.countDownTitleView.hidden = NO;
|
|
|
|
|
|
}else{
|
|
|
|
self.robView.hidden = NO;
|
|
self.robView.text = YMLocalizedString(@"XPReceiveRedPacketView14");
|
|
}
|
|
}else{
|
|
|
|
if(_receiveModel.finish == 1){
|
|
self.robIcon.hidden = NO;
|
|
}else{
|
|
self.robView.hidden = NO;
|
|
self.robView.text = YMLocalizedString(@"XPReceiveRedPacketView16");
|
|
}
|
|
|
|
}
|
|
}else if(_receiveModel.kind == RedPacketConditionsType_Scrolling){
|
|
if(_receiveModel.finish == 1){
|
|
self.sendWishLabel.text = YMLocalizedString(@"XPReceiveRedPacketView17");
|
|
|
|
}else{
|
|
NSString *text = [NSString stringWithFormat:YMLocalizedString(@"XPReceiveRedPacketView12"),_receiveModel.message ?: @""];
|
|
NSMutableAttributedString *textAtt = [[NSMutableAttributedString alloc]initWithString:text attributes:@{NSFontAttributeName:kFontRegular(11),NSForegroundColorAttributeName:[UIColor whiteColor]}];
|
|
[textAtt addAttributes:@{NSFontAttributeName:kFontRegular(11),NSForegroundColorAttributeName:UIColorFromRGB(0xFFF87A)} range:[text rangeOfString:_receiveModel.message ?:@""]];
|
|
self.sendWishLabel.attributedText = textAtt;
|
|
}
|
|
|
|
NSInteger time = [self getTimeDifferenceWithTimestamp:_receiveModel.timestamp / 1000 beginTime:_receiveModel.beginTime / 1000];
|
|
if(time > 0){
|
|
[self.countDownHelper openCountdownWithTime:(int)time];
|
|
self.isCountDownEnd = NO;
|
|
if(_receiveModel.finish == 1){
|
|
self.countDownView.hidden = NO;
|
|
self.countDownTitleView.hidden = NO;
|
|
}else{
|
|
|
|
self.robView.hidden = NO;
|
|
self.robView.text = YMLocalizedString(@"XPReceiveRedPacketView15");
|
|
}
|
|
}else{
|
|
|
|
if(_receiveModel.finish == 1){
|
|
self.robIcon.hidden = NO;
|
|
}else{
|
|
self.robView.hidden = NO;
|
|
self.robView.text = YMLocalizedString(@"XPReceiveRedPacketView16");
|
|
}
|
|
|
|
}
|
|
}
|
|
|
|
}
|
|
-(NSInteger)getTimeDifferenceWithTimestamp:(long)timestamp beginTime:(long)beginTime {
|
|
NSString *time1 = [NSDate timestampSwitchTime:(NSInteger)timestamp formatter:@"YYYY-MM-dd hh:mm:ss"];
|
|
NSString *time2 = [NSDate timestampSwitchTime:(NSInteger)beginTime formatter:@"YYYY-MM-dd hh:mm:ss"];
|
|
NSInteger second = [NSDate pleaseInsertStarTimeo:time1 andInsertEndTime:time2];
|
|
return second;
|
|
}
|
|
#pragma mark - action
|
|
- (void)onOpenButtonClick:(UIButton *)sender {
|
|
|
|
if(self.receiveModel.kind == RedPacketConditionsType_NO){
|
|
if(self.receiveModel.validityType == 1 && self.isCountDownEnd == NO){
|
|
return;
|
|
}
|
|
}else if(self.receiveModel.kind == RedPacketConditionsType_Followd){
|
|
if(self.isCountDownEnd == NO && self.receiveModel.finish == 0){
|
|
[self removeFromSuperview];
|
|
[[NSNotificationCenter defaultCenter]postNotificationName:@"kOpenRedPacketNotification" object:nil userInfo:@{@"type":@(RedPacketConditionsType_Followd),@"uid":self.receiveModel.userId ?: @"",@"roomUid":self.receiveModel.roomUId ?: @""}];
|
|
|
|
return;
|
|
}else if(self.isCountDownEnd == YES && self.receiveModel.finish == 0){
|
|
[self removeFromSuperview];
|
|
[XNDJTDDLoadingTool showErrorWithMessage:YMLocalizedString(@"XPReceiveRedPacketView18")];
|
|
|
|
return;
|
|
}else if(self.isCountDownEnd == NO && self.receiveModel.finish == 1){
|
|
return;
|
|
}
|
|
|
|
}else if(self.receiveModel.kind == RedPacketConditionsType_Share){
|
|
if(self.isCountDownEnd == NO && self.receiveModel.finish == 0){
|
|
[self removeFromSuperview];
|
|
|
|
[[NSNotificationCenter defaultCenter]postNotificationName:@"kOpenRedPacketNotification" object:nil userInfo:@{@"type":@(RedPacketConditionsType_Share),@"uid":self.receiveModel.userId ?: @"",@"roomUid":self.receiveModel.roomUId ?: @""}];
|
|
return;
|
|
}else if(self.isCountDownEnd == YES && self.receiveModel.finish == 0){
|
|
[self removeFromSuperview];
|
|
[XNDJTDDLoadingTool showErrorWithMessage:YMLocalizedString(@"XPReceiveRedPacketView18")];
|
|
|
|
|
|
return;
|
|
}else if(self.isCountDownEnd == NO && self.receiveModel.finish == 1){
|
|
return;
|
|
}
|
|
}else if(self.receiveModel.kind == RedPacketConditionsType_Scrolling){
|
|
if(self.isCountDownEnd == NO && self.receiveModel.finish == 0){
|
|
[self removeFromSuperview];
|
|
[[NSNotificationCenter defaultCenter]postNotificationName:@"kOpenRedPacketNotification" object:nil userInfo:@{@"type":@(RedPacketConditionsType_Scrolling),@"uid":self.receiveModel.userId ?: @"",@"roomUid":self.receiveModel.roomUId ?: @"",@"scrolling":self.receiveModel.message ?: @""}];
|
|
return;
|
|
}else if(self.isCountDownEnd == YES && self.receiveModel.finish == 0){
|
|
|
|
[self removeFromSuperview];
|
|
[XNDJTDDLoadingTool showErrorWithMessage:YMLocalizedString(@"XPReceiveRedPacketView18")];
|
|
|
|
return;
|
|
}else if(self.isCountDownEnd == NO && self.receiveModel.finish == 1){
|
|
return;
|
|
}
|
|
}
|
|
|
|
if (self.receiveModel.userVO != nil) {
|
|
[self openRoomRedPacket:sender redEnvelopeId:self.receiveModel.redEnvelopeId];
|
|
} else {
|
|
//判断是否为房内红包
|
|
if ([self.receiveModel.redEnvelopePosition isEqualToString:@"IN_ROOM"]) {
|
|
//1、房内红包
|
|
[self openRoomRedPacket:sender redEnvelopeId:self.receiveModel.redEnvelopeId];
|
|
} else {
|
|
//2、全服红包
|
|
|
|
if (self.inAllPacketRoom) {//在全服红包的房间内,直接打开
|
|
[self openRoomRedPacket:sender redEnvelopeId:self.receiveModel.redEnvelopeId];
|
|
} else {//不在房内,进入发红包的房间
|
|
if ([XPRoomMiniManager shareManager].getRoomInfo) {
|
|
RoomInfoModel *roomInfo = [XPRoomMiniManager shareManager].getRoomInfo;
|
|
if (roomInfo.uid == self.receiveModel.roomUid.integerValue) {
|
|
[XPRoomViewController openMiniRoom:[NSString stringWithFormat:@"%ld", roomInfo.uid] viewController:[[XCCurrentVCStackManager shareManager] getCurrentVC] redEnvelopeId:self.receiveModel.redEnvelopeId];
|
|
} else {
|
|
[XPRoomViewController openRoom:self.receiveModel.roomUid viewController:[[XCCurrentVCStackManager shareManager] getCurrentVC]redEnvelopeId:self.receiveModel.redEnvelopeId];
|
|
}
|
|
} else {
|
|
[[XCCurrentVCStackManager shareManager].getCurrentVC.navigationController.viewControllers enumerateObjectsUsingBlock:^(__kindof UIViewController * _Nonnull obj, NSUInteger idx, BOOL * _Nonnull stop) {
|
|
if ([obj isKindOfClass:[XPRoomViewController class]]) {
|
|
[[XCCurrentVCStackManager shareManager].getCurrentVC.navigationController popToRootViewControllerAnimated:NO];
|
|
XPRoomViewController<RoomHostDelegate> * rooomVC = obj;
|
|
[rooomVC exitRoom];
|
|
*stop = YES;
|
|
}
|
|
}];
|
|
dispatch_after(dispatch_time(DISPATCH_TIME_NOW, (int64_t)(1 * NSEC_PER_SEC)), dispatch_get_main_queue(), ^{
|
|
[XPRoomViewController openRoom:self.receiveModel.roomUid viewController:[XCCurrentVCStackManager shareManager].getCurrentVC redEnvelopeId:self.receiveModel.redEnvelopeId];
|
|
});
|
|
}
|
|
[self removeFromSuperview];
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
- (void)openRoomRedPacket:(UIButton *)sender redEnvelopeId:(NSString *)redEnvelopeId {
|
|
//1.1 开红包动画
|
|
CABasicAnimation *transformAnima = [CABasicAnimation animationWithKeyPath:@"transform.rotation.y"];
|
|
transformAnima.toValue = [NSNumber numberWithFloat:M_PI];
|
|
transformAnima.duration = 0.3;
|
|
transformAnima.cumulative = NO;
|
|
transformAnima.autoreverses = YES;
|
|
transformAnima.timingFunction = [CAMediaTimingFunction functionWithName:kCAMediaTimingFunctionLinear];
|
|
sender.layer.zPosition = 5;
|
|
sender.layer.zPosition = sender.layer.frame.size.width / 2.f;
|
|
transformAnima.repeatCount = 1000;
|
|
[sender.layer addAnimation:transformAnima forKey:@"rotationAnimationY"];
|
|
sender.enabled = NO;
|
|
//1.2 网络请求
|
|
[Api openRedPacket:^(BaseModel * _Nullable data, NSInteger code, NSString * _Nullable msg) {
|
|
sender.enabled = YES;
|
|
if (code != 200) {
|
|
[XNDJTDDLoadingTool showErrorWithMessage:msg];
|
|
return;;
|
|
}
|
|
XPRedPacketResultModel *model = [XPRedPacketResultModel modelWithJSON:data.data];
|
|
self.resultData = model;
|
|
[self showRedPacketResultViewWithResultData:model];
|
|
// 如果打开红包成功 则记录当前红包状态
|
|
NSArray *history = [[NSUserDefaults standardUserDefaults] objectForKey:kRedPacketHistory];
|
|
NSMutableArray *tempArray = [NSMutableArray arrayWithArray:history];
|
|
if (![tempArray containsObject:self.resultData.redEnvelopeVO.redEnvelopeId]) {
|
|
[tempArray addObject:self.resultData.redEnvelopeVO.redEnvelopeId];
|
|
[[NSUserDefaults standardUserDefaults] setObject:tempArray forKey:kRedPacketHistory];
|
|
[[NSUserDefaults standardUserDefaults] synchronize];
|
|
}
|
|
|
|
} redEnvelopeId:redEnvelopeId];
|
|
}
|
|
|
|
///显示红包结果
|
|
- (void)showRedPacketResultViewWithResultData:(XPRedPacketResultModel *)resultData {
|
|
self.bgImageView.hidden = YES;
|
|
[[NSNotificationCenter defaultCenter]postNotificationName:@"kOpenRedPacketResult" object:resultData];
|
|
PIReceiveRedPacketSuccessView *successView = [[PIReceiveRedPacketSuccessView alloc]initWithFrame:CGRectMake(0, 0, KScreenWidth, KScreenHeight)];
|
|
successView.resultModel = resultData;
|
|
[self addSubview:successView];
|
|
|
|
}
|
|
|
|
|
|
#pragma mark- CountDownHelperDelegate
|
|
///倒计时结束
|
|
- (void)onCountdownFinish{
|
|
self.isCountDownEnd = YES;
|
|
self.countDownView.hidden = YES;
|
|
self.countDownTitleView.hidden = YES;
|
|
if(self.receiveModel.kind == RedPacketConditionsType_NO){
|
|
self.robIcon.hidden = NO;
|
|
}else {
|
|
if(_receiveModel.finish == 1){
|
|
self.robIcon.hidden = NO;
|
|
}else{
|
|
self.robView.hidden = NO;
|
|
self.robView.text = YMLocalizedString(@"XPReceiveRedPacketView16");
|
|
}
|
|
}
|
|
}
|
|
///倒计时进行
|
|
- (void)onCountdownOpen:(int)time{
|
|
NSInteger seconds = time;
|
|
int minutes = (seconds)%3600/60;
|
|
int second = (seconds)%60;
|
|
self.countDownView.text = [NSString stringWithFormat:@"%02d:%02d",minutes,second];
|
|
}
|
|
#pragma mark - action
|
|
- (void)onCloseButtonClick:(UIButton *)sender {
|
|
[self removeFromSuperview];
|
|
|
|
}
|
|
|
|
#pragma mark - getter
|
|
- (UIView *)alphaView {
|
|
if (!_alphaView) {
|
|
_alphaView = [[UIView alloc] init];
|
|
_alphaView.backgroundColor = [UIColor colorWithWhite:0 alpha:0.4];
|
|
}
|
|
return _alphaView;
|
|
}
|
|
|
|
- (UIImageView *)bgImageView {
|
|
if (!_bgImageView) {
|
|
_bgImageView = [[UIImageView alloc] initWithImage:[UIImage imageNamed:@"pi_red_packet_receive_bg"]];
|
|
_bgImageView.userInteractionEnabled = YES;
|
|
}
|
|
return _bgImageView;
|
|
}
|
|
|
|
- (NetImageView *)sendAvatar {
|
|
if (!_sendAvatar) {
|
|
NetImageConfig *config = [[NetImageConfig alloc]init];
|
|
config.placeHolder = [UIImageConstant defaultAvatarPlaceholder];
|
|
_sendAvatar = [[NetImageView alloc] initWithConfig:config];
|
|
_sendAvatar.layer.masksToBounds = YES;
|
|
_sendAvatar.layer.cornerRadius = kGetScaleWidth(65)/2;
|
|
}
|
|
return _sendAvatar;
|
|
}
|
|
|
|
- (UIView *)sendNickLabel {
|
|
if (!_sendNickLabel) {
|
|
UILabel *label = [[UILabel alloc] init];
|
|
label.font = kFontMedium(16);
|
|
label.textColor = [UIColor whiteColor];
|
|
label.textAlignment = NSTextAlignmentCenter;
|
|
_sendNickLabel = label;
|
|
}
|
|
return _sendNickLabel;
|
|
}
|
|
-(UIView *)sendWishView{
|
|
if(!_sendWishView){
|
|
_sendWishView = [UIView new];
|
|
_sendWishView.backgroundColor = UIColorRGBAlpha(0xF52727, 0.4);
|
|
_sendWishView.layer.cornerRadius = kGetScaleWidth(8);
|
|
_sendWishView.layer.masksToBounds = YES;
|
|
_sendWishView.layer.borderWidth = 1;
|
|
_sendWishView.layer.borderColor = [UIColor whiteColor].CGColor;
|
|
}
|
|
return _sendWishView;
|
|
}
|
|
- (UILabel *)sendWishLabel {
|
|
if (!_sendWishLabel) {
|
|
UILabel *label = [[UILabel alloc] init];
|
|
label.textAlignment = NSTextAlignmentCenter;
|
|
_sendWishLabel = label;
|
|
_sendWishLabel.textColor = [UIColor whiteColor];
|
|
_sendWishLabel.font = kFontRegular(11);
|
|
_sendWishLabel.adjustsFontSizeToFitWidth = YES;
|
|
}
|
|
return _sendWishLabel;
|
|
}
|
|
|
|
- (UIButton *)openButton {
|
|
if (!_openButton) {
|
|
_openButton = [[UIButton alloc] init];
|
|
[_openButton setImage:[UIImage imageNamed:@"pi_red_packet_receive_open"] forState:UIControlStateNormal];
|
|
[_openButton addTarget:self action:@selector(onOpenButtonClick:) forControlEvents:UIControlEventTouchUpInside];
|
|
}
|
|
return _openButton;
|
|
}
|
|
|
|
- (UIButton *)closeBtn {
|
|
if (!_closeBtn) {
|
|
_closeBtn = [[UIButton alloc] init];
|
|
[_closeBtn setImage:[UIImage imageNamed:@"pi_red_packet_receive_colse"] forState:UIControlStateNormal];
|
|
[_closeBtn addTarget:self action:@selector(onCloseButtonClick:) forControlEvents:UIControlEventTouchUpInside];
|
|
}
|
|
return _closeBtn;
|
|
}
|
|
- (UIImageView *)robIcon{
|
|
if(!_robIcon){
|
|
_robIcon = [UIImageView new];
|
|
_robIcon.image = kImage(@"pi_red_packet_receive_rob");
|
|
}
|
|
return _robIcon;
|
|
}
|
|
-(UILabel *)robView{
|
|
if(!_robView){
|
|
_robView = [UILabel labelInitWithText:YMLocalizedString(@"XPReceiveRedPacketView7") font:kFontMedium(14) textColor:UIColorFromRGB(0xBF461F)];
|
|
_robView.textAlignment = NSTextAlignmentCenter;
|
|
_robView.numberOfLines = 2;
|
|
|
|
}
|
|
return _robView;
|
|
}
|
|
|
|
- (CountDownHelper *)countDownHelper{
|
|
if (!_countDownHelper){
|
|
_countDownHelper = [[CountDownHelper alloc]init];
|
|
_countDownHelper.delegate = self;
|
|
}
|
|
return _countDownHelper;
|
|
}
|
|
- (UILabel *)countDownTitleView{
|
|
if(!_countDownTitleView){
|
|
_countDownTitleView = [UILabel labelInitWithText:YMLocalizedString(@"XPReceiveRedPacketView6") font:kFontMedium(12) textColor:UIColorFromRGB(0xBF461F)];
|
|
_countDownTitleView.textAlignment = NSTextAlignmentCenter;
|
|
}
|
|
return _countDownTitleView;
|
|
}
|
|
- (UILabel *)countDownView{
|
|
if(!_countDownView){
|
|
_countDownView = [UILabel labelInitWithText:@"00:00" font:kFontRegular(20) textColor:UIColorFromRGB(0xBF461F)];
|
|
_countDownView.textAlignment = NSTextAlignmentCenter;
|
|
}
|
|
return _countDownView;
|
|
}
|
|
@end
|