Initial realease

will add a preference pane before submitting to cydia.
This commit is contained in:
2017-02-18 12:44:10 +02:00
committed by GitHub
parent 4d81dbde54
commit c57a48dd76
5 changed files with 76 additions and 0 deletions

14
Makefile Normal file
View File

@ -0,0 +1,14 @@
ARCHS = armv7 arm64
VALID_ARCHS = armv7 armv7s arm64
include theos/makefiles/common.mk
TWEAK_NAME = NotifyMusic
NotifyMusic_FILES = Tweak.xm
NotifyMusic_FRAMEWORKS = CoreTelephony AudioToolbox UIKit
NotifyMusic_LIBRARIES = bulletin
include $(THEOS_MAKE_PATH)/tweak.mk
after-install::
install.exec "killall -9 SpringBoard"

1
NotifyMusic.plist Normal file
View File

@ -0,0 +1 @@
{ Filter = { Bundles = ( "com.apple.springboard" ); }; }

52
Tweak.xm Normal file
View File

@ -0,0 +1,52 @@
#import <AudioToolbox/AudioToolbox.h>
#import <AudioToolbox/AudioServices.h>
#import <UIKit/UIKit.h>
@interface MPUNowPlayingMetadata
@property (nonatomic,readonly) NSString * title;
@property (nonatomic,readonly) NSString * artist;
@end
@interface MPUNowPlayingController
@property bool isPlaying;
@property (nonatomic,readonly) NSString * nowPlayingAppDisplayID;
@property (nonatomic,readonly) MPUNowPlayingMetadata * currentNowPlayingMetadata;
@end
@interface JBBulletinManager : NSObject
+(id)sharedInstance;
-(id)showBulletinWithTitle:(NSString *)title message:(NSString *)message bundleID:(NSString *)bundleID;
-(id)showBulletinWithTitle:(NSString *)title message:(NSString *)message bundleID:(NSString *)bundleID soundPath:(NSString *)soundPath;
-(id)showBulletinWithTitle:(NSString *)title message:(NSString *)message bundleID:(NSString *)bundleID soundID:(int)inSoundID;
-(id)showBulletinWithTitle:(NSString *)title message:(NSString *)message overrideBundleImage:(UIImage *)overridBundleImage;
-(id)showBulletinWithTitle:(NSString *)title message:(NSString *)message overrideBundleImage:(UIImage *)overridBundleImage soundPath:(NSString *)soundPath;
-(id)showBulletinWithTitle:(NSString *)title message:(NSString *)message overridBundleImage:(UIImage *)overridBundleImage soundID:(int)inSoundID;
-(id)showBulletinWithTitle:(NSString *)title message:(NSString *)message bundleID:(NSString *)bundleID hasSound:(BOOL)hasSound soundID:(int)soundID vibrateMode:(int)vibrate soundPath:(NSString *)soundPath attachmentImage:(UIImage *)attachmentImage overrideBundleImage:(UIImage *)overrideBundleImage;
@end
%hook MPUNowPlayingController
static NSString *cachedTitle;
-(void)_updateCurrentNowPlaying{
%orig;
double delayInSeconds = 0.5;
dispatch_time_t popTime = dispatch_time(DISPATCH_TIME_NOW, (int64_t)(delayInSeconds * NSEC_PER_SEC));
dispatch_after(popTime, dispatch_get_main_queue(), ^(void){
if(self.isPlaying && ([self.nowPlayingAppDisplayID isEqualToString:@"com.apple.Music"] || [self.nowPlayingAppDisplayID isEqualToString:@"com.spotify.client"]) && ![cachedTitle isEqualToString:self.currentNowPlayingMetadata.title]){
cachedTitle = [self.currentNowPlayingMetadata.title copy];
[[objc_getClass("JBBulletinManager") sharedInstance] showBulletinWithTitle:self.currentNowPlayingMetadata.title message:self.currentNowPlayingMetadata.artist bundleID:self.nowPlayingAppDisplayID];
}
});
}
%end

Binary file not shown.

9
control Normal file
View File

@ -0,0 +1,9 @@
Package: com.gilshahar7.notifymusic
Name: NotifyMusic
Depends: mobilesubstrate, net.limneos.libbulletin
Version: 0.0.1
Architecture: iphoneos-arm
Description: An awesome MobileSubstrate tweak!
Maintainer: gilshahar7
Author: gilshahar7
Section: Tweaks