|  |  |  | // | 
					
						
							|  |  |  | //  Copyright (c) 2018 Open Whisper Systems. All rights reserved. | 
					
						
							|  |  |  | // | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | #import "OWS102MoveLoggingPreferenceToUserDefaults.h" | 
					
						
							|  |  |  | #import "DebugLogger.h" | 
					
						
							|  |  |  | #import "Environment.h" | 
					
						
							|  |  |  | #import "OWSPreferences.h" | 
					
						
							|  |  |  | #import <YapDatabase/YapDatabase.h> | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | // Increment a similar constant for every future DBMigration | 
					
						
							|  |  |  | static NSString *const OWS102MoveLoggingPreferenceToUserDefaultsMigrationId = @"102"; | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | @implementation OWS102MoveLoggingPreferenceToUserDefaults | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | + (NSString *)migrationId | 
					
						
							|  |  |  | { | 
					
						
							|  |  |  |     return OWS102MoveLoggingPreferenceToUserDefaultsMigrationId; | 
					
						
							|  |  |  | } | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | - (void)runUpWithTransaction:(YapDatabaseReadWriteTransaction *)transaction | 
					
						
							|  |  |  | { | 
					
						
							|  |  |  |     OWSAssert(transaction); | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     DDLogWarn(@"[OWS102MoveLoggingPreferenceToUserDefaultsMigrationId] copying existing logging preference to " | 
					
						
							|  |  |  |               @"NSUserDefaults"); | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     NSNumber *existingValue = | 
					
						
							|  |  |  |         [transaction objectForKey:OWSPreferencesKeyEnableDebugLog inCollection:OWSPreferencesSignalDatabaseCollection]; | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     if (existingValue) { | 
					
						
							|  |  |  |         DDLogInfo(@"%@ assigning existing value: %@", self.logTag, existingValue); | 
					
						
							|  |  |  |         [OWSPreferences setIsLoggingEnabled:[existingValue boolValue]]; | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |         if (![existingValue boolValue]) { | 
					
						
							|  |  |  |             DDLogInfo(@"%@ Disabling file logger after one-time log settings migration.", self.logTag); | 
					
						
							|  |  |  |             // Since we're migrating, we didn't have the appropriate value on startup, and incorrectly started logging. | 
					
						
							|  |  |  |             [DebugLogger.sharedLogger disableFileLogging]; | 
					
						
							|  |  |  |         } else { | 
					
						
							|  |  |  |             DDLogInfo(@"%@ Continuing to log after one-time log settings migration.", self.logTag); | 
					
						
							|  |  |  |         } | 
					
						
							|  |  |  |     } else { | 
					
						
							|  |  |  |         DDLogInfo(@"%@ not assigning any value, since no previous value was stored.", self.logTag); | 
					
						
							|  |  |  |     } | 
					
						
							|  |  |  | } | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | @end |