Merge pull request #29 in BPHVB/mvm_core from feature/server_driven_session_extension to develop
* commit '098aded7edbe0159f51e4bce236c41f445288dd2': More aggressive session extension. Adjust timing of session timer extension. PR resolution. Allow the server to specify whether to extend the session timer.
This commit is contained in:
commit
bbc643040b
@ -56,4 +56,7 @@
|
||||
|
||||
- (nullable instancetype)initWithPageJSON:(nullable NSDictionary *)pageJSON errorObject:(nullable MVMCoreErrorObject *)errorObject;
|
||||
|
||||
// Returns whether the load will extend the app session timer based on the response provided by the server.
|
||||
- (BOOL)extendsAppSession;
|
||||
|
||||
@end
|
||||
|
||||
@ -9,6 +9,7 @@
|
||||
#import "MVMCoreLoadObject.h"
|
||||
#import "MVMCoreErrorObject.h"
|
||||
#import "MVMCoreJSONConstants.h"
|
||||
#import "NSDictionary+MFConvenience.h"
|
||||
|
||||
@implementation MVMCoreLoadObject
|
||||
|
||||
@ -54,4 +55,9 @@
|
||||
return self;
|
||||
}
|
||||
|
||||
- (BOOL)extendsAppSession {
|
||||
NSNumber *extendSessionFlag = [self.responseInfoMap objectForKey:@"appSessionExtended" ofType:[NSNumber class]];
|
||||
return !extendSessionFlag || [extendSessionFlag boolValue]; // Default to YES if the key does not exist.
|
||||
}
|
||||
|
||||
@end
|
||||
|
||||
@ -163,7 +163,7 @@
|
||||
if ([loadObject.operation checkAndHandleForCancellation]) {
|
||||
return;
|
||||
}
|
||||
|
||||
|
||||
if (loadObject.pageDataFromCache || loadObject.pageType) {
|
||||
|
||||
// Can continue loading with the page.
|
||||
@ -283,10 +283,8 @@
|
||||
|
||||
if ([jsonObject isKindOfClass:[NSDictionary class]]) {
|
||||
|
||||
// Update the session timer on a good response.
|
||||
[[MVMCoreSessionTimeHandler sharedSessionHandler] startSessionTimer];
|
||||
|
||||
completionHandler(jsonObject);
|
||||
|
||||
} else {
|
||||
|
||||
// Error json not correct format.
|
||||
@ -365,6 +363,11 @@
|
||||
// Sets the response info map
|
||||
loadObject.responseInfoMap = [jsonDictionary dict:KeyResponseInfo];
|
||||
|
||||
// Update the session timer on a good response.
|
||||
if (loadObject.extendsAppSession) {
|
||||
[[MVMCoreSessionTimeHandler sharedSessionHandler] startSessionTimer];
|
||||
}
|
||||
|
||||
// Dismiss any top alerts that server wants us to dismiss
|
||||
[[MVMCoreAlertHandler sharedAlertHandler] hidePersistentTopAlertViewOfType:[loadObject.responseInfoMap string:@"disableType"]];
|
||||
|
||||
|
||||
Loading…
Reference in New Issue
Block a user