Skip to content

Commit

Permalink
Convert APCDataSubstrate to protocol
Browse files Browse the repository at this point in the history
  • Loading branch information
p2 committed May 14, 2015
1 parent c93c3ac commit 20313b9
Show file tree
Hide file tree
Showing 19 changed files with 269 additions and 137 deletions.
40 changes: 24 additions & 16 deletions APCAppCore/APCAppCore.xcodeproj/project.pbxproj
Expand Up @@ -326,6 +326,8 @@
EE028FE41AF94B36001C8251 /* APCKeychainStore+Passcode.m in Sources */ = {isa = PBXBuildFile; fileRef = EE028FE21AF94B36001C8251 /* APCKeychainStore+Passcode.m */; };
EE4B95251AF82BA6000097C7 /* NSError+Bridge.h in Headers */ = {isa = PBXBuildFile; fileRef = EE4B95231AF82BA6000097C7 /* NSError+Bridge.h */; };
EE4B95261AF82BA6000097C7 /* NSError+Bridge.m in Sources */ = {isa = PBXBuildFile; fileRef = EE4B95241AF82BA6000097C7 /* NSError+Bridge.m */; };
EEF68D031B051FD6004A8AA0 /* APCCoreDataSubstrate.h in Headers */ = {isa = PBXBuildFile; fileRef = EEF68D021B051FD6004A8AA0 /* APCCoreDataSubstrate.h */; settings = {ATTRIBUTES = (Public, ); }; };
EEF68D051B05200F004A8AA0 /* APCDataSubstrate.h in Headers */ = {isa = PBXBuildFile; fileRef = EEF68D041B05200F004A8AA0 /* APCDataSubstrate.h */; settings = {ATTRIBUTES = (Public, ); }; };
F50738C01A682E12004CF100 /* APCDateRange.h in Headers */ = {isa = PBXBuildFile; fileRef = F50738BE1A682E12004CF100 /* APCDateRange.h */; settings = {ATTRIBUTES = (Public, ); }; };
F50738C11A682E12004CF100 /* APCDateRange.m in Sources */ = {isa = PBXBuildFile; fileRef = F50738BF1A682E12004CF100 /* APCDateRange.m */; };
F5306CCD1A8BE7F600732E60 /* ORKQuestionResult+APCHelper.h in Headers */ = {isa = PBXBuildFile; fileRef = F5306CCB1A8BE7F600732E60 /* ORKQuestionResult+APCHelper.h */; settings = {ATTRIBUTES = (Public, ); }; };
Expand Down Expand Up @@ -495,10 +497,10 @@
F5F129E31A2F78490015982C /* APCDataMonitor+Bridge.m in Sources */ = {isa = PBXBuildFile; fileRef = F5F128861A2F78490015982C /* APCDataMonitor+Bridge.m */; };
F5F129E41A2F78490015982C /* APCDataMonitor.h in Headers */ = {isa = PBXBuildFile; fileRef = F5F128871A2F78490015982C /* APCDataMonitor.h */; settings = {ATTRIBUTES = (Public, ); }; };
F5F129E51A2F78490015982C /* APCDataMonitor.m in Sources */ = {isa = PBXBuildFile; fileRef = F5F128881A2F78490015982C /* APCDataMonitor.m */; };
F5F129EA1A2F78490015982C /* APCDataSubstrate+ResearchKit.h in Headers */ = {isa = PBXBuildFile; fileRef = F5F1288E1A2F78490015982C /* APCDataSubstrate+ResearchKit.h */; settings = {ATTRIBUTES = (Public, ); }; };
F5F129EB1A2F78490015982C /* APCDataSubstrate+ResearchKit.m in Sources */ = {isa = PBXBuildFile; fileRef = F5F1288F1A2F78490015982C /* APCDataSubstrate+ResearchKit.m */; };
F5F129EC1A2F78490015982C /* APCDataSubstrate.h in Headers */ = {isa = PBXBuildFile; fileRef = F5F128901A2F78490015982C /* APCDataSubstrate.h */; settings = {ATTRIBUTES = (Public, ); }; };
F5F129ED1A2F78490015982C /* APCDataSubstrate.m in Sources */ = {isa = PBXBuildFile; fileRef = F5F128911A2F78490015982C /* APCDataSubstrate.m */; };
F5F129EA1A2F78490015982C /* APCAppDataSubstrate+ResearchKit.h in Headers */ = {isa = PBXBuildFile; fileRef = F5F1288E1A2F78490015982C /* APCAppDataSubstrate+ResearchKit.h */; settings = {ATTRIBUTES = (Public, ); }; };
F5F129EB1A2F78490015982C /* APCAppDataSubstrate+ResearchKit.m in Sources */ = {isa = PBXBuildFile; fileRef = F5F1288F1A2F78490015982C /* APCAppDataSubstrate+ResearchKit.m */; };
F5F129EC1A2F78490015982C /* APCAppDataSubstrate.h in Headers */ = {isa = PBXBuildFile; fileRef = F5F128901A2F78490015982C /* APCAppDataSubstrate.h */; settings = {ATTRIBUTES = (Public, ); }; };
F5F129ED1A2F78490015982C /* APCAppDataSubstrate.m in Sources */ = {isa = PBXBuildFile; fileRef = F5F128911A2F78490015982C /* APCAppDataSubstrate.m */; };
F5F129EE1A2F78490015982C /* APCDBStatus+AddOn.h in Headers */ = {isa = PBXBuildFile; fileRef = F5F128931A2F78490015982C /* APCDBStatus+AddOn.h */; settings = {ATTRIBUTES = (Public, ); }; };
F5F129EF1A2F78490015982C /* APCDBStatus+AddOn.m in Sources */ = {isa = PBXBuildFile; fileRef = F5F128941A2F78490015982C /* APCDBStatus+AddOn.m */; };
F5F129F01A2F78490015982C /* APCDBStatus.h in Headers */ = {isa = PBXBuildFile; fileRef = F5F128951A2F78490015982C /* APCDBStatus.h */; settings = {ATTRIBUTES = (Public, ); }; };
Expand Down Expand Up @@ -1009,6 +1011,8 @@
EE028FE21AF94B36001C8251 /* APCKeychainStore+Passcode.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = "APCKeychainStore+Passcode.m"; sourceTree = "<group>"; };
EE4B95231AF82BA6000097C7 /* NSError+Bridge.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = "NSError+Bridge.h"; sourceTree = "<group>"; };
EE4B95241AF82BA6000097C7 /* NSError+Bridge.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = "NSError+Bridge.m"; sourceTree = "<group>"; };
EEF68D021B051FD6004A8AA0 /* APCCoreDataSubstrate.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = APCCoreDataSubstrate.h; sourceTree = "<group>"; };
EEF68D041B05200F004A8AA0 /* APCDataSubstrate.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = APCDataSubstrate.h; sourceTree = "<group>"; };
F50738BE1A682E12004CF100 /* APCDateRange.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = APCDateRange.h; sourceTree = "<group>"; };
F50738BF1A682E12004CF100 /* APCDateRange.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = APCDateRange.m; sourceTree = "<group>"; };
F5179B2919D09128001DCCB7 /* APCAppCore.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = APCAppCore.framework; sourceTree = BUILT_PRODUCTS_DIR; };
Expand Down Expand Up @@ -1179,10 +1183,10 @@
F5F128861A2F78490015982C /* APCDataMonitor+Bridge.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; lineEnding = 0; path = "APCDataMonitor+Bridge.m"; sourceTree = "<group>"; xcLanguageSpecificationIdentifier = xcode.lang.objc; };
F5F128871A2F78490015982C /* APCDataMonitor.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = APCDataMonitor.h; sourceTree = "<group>"; };
F5F128881A2F78490015982C /* APCDataMonitor.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; lineEnding = 0; path = APCDataMonitor.m; sourceTree = "<group>"; xcLanguageSpecificationIdentifier = xcode.lang.objc; };
F5F1288E1A2F78490015982C /* APCDataSubstrate+ResearchKit.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = "APCDataSubstrate+ResearchKit.h"; sourceTree = "<group>"; };
F5F1288F1A2F78490015982C /* APCDataSubstrate+ResearchKit.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; lineEnding = 0; path = "APCDataSubstrate+ResearchKit.m"; sourceTree = "<group>"; xcLanguageSpecificationIdentifier = xcode.lang.objc; };
F5F128901A2F78490015982C /* APCDataSubstrate.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = APCDataSubstrate.h; sourceTree = "<group>"; };
F5F128911A2F78490015982C /* APCDataSubstrate.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = APCDataSubstrate.m; sourceTree = "<group>"; };
F5F1288E1A2F78490015982C /* APCAppDataSubstrate+ResearchKit.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = "APCAppDataSubstrate+ResearchKit.h"; sourceTree = "<group>"; };
F5F1288F1A2F78490015982C /* APCAppDataSubstrate+ResearchKit.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; lineEnding = 0; path = "APCAppDataSubstrate+ResearchKit.m"; sourceTree = "<group>"; xcLanguageSpecificationIdentifier = xcode.lang.objc; };
F5F128901A2F78490015982C /* APCAppDataSubstrate.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = APCAppDataSubstrate.h; sourceTree = "<group>"; };
F5F128911A2F78490015982C /* APCAppDataSubstrate.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = APCAppDataSubstrate.m; sourceTree = "<group>"; };
F5F128931A2F78490015982C /* APCDBStatus+AddOn.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = "APCDBStatus+AddOn.h"; sourceTree = "<group>"; };
F5F128941A2F78490015982C /* APCDBStatus+AddOn.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; lineEnding = 0; path = "APCDBStatus+AddOn.m"; sourceTree = "<group>"; xcLanguageSpecificationIdentifier = xcode.lang.objc; };
F5F128951A2F78490015982C /* APCDBStatus.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = APCDBStatus.h; sourceTree = "<group>"; };
Expand Down Expand Up @@ -2380,10 +2384,12 @@
F5F128891A2F78490015982C /* DataSubstrate */ = {
isa = PBXGroup;
children = (
F5F128901A2F78490015982C /* APCDataSubstrate.h */,
F5F128911A2F78490015982C /* APCDataSubstrate.m */,
F5F1288E1A2F78490015982C /* APCDataSubstrate+ResearchKit.h */,
F5F1288F1A2F78490015982C /* APCDataSubstrate+ResearchKit.m */,
EEF68D041B05200F004A8AA0 /* APCDataSubstrate.h */,
EEF68D021B051FD6004A8AA0 /* APCCoreDataSubstrate.h */,
F5F128901A2F78490015982C /* APCAppDataSubstrate.h */,
F5F128911A2F78490015982C /* APCAppDataSubstrate.m */,
F5F1288E1A2F78490015982C /* APCAppDataSubstrate+ResearchKit.h */,
F5F1288F1A2F78490015982C /* APCAppDataSubstrate+ResearchKit.m */,
F5F128921A2F78490015982C /* Model */,
);
path = DataSubstrate;
Expand Down Expand Up @@ -2867,6 +2873,7 @@
CFFDED731A95731F00B25581 /* APCMedicationTrackerCalendarWeeklyView.h in Headers */,
F5F12AF01A2F78490015982C /* APCDashboardProgressTableViewCell.h in Headers */,
08EA2AB31A7AD564007549C0 /* UIImage+ImageEffects.h in Headers */,
EEF68D051B05200F004A8AA0 /* APCDataSubstrate.h in Headers */,
5BB10C0A1A91D540002D2DD2 /* APCStudyVideoCollectionViewCell.h in Headers */,
5BD6EBC41A9D905100C3BFB0 /* APCPermissionPrimingViewController.h in Headers */,
3654318D1A9A7BC200D66D97 /* APCMedTrackerInflatableItem.h in Headers */,
Expand Down Expand Up @@ -2932,6 +2939,7 @@
CFEF5CAD1A807DE4009A8634 /* APCCustomBackButton.h in Headers */,
F5B946411A7309A20034C522 /* ZZOldArchiveEntry.h in Headers */,
CFFDEDEF1A95734000B25581 /* APCMedicationNameViewController.h in Headers */,
EEF68D031B051FD6004A8AA0 /* APCCoreDataSubstrate.h in Headers */,
CFFDEDE31A95734000B25581 /* APCColorSwatchTableViewCell.h in Headers */,
F5F12ADE1A2F78490015982C /* APCShareTableViewCell.h in Headers */,
F5F12AE41A2F78490015982C /* APCTintedTableViewCell.h in Headers */,
Expand All @@ -2950,7 +2958,7 @@
7B6C8CBF1AA26ECE0007B560 /* APCConsentTextChoiceQuestion.h in Headers */,
7B0DC4141A5EFDDA0072EE80 /* APCActivitiesViewWithNoTask.h in Headers */,
36AAB3541A9A760D00FAC255 /* APCMedTrackerPrescriptionColor.h in Headers */,
F5F129EA1A2F78490015982C /* APCDataSubstrate+ResearchKit.h in Headers */,
F5F129EA1A2F78490015982C /* APCAppDataSubstrate+ResearchKit.h in Headers */,
F5306CCD1A8BE7F600732E60 /* ORKQuestionResult+APCHelper.h in Headers */,
F5B947E11A73272C0034C522 /* APCDeviceHardware.h in Headers */,
F5B946361A7309A20034C522 /* ZZFileChannel.h in Headers */,
Expand Down Expand Up @@ -3086,7 +3094,7 @@
3627D34C1A9A7517006B02E8 /* APCMedTrackerPossibleDosage.h in Headers */,
369E27FC1A96B7A200D35DFA /* APCMedicationWeeklySchedule.h in Headers */,
F5F129F81A2F78490015982C /* APCResult.h in Headers */,
F5F129EC1A2F78490015982C /* APCDataSubstrate.h in Headers */,
F5F129EC1A2F78490015982C /* APCAppDataSubstrate.h in Headers */,
5B827B551A80CB0400C685A3 /* APCFadeAnimator.h in Headers */,
F5B946341A7309A20034C522 /* ZZError.h in Headers */,
369E27FE1A96B7A200D35DFA /* APCMedTrackerDailyDosageRecord+Helper.h in Headers */,
Expand Down Expand Up @@ -3456,12 +3464,12 @@
CFFDED7F1A95731F00B25581 /* NSDictionary+MedicationTracker.m in Sources */,
F5F12A721A2F78490015982C /* APCConcentricProgressView.m in Sources */,
7BA5D99F1AA43F50006F505F /* APCStoredUserData.m in Sources */,
F5F129ED1A2F78490015982C /* APCDataSubstrate.m in Sources */,
F5F129ED1A2F78490015982C /* APCAppDataSubstrate.m in Sources */,
F5B947FF1A73272C0034C522 /* APCScheduleExpression.m in Sources */,
F5306CCE1A8BE7F600732E60 /* ORKQuestionResult+APCHelper.m in Sources */,
CFFDEDF01A95734000B25581 /* APCMedicationNameViewController.m in Sources */,
F54DDD261A8026010073E4B4 /* APCCoreMotionTracker.m in Sources */,
F5F129EB1A2F78490015982C /* APCDataSubstrate+ResearchKit.m in Sources */,
F5F129EB1A2F78490015982C /* APCAppDataSubstrate+ResearchKit.m in Sources */,
3627D34D1A9A7517006B02E8 /* APCMedTrackerPossibleDosage.m in Sources */,
5B9B36A41A95D9B500389F42 /* APCActivitiesTintedTableViewCell.m in Sources */,
F5F12AC61A2F78490015982C /* APCLearnStudyDetailsViewController.m in Sources */,
Expand Down
4 changes: 2 additions & 2 deletions APCAppCore/APCAppCore/APCAppCore.h
Expand Up @@ -46,8 +46,8 @@ FOUNDATION_EXPORT const unsigned char APCAppCoreVersionString[];
#import <APCAppCore/APCAppDelegate.h>
#import <APCAppCore/APCDataMonitor.h>
#import <APCAppCore/APCDataMonitor+Bridge.h>
#import <APCAppCore/APCDataSubstrate.h>
#import <APCAppCore/APCDataSubstrate+ResearchKit.h>
#import <APCAppCore/APCAppDataSubstrate.h>
#import <APCAppCore/APCAppDataSubstrate+ResearchKit.h>
#import <APCAppCore/APCModel.h>
#import <APCAppCore/APCParameters.h>
#import <APCAppCore/APCPermissionsManager.h>
Expand Down
10 changes: 5 additions & 5 deletions APCAppCore/APCAppCore/DataMonitor/APCDataMonitor.h
Expand Up @@ -31,15 +31,15 @@
// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
//

#import <Foundation/Foundation.h>
#import <UIKit/UIKit.h>
#import "APCCoreDataSubstrate.h"

@class APCDataSubstrate, APCScheduler;
@class APCScheduler;

@interface APCDataMonitor : NSObject


- (instancetype)initWithDataSubstrate: (APCDataSubstrate*) dataSubstrate scheduler: (APCScheduler*) scheduler;
- (instancetype)initWithDataSubstrate:(id<APCCoreDataSubstrate>)dataSubstrate scheduler:(APCScheduler *)scheduler;

- (void) appFinishedLaunching;
- (void) appBecameActive;
Expand All @@ -53,8 +53,8 @@
/*********************************************************************************/

//Declaring as weak so as not to hold on to below objects
@property (weak, nonatomic) APCDataSubstrate * dataSubstrate;
@property (weak, nonatomic) APCScheduler * scheduler;
@property (weak, nonatomic) id<APCCoreDataSubstrate> dataSubstrate;
@property (weak, nonatomic) APCScheduler *scheduler;
@property (nonatomic) BOOL batchUploadingInProgress;

@end
2 changes: 1 addition & 1 deletion APCAppCore/APCAppCore/DataMonitor/APCDataMonitor.m
Expand Up @@ -41,7 +41,7 @@ @interface APCDataMonitor ()

@implementation APCDataMonitor

- (instancetype)initWithDataSubstrate:(APCDataSubstrate *)dataSubstrate scheduler:(APCScheduler *)scheduler
- (instancetype)initWithDataSubstrate:(id<APCCoreDataSubstrate>)dataSubstrate scheduler:(APCScheduler *)scheduler
{
self = [super init];
if (self) {
Expand Down
@@ -1,5 +1,5 @@
//
// APCDataSubstrate+ResearchKit.h
// APCAppDataSubstrate+ResearchKit.h
// APCAppCore
//
// Copyright (c) 2015, Apple Inc. All rights reserved.
Expand Down Expand Up @@ -31,9 +31,9 @@
// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
//

#import "APCDataSubstrate.h"
#import "APCAppDataSubstrate.h"

@interface APCDataSubstrate (ResearchKit)
@interface APCAppDataSubstrate (ResearchKit)

/*********************************************************************************/
#pragma mark - Methods meant only for Categories
Expand Down
@@ -1,5 +1,5 @@
//
// APCDataSubstrate+ResearchKit.m
// APCAppDataSubstrate+ResearchKit.m
// APCAppCore
//
// Copyright (c) 2015, Apple Inc. All rights reserved.
Expand Down Expand Up @@ -31,7 +31,7 @@
// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
//

#import "APCDataSubstrate+ResearchKit.h"
#import "APCAppDataSubstrate+ResearchKit.h"
#import "APCAppCore.h"

#import <ResearchKit/ResearchKit.h>
Expand All @@ -48,7 +48,7 @@
//static NSInteger const APCDataLoggerManagerMaximumInputBytes = 10;
//static NSInteger const APCDataLoggerManagerMaximumFiles = 0;

@implementation APCDataSubstrate (ResearchKit)
@implementation APCAppDataSubstrate (ResearchKit)

/*********************************************************************************/
#pragma mark - ResearchKit Subsystem
Expand Down
94 changes: 94 additions & 0 deletions APCAppCore/APCAppCore/DataSubstrate/APCAppDataSubstrate.h
@@ -0,0 +1,94 @@
//
// APCAppDataSubstrate.h
// APCAppCore
//
// Copyright (c) 2015, Apple Inc. All rights reserved.
//
// Redistribution and use in source and binary forms, with or without modification,
// are permitted provided that the following conditions are met:
//
// 1. Redistributions of source code must retain the above copyright notice, this
// list of conditions and the following disclaimer.
//
// 2. Redistributions in binary form must reproduce the above copyright notice,
// this list of conditions and the following disclaimer in the documentation and/or
// other materials provided with the distribution.
//
// 3. Neither the name of the copyright holder(s) nor the names of any contributors
// may be used to endorse or promote products derived from this software without
// specific prior written permission. No license is granted to the trademarks of
// the copyright holders even if such marks are included in this software.
//
// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
// ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
// DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
// SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
// CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
//

#import <Foundation/Foundation.h>
#import <CoreData/CoreData.h>
#import <HealthKit/HealthKit.h>
#import "APCCoreDataSubstrate.h"

@class APCUser;

@interface APCAppDataSubstrate : NSObject <APCCoreDataSubstrate>


#pragma mark - Initializer

- (instancetype)initWithPersistentStorePath:(NSString *)storePath additionalModels:(NSManagedObjectModel *)mergedModels studyIdentifier:(NSString *)studyIdentifier;


#pragma mark - ResearchKit Subsystem Public Properties & Passive Location Tracking

@property (assign) BOOL justJoined;
@property (strong, nonatomic) NSString *logDirectory;
@property (nonatomic, strong) APCUser *currentUser;


#pragma mark - CoreData

@property (nonatomic, strong) NSString *storePath;
@property (nonatomic, strong) NSPersistentStoreCoordinator *persistentStoreCoordinator;
@property (nonatomic, strong) NSManagedObjectModel *managedObjectModel;

/** Main context for use in View Controllers, Fetch Results Controllers etc. */
@property (nonatomic, strong) NSManagedObjectContext * mainContext;

/** Persistent context: Parent of main context.
* Please create a child context of persistentContext for any background processing tasks.
*/
@property (nonatomic, strong) NSManagedObjectContext * persistentContext;


#pragma mark - Core Data Public Methods

- (void)loadStaticTasksAndSchedules:(NSDictionary *)jsonDictionary;

/** EXERCISE CAUTION IN CALLING THIS METHOD. */
- (void)resetCoreData;


#pragma mark - Core Data Helpers - ONLY RETURNS in NSManagedObjects in mainContext

- (NSUInteger)countOfAllScheduledTasksForToday;
- (NSUInteger)countOfCompletedScheduledTasksForToday;


#pragma mark - HealthKit

@property (nonatomic, strong) HKHealthStore *healthStore;


#pragma mark - Parameters

@property (strong, nonatomic) APCParameters *parameters;

@end

0 comments on commit 20313b9

Please sign in to comment.