1
0
mirror of https://github.com/Gh0stByte/Bkstg-Plus synced 2025-07-04 13:16:45 +00:00

3 Commits

Author SHA1 Message Date
e696020a1f Optomize & Clean Up Code 2017-01-03 11:20:12 -05:00
3415c0f6f7 Fix Profile Picture Saving
& Update to 1.0.2
2017-01-03 10:59:07 -05:00
7871aa6f8d Update README 2017-01-03 10:48:41 -05:00
5 changed files with 89 additions and 188 deletions

View File

@ -30,11 +30,18 @@ To save videos: Triple tap on them and select "Save Video"
## History ## History
TODO: Write history #### 1.0.2
* Fix ability to save Profile Pictures
#### 1.0.1
* Fix ability to save Poll images
#### 1.0.0
* Initial Release
## Credits ## Credits
Made by Gh0stByte Made by [Gh0stByte](http://twitter.com/Gh0stByte)
Suggestion by /u/marcelre Suggestion by /u/marcelre

264
Tweak.xm
View File

@ -35,240 +35,134 @@
@property (assign, nonatomic) FLImageView *photoView; @property (assign, nonatomic) FLImageView *photoView;
@end @end
%hook FLHubPhotoViewController @interface FLFullScreenPhotoViewController : UIViewController
@property (assign, nonatomic) UIImageView *imageView;
-(void)viewDidLoad @end
{
UILongPressGestureRecognizer *longPress = [[UILongPressGestureRecognizer alloc]
initWithTarget:self
action:@selector(handleLongPress:)];
longPress.minimumPressDuration = 1.5;
[self.view addGestureRecognizer:longPress];
%orig;
}
%new
-(void)handleLongPress:(UILongPressGestureRecognizer *)sender
{
UIAlertController *actionSheet = [UIAlertController alertControllerWithTitle:nil message:nil preferredStyle:UIAlertControllerStyleActionSheet];
[actionSheet addAction:[UIAlertAction actionWithTitle:@"Cancel" style:UIAlertActionStyleCancel handler:^(UIAlertAction *action) {
// Cancel button tappped.
[self dismissViewControllerAnimated:YES completion:^{
}];
}]];
[actionSheet addAction:[UIAlertAction actionWithTitle:@"Save Image" style:UIAlertActionStyleDefault handler:^(UIAlertAction *action) {
UIImage *snapshot = self.imageView.originalImage;
[[PHPhotoLibrary sharedPhotoLibrary] performChanges:^
{
PHAssetChangeRequest *changeRequest = [PHAssetChangeRequest creationRequestForAssetFromImage:snapshot];
changeRequest.creationDate = [NSDate date];
}
completionHandler:^(BOOL success, NSError *error)
{
if (success)
{
NSLog(@"successfully saved");
}
else
{
NSLog(@"error saving to photos: %@", error);
}
}];
[self dismissViewControllerAnimated:YES completion:^{
}];
}]];
// Present action sheet.
[self presentViewController:actionSheet animated:YES completion:nil];
}
%end
@interface FLPhotoDetailViewController : UIViewController @interface FLPhotoDetailViewController : UIViewController
@property (assign, nonatomic) FLImageView *photoView; @property (assign, nonatomic) FLImageView *photoView;
@end @end
// Save Image with UIImage and the Controller
inline void requestSaveImage(UIImage *snapshot, UIViewController *sender) {
UIAlertController *actionSheet = [UIAlertController alertControllerWithTitle:nil message:nil preferredStyle:UIAlertControllerStyleActionSheet];
[actionSheet addAction:[UIAlertAction actionWithTitle:@"Cancel" style:UIAlertActionStyleCancel handler:^(UIAlertAction *action) {
[sender dismissViewControllerAnimated:YES completion:^{ }]; }]];
[actionSheet addAction:[UIAlertAction actionWithTitle:@"Save Image" style:UIAlertActionStyleDefault handler:^(UIAlertAction *action) {
[[PHPhotoLibrary sharedPhotoLibrary] performChanges:^
{
PHAssetChangeRequest *changeRequest = [PHAssetChangeRequest creationRequestForAssetFromImage:snapshot];
changeRequest.creationDate = [NSDate date];
}
completionHandler:^(BOOL success, NSError *error)
{
if (success)
{
NSLog(@"successfully saved");
}
else
{
NSLog(@"error saving to photos: %@", error);
}
}];
[sender dismissViewControllerAnimated:YES completion:^{
}];
}]];
[sender presentViewController:actionSheet animated:YES completion:nil];
}
#define SETUP_LONGPRESS_ONCONTROLLER UILongPressGestureRecognizer *longPress = [[UILongPressGestureRecognizer alloc] initWithTarget:self action:@selector(handleLongPress:)]; longPress.minimumPressDuration = 1.5; [self.view addGestureRecognizer:longPress];
// Media tab images
%hook FLHubPhotoViewController
-(void)viewDidLoad
{
SETUP_LONGPRESS_ONCONTROLLER
%orig;
}
%new
-(void)handleLongPress:(UILongPressGestureRecognizer *)sender
{
requestSaveImage(self.imageView.originalImage, self);
}
%end
//Normal Timeline Photos
%hook FLPhotoDetailViewController %hook FLPhotoDetailViewController
-(void)viewDidLoad -(void)viewDidLoad
{ {
UILongPressGestureRecognizer *longPress = [[UILongPressGestureRecognizer alloc] SETUP_LONGPRESS_ONCONTROLLER
initWithTarget:self
action:@selector(handleLongPress:)];
longPress.minimumPressDuration = 1.5;
[self.view addGestureRecognizer:longPress];
%orig; %orig;
} }
%new %new
-(void)handleLongPress:(UILongPressGestureRecognizer *)sender -(void)handleLongPress:(UILongPressGestureRecognizer *)sender
{ {
UIAlertController *actionSheet = [UIAlertController alertControllerWithTitle:nil message:nil preferredStyle:UIAlertControllerStyleActionSheet]; requestSaveImage([self.photoView image], self);
[actionSheet addAction:[UIAlertAction actionWithTitle:@"Cancel" style:UIAlertActionStyleCancel handler:^(UIAlertAction *action) {
// Cancel button tappped.
[self dismissViewControllerAnimated:YES completion:^{
}];
}]];
[actionSheet addAction:[UIAlertAction actionWithTitle:@"Save Image" style:UIAlertActionStyleDefault handler:^(UIAlertAction *action) {
UIImage *snapshot = [self.photoView image];
[[PHPhotoLibrary sharedPhotoLibrary] performChanges:^
{
PHAssetChangeRequest *changeRequest = [PHAssetChangeRequest creationRequestForAssetFromImage:snapshot];
changeRequest.creationDate = [NSDate date];
}
completionHandler:^(BOOL success, NSError *error)
{
if (success)
{
NSLog(@"successfully saved");
}
else
{
NSLog(@"error saving to photos: %@", error);
}
}];
[self dismissViewControllerAnimated:YES completion:^{
}];
}]];
// Present action sheet.
[self presentViewController:actionSheet animated:YES completion:nil];
} }
%end %end
//Collage Photos
%hook FLCollageSinglePhotoViewController %hook FLCollageSinglePhotoViewController
-(void)viewDidLoad -(void)viewDidLoad
{ {
UILongPressGestureRecognizer *longPress = [[UILongPressGestureRecognizer alloc] SETUP_LONGPRESS_ONCONTROLLER
initWithTarget:self
action:@selector(handleLongPress:)];
longPress.minimumPressDuration = 1.5;
[self.view addGestureRecognizer:longPress];
%orig; %orig;
} }
%new %new
-(void)handleLongPress:(UILongPressGestureRecognizer *)sender -(void)handleLongPress:(UILongPressGestureRecognizer *)sender
{ {
UIAlertController *actionSheet = [UIAlertController alertControllerWithTitle:nil message:nil preferredStyle:UIAlertControllerStyleActionSheet]; requestSaveImage(self.photoView.photoView.originalImage, self);
[actionSheet addAction:[UIAlertAction actionWithTitle:@"Cancel" style:UIAlertActionStyleCancel handler:^(UIAlertAction *action) {
// Cancel button tappped.
[self dismissViewControllerAnimated:YES completion:^{
}];
}]];
[actionSheet addAction:[UIAlertAction actionWithTitle:@"Save Image" style:UIAlertActionStyleDefault handler:^(UIAlertAction *action) {
UIImage *snapshot = self.photoView.photoView.originalImage;
[[PHPhotoLibrary sharedPhotoLibrary] performChanges:^
{
PHAssetChangeRequest *changeRequest = [PHAssetChangeRequest creationRequestForAssetFromImage:snapshot];
changeRequest.creationDate = [NSDate date];
}
completionHandler:^(BOOL success, NSError *error)
{
if (success)
{
NSLog(@"successfully saved");
}
else
{
NSLog(@"error saving to photos: %@", error);
}
}];
[self dismissViewControllerAnimated:YES completion:^{
}];
}]];
// Present action sheet.
[self presentViewController:actionSheet animated:YES completion:nil];
} }
%end %end
//Poll Images
%hook FLPollSinglePhotoViewController %hook FLPollSinglePhotoViewController
-(void)viewDidLoad -(void)viewDidLoad
{ {
UILongPressGestureRecognizer *longPress = [[UILongPressGestureRecognizer alloc] SETUP_LONGPRESS_ONCONTROLLER
initWithTarget:self
action:@selector(handleLongPress:)];
longPress.minimumPressDuration = 1.5;
[self.view addGestureRecognizer:longPress];
%orig; %orig;
} }
%new %new
-(void)handleLongPress:(UILongPressGestureRecognizer *)sender -(void)handleLongPress:(UILongPressGestureRecognizer *)sender
{ {
UIAlertController *actionSheet = [UIAlertController alertControllerWithTitle:nil message:nil preferredStyle:UIAlertControllerStyleActionSheet]; requestSaveImage(self.photoView.originalImage, self);
[actionSheet addAction:[UIAlertAction actionWithTitle:@"Cancel" style:UIAlertActionStyleCancel handler:^(UIAlertAction *action) {
// Cancel button tappped.
[self dismissViewControllerAnimated:YES completion:^{
}];
}]];
[actionSheet addAction:[UIAlertAction actionWithTitle:@"Save Image" style:UIAlertActionStyleDefault handler:^(UIAlertAction *action) {
UIImage *snapshot = self.photoView.originalImage;
[[PHPhotoLibrary sharedPhotoLibrary] performChanges:^
{
PHAssetChangeRequest *changeRequest = [PHAssetChangeRequest creationRequestForAssetFromImage:snapshot];
changeRequest.creationDate = [NSDate date];
}
completionHandler:^(BOOL success, NSError *error)
{
if (success)
{
NSLog(@"successfully saved");
}
else
{
NSLog(@"error saving to photos: %@", error);
}
}];
[self dismissViewControllerAnimated:YES completion:^{
}];
}]];
// Present action sheet.
[self presentViewController:actionSheet animated:YES completion:nil];
} }
%end %end
// IGNORE ABOVE. SAVES IMAGES //Profile Pictures
//FLAVPlayerLayerView %hook FLFullScreenPhotoViewController
//FLHubVideoCollection
//FLVideoContentHolderVIew
-(void)viewDidLoad
{
SETUP_LONGPRESS_ONCONTROLLER
%orig;
}
%new
-(void)handleLongPress:(UILongPressGestureRecognizer *)sender
{
requestSaveImage(self.imageView.image, self);
}
%end
//Saves Videos
%hook FLPostCollectionViewCell %hook FLPostCollectionViewCell
-(void)setPostView:(FLBaseContentHolderView *)holderView -(void)setPostView:(FLBaseContentHolderView *)holderView

View File

@ -1,7 +1,7 @@
Package: gg.gh0stbyte.bkstg Package: gg.gh0stbyte.bkstg
Name: Bkstg Plus Name: Bkstg Plus
Depends: mobilesubstrate Depends: mobilesubstrate
Version: 1.0.0 Version: 1.0.2
Architecture: iphoneos-arm Architecture: iphoneos-arm
Description: Save Media from Bkstg Description: Save Media from Bkstg
Download photos & videos using this tweak. This tweak was suggested by /u/marcelre. Download photos & videos using this tweak. This tweak was suggested by /u/marcelre.

Binary file not shown.

Binary file not shown.