Sfoglia il codice sorgente

Move bug reporter to separate class and allow the shake gesture also in Library view and during playback

Felix Paul Kühne 12 anni fa
parent
commit
c61d25a9ef

+ 1 - 0
AspenProject/VLCAppDelegate.m

@@ -14,6 +14,7 @@
 #import "UIDevice+SpeedCategory.h"
 
 #import "VLCPlaylistViewController.h"
+#import "VLCMenuViewController.h"
 #import "VLCMovieViewController.h"
 #import "PAPasscodeViewController.h"
 #import "UINavigationController+Theme.h"

+ 17 - 0
AspenProject/VLCBugreporter.h

@@ -0,0 +1,17 @@
+//
+//  VLCBugreporter.h
+//  VLC for iOS
+//
+//  Created by Felix Paul Kühne on 21.07.13.
+//  Copyright (c) 2013 VideoLAN. All rights reserved.
+//
+//  Refer to the COPYING file of the official project for license.
+//
+
+@interface VLCBugreporter : NSObject
+
++ (VLCBugreporter *)sharedInstance;
+
+- (void)handleBugreportRequest;
+
+@end

+ 54 - 0
AspenProject/VLCBugreporter.m

@@ -0,0 +1,54 @@
+//
+//  VLCBugreporter.m
+//  VLC for iOS
+//
+//  Created by Felix Paul Kühne on 21.07.13.
+//  Copyright (c) 2013 VideoLAN. All rights reserved.
+//
+//  Refer to the COPYING file of the official project for license.
+//
+
+#import "VLCBugreporter.h"
+
+@implementation VLCBugreporter
+
+static VLCBugreporter *_sharedInstance = nil;
+
++ (VLCBugreporter *)sharedInstance
+{
+    return _sharedInstance ? _sharedInstance : [[self alloc] init];
+}
+
+#pragma mark -
+#pragma mark Initialization
+
+- (id)init
+{
+    if (_sharedInstance) {
+        self = nil;
+        return _sharedInstance;
+    } else
+        _sharedInstance = [super init];
+
+    return _sharedInstance;
+}
+
+- (void)handleBugreportRequest
+{
+    UIAlertView *alert = [[UIAlertView alloc]
+                          initWithTitle:NSLocalizedString(@"BUG_REPORT_TITLE", @"")
+                          message:NSLocalizedString(@"BUG_REPORT_MESSAGE", @"") delegate:self
+                          cancelButtonTitle:NSLocalizedString(@"BUTTON_CANCEL", @"")
+                          otherButtonTitles:NSLocalizedString(@"BUG_REPORT_BUTTON", @""), nil];;
+    [alert show];
+}
+
+- (void)alertView:(UIAlertView *)alertView clickedButtonAtIndex:(NSInteger)buttonIndex
+{
+    if (buttonIndex == 1) {
+        NSURL *url = [NSURL URLWithString:@"https://trac.videolan.org/vlc/newticket"];
+        [[UIApplication sharedApplication] openURL:url];
+    }
+}
+
+@end

+ 3 - 15
AspenProject/VLCMenuViewController.m

@@ -23,6 +23,7 @@
 #import "UIBarButtonItem+Theme.h"
 #import "VLCOpenNetworkStreamViewController.h"
 #import "VLCHTTPDownloadViewController.h"
+#import "VLCBugreporter.h"
 
 #import <ifaddrs.h>
 #import <arpa/inet.h>
@@ -213,23 +214,10 @@
 }
 
 - (void)motionEnded:(UIEventSubtype)motion withEvent:(UIEvent *)event {
-    if (motion == UIEventSubtypeMotionShake) {
-        UIAlertView *alert = [[UIAlertView alloc]
-                              initWithTitle:NSLocalizedString(@"BUG_REPORT_TITLE", @"")
-                              message:NSLocalizedString(@"BUG_REPORT_MESSAGE", @"") delegate:self
-                              cancelButtonTitle:NSLocalizedString(@"BUTTON_CANCEL", @"")
-                              otherButtonTitles:NSLocalizedString(@"BUG_REPORT_BUTTON", @""), nil];;
-        [alert show];
-    }
+    if (motion == UIEventSubtypeMotionShake)
+        [[VLCBugreporter sharedInstance] handleBugreportRequest];
 }
 
-- (void)alertView:(UIAlertView *)alertView clickedButtonAtIndex:(NSInteger)buttonIndex
-{
-    if (buttonIndex == 1) {
-        NSURL *url = [NSURL URLWithString:@"https://trac.videolan.org/vlc/newticket"];
-        [[UIApplication sharedApplication] openURL:url];
-    }
-}
 - (void)_dismissModalViewController
 {
     [self dismissModalViewControllerAnimated:YES];

+ 8 - 0
AspenProject/VLCMovieViewController.m

@@ -13,6 +13,7 @@
 #import <AVFoundation/AVFoundation.h>
 #import <CommonCrypto/CommonDigest.h>
 #import "UIDevice+SpeedCategory.h"
+#import "VLCBugreporter.h"
 
 #define INPUT_RATE_DEFAULT  1000.
 
@@ -384,6 +385,13 @@
     return YES;
 }
 
