Skip to content
This repository was archived by the owner on May 20, 2025. It is now read-only.

Commit 2ce18b0

Browse files
committed
is-first-run
1 parent d531972 commit 2ce18b0

File tree

2 files changed

+27
-8
lines changed

2 files changed

+27
-8
lines changed

CodePush.ios.js

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -61,6 +61,10 @@ function getCurrentPackage() {
6161
})
6262
.then((failedUpdate) => {
6363
localPackage.failedApply = failedUpdate;
64+
return NativeCodePush.isFirstRun(localPackage.packageHash);
65+
})
66+
.then((isFirstRun) => {
67+
localPackage.isFirstRun = isFirstRun;
6468
resolve(localPackage);
6569
})
6670
.catch(reject)

CodePush.m

Lines changed: 23 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -9,6 +9,7 @@ @implementation CodePush
99

1010
NSTimer *_timer;
1111
BOOL usingTestFolder = NO;
12+
BOOL didUpdate = NO;
1213

1314
NSString * const FailedUpdatesKey = @"FAILED_UPDATES";
1415
NSString * const UpdateBundleFileName = @"app.jsbundle";
@@ -112,15 +113,16 @@ - (void)startRollbackTimer:(int)rollbackTimeout
112113

113114
if (error) {
114115
reject(error);
115-
}
116-
117-
[self loadBundle];
118-
119-
if (0 != rollbackTimeout) {
120-
dispatch_async(dispatch_get_main_queue(), ^{
121-
[self startRollbackTimer:rollbackTimeout];
122-
});
116+
} else {
117+
didUpdate = YES;
118+
119+
[self loadBundle];
123120

121+
if (0 != rollbackTimeout) {
122+
dispatch_async(dispatch_get_main_queue(), ^{
123+
[self startRollbackTimer:rollbackTimeout];
124+
});
125+
}
124126
}
125127
});
126128
}
@@ -177,6 +179,19 @@ - (void)startRollbackTimer:(int)rollbackTimeout
177179
resolve(@(isFailedHash));
178180
}
179181

182+
RCT_EXPORT_METHOD(isFirstRun:(NSString *)packageHash
183+
resolve:(RCTPromiseResolveBlock)resolve
184+
rejecter:(RCTPromiseRejectBlock)reject)
185+
{
186+
NSError *error;
187+
BOOL isFirstRun = (nil != packageHash
188+
&& [packageHash length] > 0
189+
&& [packageHash isEqualToString:[CodePushPackage getCurrentPackageHash:&error]]
190+
&& didUpdate);
191+
resolve(@(isFirstRun));
192+
}
193+
194+
180195
RCT_EXPORT_METHOD(notifyApplicationReady:(RCTPromiseResolveBlock)resolve
181196
rejecter:(RCTPromiseRejectBlock)reject)
182197
{

0 commit comments

Comments
 (0)