From 47594faf5f96fd7c2adf3ff2379b6c4d119e9866 Mon Sep 17 00:00:00 2001 From: moritz haarmann Date: Tue, 18 Feb 2014 11:56:07 +0100 Subject: [PATCH] + Improved Persistence handling. --- Classes/BITFeedbackComposeViewController.m | 1 + Classes/BITFeedbackManager.m | 2 ++ Classes/BITFeedbackMessage.h | 7 +++++++ Classes/BITFeedbackMessage.m | 9 +++++++++ Classes/BITFeedbackMessageAttachment.h | 2 ++ Classes/BITFeedbackMessageAttachment.m | 8 ++++++++ Support/HockeySDK.xcodeproj/project.pbxproj | 2 -- 7 files changed, 29 insertions(+), 2 deletions(-) diff --git a/Classes/BITFeedbackComposeViewController.m b/Classes/BITFeedbackComposeViewController.m index 1ab8c55785..3d1bf6a144 100644 --- a/Classes/BITFeedbackComposeViewController.m +++ b/Classes/BITFeedbackComposeViewController.m @@ -458,6 +458,7 @@ if (self.selectedAttachmentIndex != NSNotFound){ BITFeedbackMessageAttachment* attachment = [self.attachments objectAtIndex:self.selectedAttachmentIndex]; + [attachment deleteContents]; // mandatory call to delete the files associatd. [self.attachments removeObject:attachment]; } diff --git a/Classes/BITFeedbackManager.m b/Classes/BITFeedbackManager.m index 75cf6a4882..58fb385137 100644 --- a/Classes/BITFeedbackManager.m +++ b/Classes/BITFeedbackManager.m @@ -572,6 +572,8 @@ - (BOOL)deleteMessageAtIndex:(NSUInteger)index { if (_feedbackList && [_feedbackList count] > index && [_feedbackList objectAtIndex:index]) { + BITFeedbackMessage *message = _feedbackList[index]; + [message deleteContents]; [_feedbackList removeObjectAtIndex:index]; [self saveMessages]; diff --git a/Classes/BITFeedbackMessage.h b/Classes/BITFeedbackMessage.h index fe736d00ca..baa6d6fdef 100644 --- a/Classes/BITFeedbackMessage.h +++ b/Classes/BITFeedbackMessage.h @@ -73,4 +73,11 @@ typedef NS_ENUM(NSInteger, BITFeedbackMessageStatus) { @property (nonatomic) BITFeedbackMessageStatus status; @property (nonatomic) BOOL userMessage; +/** + * This method must be called before a feedback message is deleted. It handles the + * deletion of any data stored on the device in association with the feedback message. + */ +-(void)deleteContents; + + @end diff --git a/Classes/BITFeedbackMessage.m b/Classes/BITFeedbackMessage.m index 7d9fed3785..eb44289600 100644 --- a/Classes/BITFeedbackMessage.m +++ b/Classes/BITFeedbackMessage.m @@ -28,6 +28,7 @@ #import "BITFeedbackMessage.h" +#import "BITFeedbackMessageAttachment.h" @implementation BITFeedbackMessage @@ -82,4 +83,12 @@ return self; } +#pragma mark - Deletion + +-(void)deleteContents { + for (BITFeedbackMessageAttachment *attachment in self.attachments){ + [attachment deleteContents]; + } +} + @end diff --git a/Classes/BITFeedbackMessageAttachment.h b/Classes/BITFeedbackMessageAttachment.h index 595bf51c65..77a4b92b11 100644 --- a/Classes/BITFeedbackMessageAttachment.h +++ b/Classes/BITFeedbackMessageAttachment.h @@ -44,4 +44,6 @@ - (UIImage *)thumbnailWithSize:(CGSize)size; +- (void)deleteContents; + @end diff --git a/Classes/BITFeedbackMessageAttachment.m b/Classes/BITFeedbackMessageAttachment.m index 99865897f9..ab8f8d8f46 100644 --- a/Classes/BITFeedbackMessageAttachment.m +++ b/Classes/BITFeedbackMessageAttachment.m @@ -150,4 +150,12 @@ return (__bridge NSString *)string; } +- (void)deleteContents { + if (self.filename){ + [[NSFileManager defaultManager] removeItemAtPath:self.filename error:nil]; + self.filename = nil; + } +} + + @end diff --git a/Support/HockeySDK.xcodeproj/project.pbxproj b/Support/HockeySDK.xcodeproj/project.pbxproj index 50cca02c96..d2e9b0864a 100644 --- a/Support/HockeySDK.xcodeproj/project.pbxproj +++ b/Support/HockeySDK.xcodeproj/project.pbxproj @@ -134,7 +134,6 @@ 97F0F9FD18ABAECD00EF50AA /* iconCamera.png in Resources */ = {isa = PBXBuildFile; fileRef = 97F0F9FB18ABAECD00EF50AA /* iconCamera.png */; }; 97F0F9FE18ABAECD00EF50AA /* iconCamera@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = 97F0F9FC18ABAECD00EF50AA /* iconCamera@2x.png */; }; 97F0FA0118AE375E00EF50AA /* BITImageAnnotationViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = 97F0FA0018AE375E00EF50AA /* BITImageAnnotationViewController.m */; }; - 97F0FA0418AE5AED00EF50AA /* BITFeedbackMessageAttachment.m in Sources */ = {isa = PBXBuildFile; fileRef = 97F0FA0318AE5AED00EF50AA /* BITFeedbackMessageAttachment.m */; }; 97F0FA0518B2294D00EF50AA /* BITFeedbackMessageAttachment.m in Sources */ = {isa = PBXBuildFile; fileRef = 97F0FA0318AE5AED00EF50AA /* BITFeedbackMessageAttachment.m */; }; E405266217A2AD300096359C /* BITFeedbackManagerDelegate.h in Headers */ = {isa = PBXBuildFile; fileRef = E405266117A2AD300096359C /* BITFeedbackManagerDelegate.h */; settings = {ATTRIBUTES = (Public, ); }; }; E40E0B0917DA19DC005E38C1 /* BITHockeyAppClientTests.m in Sources */ = {isa = PBXBuildFile; fileRef = E40E0B0817DA19DC005E38C1 /* BITHockeyAppClientTests.m */; }; @@ -923,7 +922,6 @@ buildActionMask = 2147483647; files = ( 97F0FA0118AE375E00EF50AA /* BITImageAnnotationViewController.m in Sources */, - 97F0FA0418AE5AED00EF50AA /* BITFeedbackMessageAttachment.m in Sources */, ); runOnlyForDeploymentPostprocessing = 0; };