+
+- (void)motionEnded:(UIEventSubtype)motion withEvent:(UIEvent *)event
+{
+    if (motion == UIEventSubtypeMotionShake)
+        [[VLCBugreporter sharedInstance] handleBugreportRequest];
+}
+
 - (void)remoteControlReceivedWithEvent:(UIEvent *)event
 {
     switch (event.subtype) {

+ 12 - 0
AspenProject/VLCPlaylistViewController.m

@@ -15,6 +15,7 @@
 #import "VLCMenuViewController.h"
 #import "UINavigationController+Theme.h"
 #import "NSString+SupportedMedia.h"
+#import "VLCBugreporter.h"
 
 @implementation EmptyLibraryView
 @end
@@ -111,6 +112,17 @@
     [[MLMediaLibrary sharedMediaLibrary] libraryDidDisappear];
 }
 
+- (BOOL)canBecomeFirstResponder
+{
+    return YES;
+}
+
+- (void)motionEnded:(UIEventSubtype)motion withEvent:(UIEvent *)event
+{
+    if (motion == UIEventSubtypeMotionShake)
+        [[VLCBugreporter sharedInstance] handleBugreportRequest];
+}
+
 - (void)removeMediaObject:(MLFile *)mediaObject
 {
     NSFileManager *fileManager = [NSFileManager defaultManager];

+ 6 - 0
VLC for iOS.xcodeproj/project.pbxproj

@@ -188,6 +188,7 @@
 		7DBC3B451711FC6C00DCF688 /* VLCAboutViewController~iphone.xib in Resources */ = {isa = PBXBuildFile; fileRef = 7DBC3B431711FC6C00DCF688 /* VLCAboutViewController~iphone.xib */; };
 		7DC87AEE17412A1F009DC250 /* VLCLinearProgressIndicator.m in Sources */ = {isa = PBXBuildFile; fileRef = 7DC87AED17412A1F009DC250 /* VLCLinearProgressIndicator.m */; };
 		7DC87AF217413EE3009DC250 /* VLCPlaylistGridView.xib in Resources */ = {isa = PBXBuildFile; fileRef = 7DC87AF117413EE3009DC250 /* VLCPlaylistGridView.xib */; };
+		7DD2A3A7179BFAFE003EB537 /* VLCBugreporter.m in Sources */ = {isa = PBXBuildFile; fileRef = 7DD2A3A6179BFAFE003EB537 /* VLCBugreporter.m */; };
 		7DDABBB71775A3C7003D8937 /* UIDevice+SpeedCategory.m in Sources */ = {isa = PBXBuildFile; fileRef = 7DDABBB61775A3C7003D8937 /* UIDevice+SpeedCategory.m */; };
 		7DDD0429172D98E5005A7B10 /* CFNetwork.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 7DDD0428172D98E5005A7B10 /* CFNetwork.framework */; };
 		7DE18629175BA9A5006C0173 /* badgeUnread@2x~ipad.png in Resources */ = {isa = PBXBuildFile; fileRef = 7DE1862B175BA9A5006C0173 /* badgeUnread@2x~ipad.png */; };
@@ -557,6 +558,8 @@
 		7DC87AEF17413634009DC250 /* de */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = de; path = de.lproj/Localizable.strings; sourceTree = "<group>"; };
 		7DC87AF017413A17009DC250 /* fr */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = fr; path = fr.lproj/Localizable.strings; sourceTree = "<group>"; };
 		7DC87AF117413EE3009DC250 /* VLCPlaylistGridView.xib */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = file.xib; name = VLCPlaylistGridView.xib; path = ../Resources/VLCPlaylistGridView.xib; sourceTree = "<group>"; };
+		7DD2A3A5179BFAFE003EB537 /* VLCBugreporter.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = VLCBugreporter.h; sourceTree = "<group>"; };
+		7DD2A3A6179BFAFE003EB537 /* VLCBugreporter.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = VLCBugreporter.m; sourceTree = "<group>"; };
 		7DDABBB51775A3A7003D8937 /* UIDevice+SpeedCategory.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = "UIDevice+SpeedCategory.h"; sourceTree = "<group>"; };
 		7DDABBB61775A3C7003D8937 /* UIDevice+SpeedCategory.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = "UIDevice+SpeedCategory.m"; sourceTree = "<group>"; };
 		7DDD0428172D98E5005A7B10 /* CFNetwork.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = CFNetwork.framework; path = System/Library/Frameworks/CFNetwork.framework; sourceTree = SDKROOT; };
@@ -1211,6 +1214,8 @@
 				7D94FCEE16DE7D1000F2623B /* VLCAppDelegate.m */,
 				7D07A4E6174EA47800759D10 /* VLCSettingsController.h */,
 				7D07A4E7174EA47800759D10 /* VLCSettingsController.m */,
+				7DD2A3A5179BFAFE003EB537 /* VLCBugreporter.h */,
+				7DD2A3A6179BFAFE003EB537 /* VLCBugreporter.m */,
 				7D2339AB176DE70E008D223C /* Menu */,
 				7D5F7ABA175265CB006CCCFA /* HTTP Connectivity */,
 				7D5F7AB9175265B2006CCCFA /* Playback */,
@@ -1674,6 +1679,7 @@
 				7A5061A2176E41160036E15D /* UIBarButtonItem+Theme.m in Sources */,
 				A7990067176E9CF3009E8267 /* VLCMenuButton.m in Sources */,
 				7DDABBB71775A3C7003D8937 /* UIDevice+SpeedCategory.m in Sources */,
+				7DD2A3A7179BFAFE003EB537 /* VLCBugreporter.m in Sources */,
 			);
 			runOnlyForDeploymentPostprocessing = 0;
 		};