mirror of
https://github.com/DKJone/DKWechatHelper.git
synced 2025-05-23 10:49:58 +08:00

what's new * 好友检测改为通过请求是否可以转账进行判断 * 动态启动图资源改为下载 * 支持8.0.13 * 更新越狱包8.0.13 * 更新已注入助手的8.0.13未签名包 * 更新越狱源安装包
247 lines
11 KiB
Objective-C
247 lines
11 KiB
Objective-C
// ViewController.m
|
|
//
|
|
// Created by ___ORGANIZATIONNAME___ on 2021/1/18
|
|
//
|
|
//
|
|
//
|
|
// ██████╗ ██╗ ██╗ ██╗ ██████╗ ███╗ ██╗███████╗
|
|
// ██╔══██╗██║ ██╔╝ ██║██╔═══██╗████╗ ██║██╔════╝
|
|
// ██║ ██║█████╔╝ ██║██║ ██║██╔██╗ ██║█████╗
|
|
// ██║ ██║██╔═██╗ ██ ██║██║ ██║██║╚██╗██║██╔══╝
|
|
// ██████╔╝██║ ██╗╚█████╔╝╚██████╔╝██║ ╚████║███████╗
|
|
// ╚═════╝ ╚═╝ ╚═╝ ╚════╝ ╚═════╝ ╚═╝ ╚═══╝╚══════╝
|
|
//
|
|
//
|
|
|
|
#import "DKLaunchViewController.h"
|
|
#import "DKHelper.h"
|
|
#import <AVFoundation/AVFoundation.h>
|
|
@interface DKLaunchViewController ()<HWDMP4PlayDelegate,MMImagePickerControllerDelegate>
|
|
@property (nonatomic,strong)AVAudioPlayer * player;
|
|
@property (nonatomic,strong)UIView *controlView;
|
|
@property (nonatomic,strong)UIView *animaView;
|
|
@property (nonatomic,assign)int animaIndex ;
|
|
@property (nonatomic,assign)BOOL hasNext ;
|
|
/// 点击跳过动画,已切换到下个视图
|
|
@property (nonatomic,assign)BOOL hasExit ;
|
|
@property (nonatomic,strong)UILabel *textLabel;
|
|
@end
|
|
|
|
@implementation DKLaunchViewController
|
|
|
|
- (void)viewDidLoad {
|
|
[super viewDidLoad];
|
|
|
|
self.animaView = [[UIView alloc] initWithFrame:CGRectMake(0, 0, UIScreen.mainScreen.bounds.size.width, UIScreen.mainScreen.bounds.size.width *16/9)];
|
|
self.animaView.center = self.view.center;
|
|
[self.navigationController.navigationBar setHidden:true];
|
|
NSString *animaName = (NSString *)DKLaunchHelper.animaNames[DKHelperConfig.dkLaunchIndex.intValue][@"name"];
|
|
UIImageView *imgv = [[UIImageView alloc] initWithFrame:self.animaView.frame];
|
|
NSString* path = [NSString stringWithFormat:@"%@/%@.jpg",vapPath,animaName];
|
|
imgv.image = [[UIImage alloc] initWithContentsOfFile:path];
|
|
[self.view addSubview:imgv];
|
|
[self.view addSubview:self.animaView];
|
|
if (self.setType !=0 ){
|
|
NSString* path = [NSString stringWithFormat:@"%@/launchBgm.mp3",vapPath];
|
|
self.player = [[AVAudioPlayer alloc] initWithContentsOfURL:[NSURL fileURLWithPath:path] error:nil];
|
|
[self.player play];
|
|
[self.player setNumberOfLoops:100];
|
|
|
|
self.controlView = [[UIView alloc] initWithFrame:self.view.frame];
|
|
self.controlView.backgroundColor = UIColor.clearColor;
|
|
[self.view addSubview:self.controlView];
|
|
|
|
UIButton *exitBtn = [UIButton buttonWithType:UIButtonTypeCustom];
|
|
exitBtn.titleLabel.font = [UIFont systemFontOfSize:14];
|
|
[exitBtn setTitle:@"退出" forState:UIControlStateNormal];
|
|
exitBtn.frame = CGRectMake(15, 80, 80, 40);
|
|
[exitBtn addTarget:self action:@selector(exitVC) forControlEvents:UIControlEventTouchUpInside];
|
|
[self.controlView addSubview:exitBtn];
|
|
|
|
UIButton *nextBtn = [UIButton buttonWithType:UIButtonTypeCustom];
|
|
[nextBtn setTitle:@"右滑下一个" forState:UIControlStateNormal];
|
|
nextBtn.titleLabel.font = [UIFont systemFontOfSize:14];
|
|
nextBtn.frame = CGRectMake( UIScreen.mainScreen.bounds.size.width - 100, 80, 80, 40);
|
|
[nextBtn addTarget:self action:@selector(nextAnima:) forControlEvents:UIControlEventTouchUpInside];
|
|
[self.controlView addSubview:nextBtn];
|
|
|
|
UIButton *setDoneBtn = [UIButton buttonWithType:UIButtonTypeCustom];
|
|
[setDoneBtn setTitle:(self.setType==1 ? @"设为启动图" : @"设为聊天背景") forState:UIControlStateNormal];
|
|
setDoneBtn.titleLabel.font = [UIFont systemFontOfSize:14];
|
|
setDoneBtn.frame = CGRectMake(UIScreen.mainScreen.bounds.size.width - 120, UIScreen.mainScreen.bounds.size.height - 100, 100, 40);
|
|
[setDoneBtn addTarget:self action:@selector(setLaunch) forControlEvents:UIControlEventTouchUpInside];
|
|
[self.controlView addSubview:setDoneBtn];
|
|
|
|
UIButton *chooseBtn = [UIButton buttonWithType:UIButtonTypeCustom];
|
|
[chooseBtn setTitle: @"从相册选择" forState:UIControlStateNormal];
|
|
chooseBtn.titleLabel.font = [UIFont systemFontOfSize:14];
|
|
chooseBtn.frame = CGRectMake(15, UIScreen.mainScreen.bounds.size.height - 100, 100, 40);
|
|
[chooseBtn addTarget:self action:@selector(choosePhoto) forControlEvents:UIControlEventTouchUpInside];
|
|
// [self.controlView addSubview:chooseBtn];
|
|
|
|
UIPanGestureRecognizer *swip = [[UIPanGestureRecognizer alloc] initWithTarget:self action:@selector(nextAnima:)];
|
|
[self.view addGestureRecognizer:swip];
|
|
|
|
UILabel * label = [[UILabel alloc] init];
|
|
self.textLabel = label;
|
|
label.frame = CGRectMake(0, UIScreen.mainScreen.bounds.size.height/3*2, UIScreen.mainScreen.bounds.size.width, 70);
|
|
[self.view addSubview:label];
|
|
label.font = [UIFont boldSystemFontOfSize:20];
|
|
label.numberOfLines = 0;
|
|
label.textAlignment = NSTextAlignmentCenter;
|
|
}
|
|
[self.view addGestureRecognizer:[[UITapGestureRecognizer alloc] initWithTarget:self action:@selector(showControl)]];
|
|
self.animaIndex = self.setType == 2 ? (DKHelperConfig.dkChatBGIndex.intValue - 1) : (DKHelperConfig.dkLaunchIndex.intValue - 1);
|
|
[self nextAnima:nil];
|
|
|
|
}
|
|
- (void)exitVC{
|
|
[self.navigationController popViewControllerAnimated:true];
|
|
[self dismissViewControllerAnimated:true completion:nil];
|
|
}
|
|
|
|
|
|
- (void)showControl{
|
|
if (self.setType == 0){
|
|
[self goNextVC];
|
|
self.hasExit = true;
|
|
}
|
|
[UIView animateWithDuration:0.25 animations:^{
|
|
int alpha = ceil(self.controlView.alpha);
|
|
self.controlView.alpha = (alpha + 1) % 2;
|
|
}];
|
|
}
|
|
|
|
- (void)nextAnima:(NSObject *) gest{
|
|
self.hasNext = false;
|
|
|
|
BOOL isNext = true;
|
|
if ([gest isKindOfClass:UIPanGestureRecognizer.class]){
|
|
UIPanGestureRecognizer *recog = (UIPanGestureRecognizer *)gest;
|
|
if (recog.state != UIGestureRecognizerStateEnded){return;}
|
|
CGPoint trans = [recog translationInView:recog.view];
|
|
if (trans.x > 0 ){
|
|
isNext = false;
|
|
}else {
|
|
isNext = true;
|
|
}
|
|
|
|
}
|
|
self.animaIndex += (isNext? 1 : -1);
|
|
self.animaIndex = self.animaIndex > 0 ? self.animaIndex : 0;
|
|
self.animaIndex = self.animaIndex % 13;
|
|
NSString *animaName = (NSString *)DKLaunchHelper.animaNames[self.animaIndex][@"name"];
|
|
NSString *text = (NSString *)DKLaunchHelper.animaNames[self.animaIndex][@"desc"];
|
|
self.textLabel.text = [NSString stringWithFormat:@"%@\n%@",text,animaName];
|
|
self.textLabel.textColor = (UIColor *)DKLaunchHelper.animaNames[self.animaIndex][@"color"];
|
|
|
|
NSString* path = [NSString stringWithFormat:@"%@/%@Vap.mp4",vapPath,animaName];
|
|
[self.animaView playHWDMP4:path repeatCount:0 delegate:self];
|
|
self.hasNext = true;
|
|
|
|
}
|
|
|
|
- (void)setLaunch{
|
|
NSString *text = (NSString *)DKLaunchHelper.animaNames[self.animaIndex][@"desc"];
|
|
if (self.setType == 2){
|
|
//设为聊天背景
|
|
DKHelperConfig.dkChatBGIndex = [NSNumber numberWithInt:self.animaIndex];
|
|
[DKHelper showAlertWithTitle:@"已设置聊天背景为" message:text btnTitle:@"确定" handler:^(UIButton *sender) {}];
|
|
return;
|
|
}
|
|
NSString *animaName = (NSString *)DKLaunchHelper.animaNames[self.animaIndex][@"name"];
|
|
UIImageView *imgv = [[UIImageView alloc] initWithFrame:self.animaView.frame];
|
|
NSString* path = [NSString stringWithFormat:@"%@/%@.jpg",vapPath,animaName];
|
|
imgv.image = [[UIImage alloc] initWithContentsOfFile:path];
|
|
UIView *bgView = [[UIView alloc] initWithFrame:self.view.bounds];
|
|
bgView.backgroundColor = UIColor.blackColor;
|
|
bgView.clipsToBounds = true;
|
|
[bgView addSubview:imgv];
|
|
[LaunchImageHelper changeAllLaunchImageToPortrait:bgView.dkScreenShoot];
|
|
DKHelperConfig.dkLaunchIndex = [NSNumber numberWithInt:self.animaIndex];
|
|
[NSUserDefaults.standardUserDefaults synchronize];
|
|
[DKHelper showAlertWithTitle:@"已设置启动图为" message:text btnTitle:@"确定" handler:^(UIButton *sender) {}];
|
|
}
|
|
|
|
-(void)choosePhoto{
|
|
// MMImagePickerController *picker = [[objc_getClass("MMImagePickerController") alloc]initForJustReturnMMAsset:0 withAdjustRevertIndex:0 withDirectToFirstAlbum:1 withOnlyShowVideoMessage:0 withNotShowVideoSizeAlertView:0 withPickerVCForceFullScrenn:0];
|
|
// picker.m_delegate = self;
|
|
// picker.canSendVideoMessage = 1;
|
|
// picker.canSendOriginImage = 0;
|
|
// picker.forceSendOriginImage = 1;
|
|
// picker.canSendMultiImage = 0;
|
|
// picker.canSendMultiVideo = 0;
|
|
// picker.needThumbImage = 0;
|
|
// picker.showPreviewView = 1;
|
|
// picker.returnMetaForVideo = 0;
|
|
// picker.customizesClickAction = 0;
|
|
// picker.maxImageCount = 9;
|
|
// picker.canSendGif = 0;
|
|
// picker.isPresentInSplitVC = 0;
|
|
// picker.showSkipBtn = 0;
|
|
// picker.previewEditScene = 4;
|
|
// picker.compressType = 1;
|
|
// picker.finishWording = @"确定";
|
|
// [self presentViewController:picker animated:true completion:nil];
|
|
|
|
}
|
|
|
|
-(void)viewDidStopPlayMP4:(NSInteger)lastFrameIndex view:(VAPView *)container{
|
|
|
|
dispatch_after(dispatch_time(DISPATCH_TIME_NOW, (int64_t)(0 * NSEC_PER_SEC)), dispatch_get_main_queue(), ^{
|
|
if (self.setType == 0){
|
|
if (self.hasExit){return;}
|
|
[self goNextVC];
|
|
return;
|
|
}
|
|
if (self.hasNext){
|
|
[self nextAnima:nil];
|
|
}
|
|
});
|
|
}
|
|
|
|
-(void)goNextVC{
|
|
MicroMessengerAppDelegate *delegate = [objc_getClass("MicroMessengerAppDelegate") GlobalInstance];
|
|
UIWindow *window = delegate.launchWindow ;
|
|
window.rootViewController = nil;
|
|
|
|
[window setHidden:true];
|
|
[delegate.window makeKeyAndVisible];
|
|
}
|
|
|
|
|
|
|
|
//MARK: - imagePicker
|
|
|
|
- (void)MMImagePickerController:(MMImagePickerController *)arg1 didFinishPickingImageWithEditImageAttr:(EditImageAttr *)arg2{
|
|
[arg1 dismissViewControllerAnimated:YES completion:nil];
|
|
}
|
|
- (void)MMVideoPickerController:(UINavigationController *)arg1 didFinishPickingVideoWithAsset:(MMAsset *)arg2{
|
|
[arg1 dismissViewControllerAnimated:YES completion:nil];
|
|
}
|
|
- (void)MMVideoPickerController:(UINavigationController *)arg1 didFinishPickingSightWithInfo:(SightDraft *)arg2{
|
|
[arg1 dismissViewControllerAnimated:YES completion:nil];
|
|
}
|
|
- (void)MMVideoPickerController:(UINavigationController *)arg1 didFinishPickingMediaWithInfo:(NSDictionary *)arg2{
|
|
[arg1 dismissViewControllerAnimated:YES completion:nil];
|
|
}
|
|
- (void)MMImagePickerControllerDidSkip:(MMImagePickerController *)arg1{
|
|
[arg1 dismissViewControllerAnimated:YES completion:nil];
|
|
}
|
|
- (void)MMImagePickerControllerDidCancel:(MMImagePickerController *)arg1{
|
|
[arg1 dismissViewControllerAnimated:YES completion:nil];
|
|
}
|
|
- (void)MMImagePickerManager:(UINavigationController *)arg1 didFinishPickingAssetWithDataItem:(WCFinderDataItem *)arg2 GPSInfoArrayOfAsset:(NSArray *)arg3 dataReportModel:(WCFinderReportPostStateModel *)arg4{
|
|
[arg1 dismissViewControllerAnimated:YES completion:nil];
|
|
}
|
|
- (void)MMImagePickerController:(MMImagePickerController *)arg1 didFailToPickAssets:(NSArray *)arg2{
|
|
[arg1 dismissViewControllerAnimated:YES completion:nil];
|
|
}
|
|
- (void)MMImagePickerController:(MMImagePickerController *)arg1 didFinishPickingMediaWithInfo:(NSArray *)arg2{
|
|
[arg1 dismissViewControllerAnimated:YES completion:nil];
|
|
}
|
|
|
|
@end
|
|
|
|
|