F4268034195332A000B2C27F /* HMPowerUpCommand.m in Sources */ = {isa = PBXBuildFile; fileRef = F4268033195332A000B2C27F /* HMPowerUpCommand.m */; };
F42680371957000200B2C27F /* HMTimerCountFormatter.m in Sources */ = {isa = PBXBuildFile; fileRef = F42680361957000200B2C27F /* HMTimerCountFormatter.m */; };
F42CBB231D1F967F004C2AE2 /* HMHistoryMarkTransformer.m in Sources */ = {isa = PBXBuildFile; fileRef = F42CBB221D1F967F004C2AE2 /* HMHistoryMarkTransformer.m */; };
+ F42CBB261D21583C004C2AE2 /* HMHistoryItemCleaner.m in Sources */ = {isa = PBXBuildFile; fileRef = F42CBB251D21583C004C2AE2 /* HMHistoryItemCleaner.m */; };
F43769D61ADE86B200DE6204 /* HMQuestListCommand.m in Sources */ = {isa = PBXBuildFile; fileRef = F43769D51ADE86B200DE6204 /* HMQuestListCommand.m */; };
F43769DA1ADE890800DE6204 /* HMQuestListViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = F43769D81ADE890800DE6204 /* HMQuestListViewController.m */; };
F43769DE1AE1248800DE6204 /* HMAirBattleCommand.m in Sources */ = {isa = PBXBuildFile; fileRef = F43769DD1AE1248800DE6204 /* HMAirBattleCommand.m */; };
F42CBB201D1ED41D004C2AE2 /* LocalData 3.xcdatamodel */ = {isa = PBXFileReference; lastKnownFileType = wrapper.xcdatamodel; path = "LocalData 3.xcdatamodel"; sourceTree = "<group>"; };
F42CBB211D1F967F004C2AE2 /* HMHistoryMarkTransformer.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = HMHistoryMarkTransformer.h; sourceTree = "<group>"; };
F42CBB221D1F967F004C2AE2 /* HMHistoryMarkTransformer.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = HMHistoryMarkTransformer.m; sourceTree = "<group>"; };
+ F42CBB241D21583C004C2AE2 /* HMHistoryItemCleaner.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = HMHistoryItemCleaner.h; sourceTree = "<group>"; };
+ F42CBB251D21583C004C2AE2 /* HMHistoryItemCleaner.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = HMHistoryItemCleaner.m; sourceTree = "<group>"; };
F43769D41ADE86B200DE6204 /* HMQuestListCommand.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = HMQuestListCommand.h; sourceTree = "<group>"; };
F43769D51ADE86B200DE6204 /* HMQuestListCommand.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = HMQuestListCommand.m; sourceTree = "<group>"; };
F43769D71ADE890800DE6204 /* HMQuestListViewController.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = HMQuestListViewController.h; sourceTree = "<group>"; };
F4F9F89A1C6CB7D400D0EE76 /* HMFleet.m */,
F4F9F8A11C70AFB600D0EE76 /* HMFleetManager.h */,
F4F9F8A21C70AFB600D0EE76 /* HMFleetManager.m */,
+ F42CBB241D21583C004C2AE2 /* HMHistoryItemCleaner.h */,
+ F42CBB251D21583C004C2AE2 /* HMHistoryItemCleaner.m */,
F4D2CBBF18ACE7D7000EBC59 /* Command */,
F4BEEEA918D890660006F70C /* UI */,
F4BEEEA818D88FF30006F70C /* CoreData */,
F403893E1CAEA711002A264B /* HMMemberRequireInfoCommand.m in Sources */,
F46F104118A9B85E0063E503 /* HMJSONNode.m in Sources */,
F4BEEFDB1B0A219E004702B8 /* HMShipDeckCommand.m in Sources */,
+ F42CBB261D21583C004C2AE2 /* HMHistoryItemCleaner.m in Sources */,
F43F3D461A33F7D400D6DAF7 /* HMResetSortieCommand.m in Sources */,
F4131ECF190F5C08004F7F9A /* HMStoreCreateSlotItemHistoryCommand.m in Sources */,
F4AA05FB192B92C800844688 /* Temporary.xcdatamodeld in Sources */,
--- /dev/null
+//
+// HMHistoryItemCleaner.h
+// KCD
+//
+// Created by Hori,Masaki on 2016/06/27.
+// Copyright © 2016年 Hori,Masaki. All rights reserved.
+//
+
+#import <Foundation/Foundation.h>
+
+@interface HMHistoryItemCleaner : NSObject
+
+- (void)cleanOldHistoryItems;
+
+@end
--- /dev/null
+//
+// HMHistoryItemCleaner.m
+// KCD
+//
+// Created by Hori,Masaki on 2016/06/27.
+// Copyright © 2016年 Hori,Masaki. All rights reserved.
+//
+
+#import "HMHistoryItemCleaner.h"
+
+#import "HMUserDefaults.h"
+
+#import "HMLocalDataStore.h"
+
+
+@implementation HMHistoryItemCleaner
+
+- (void)cleanOldHistoryItems
+{
+ if(!HMStandardDefaults.cleanOldHistoryItems) return;
+
+ HMLocalDataStore *store = [HMLocalDataStore oneTimeEditor];
+
+ NSDate *date = [NSDate dateWithTimeIntervalSinceNow:-1 * HMStandardDefaults.cleanSiceDays * 24 * 60 * 60];
+ NSPredicate *p01 = [NSPredicate predicateWithFormat:@"date < %@", date];
+ NSPredicate *p02 = [NSPredicate predicateWithFormat:@"mark = 0 || mark = nil"];
+ NSPredicate *predicate = [NSCompoundPredicate andPredicateWithSubpredicates:@[p01, p02]];
+
+ NSError *error = nil;
+ NSArray<NSManagedObject *> *array = [store objectsWithEntityName:@"KaihatuHistory"
+ predicate:predicate
+ error:&error];
+ if(!error) {
+ for(NSManagedObject *obj in array) {
+ [store.managedObjectContext deleteObject:obj];
+ }
+ } else {
+ NSLog(@"%s ERROR: KaihatuHistory, %@", __PRETTY_FUNCTION__, error);
+ }
+
+ error = nil;
+ array = [store objectsWithEntityName:@"KenzoHistory"
+ predicate:predicate
+ error:&error];
+ if(!error) {
+ for(NSManagedObject *obj in array) {
+ [store.managedObjectContext deleteObject:obj];
+ }
+ } else {
+ NSLog(@"%s ERROR: KenzoHistory, %@", __PRETTY_FUNCTION__, error);
+ }
+
+ NSArray *area = @[@"1", @"2", @"3", @"4", @"5", @"6", @"7", @"8", @"9"];
+ NSPredicate *p03 = [NSPredicate predicateWithFormat:@"mapArea IN %@", area];
+ predicate = [NSCompoundPredicate andPredicateWithSubpredicates:@[predicate, p03]];
+
+ error = nil;
+ array = [store objectsWithEntityName:@"DropShipHistory"
+ predicate:predicate
+ error:&error];
+ if(!error) {
+ for(NSManagedObject *obj in array) {
+ [store.managedObjectContext deleteObject:obj];
+ }
+ } else {
+ NSLog(@"%s ERROR: DropShipHistory, %@", __PRETTY_FUNCTION__, error);
+ }
+}
+@end