Skip to content

Commit

Permalink
Fixed: completeBatchFetching is called on a background thread (#731)
Browse files Browse the repository at this point in the history
* Fixed breaking issue where completeBatchFetching is called on a background thread when no items are added to the collection

* Changed spaces to tabs for consistency

* Moved return statement for Code Review feedback

* Fixed the same issue in the Objective-C version of ASDKgram

* One more

* Update PhotoFeedModel.m

Fix header
  • Loading branch information
aaronr93 authored and Adlai-Holler committed Jan 31, 2018
1 parent 511bec6 commit d697198
Show file tree
Hide file tree
Showing 2 changed files with 21 additions and 16 deletions.
28 changes: 14 additions & 14 deletions examples/ASDKgram/Sample/PhotoFeedModel.m
Original file line number Diff line number Diff line change
@@ -1,20 +1,18 @@
//
// PhotoFeedModel.m
// Sample
//
// Created by Hannah Troisi on 2/28/16.
// Texture
//
// Copyright (c) 2014-present, Facebook, Inc. All rights reserved.
// This source code is licensed under the BSD-style license found in the
// LICENSE file in the root directory of this source tree. An additional grant
// of patent rights can be found in the PATENTS file in the same directory.
// LICENSE file in the /ASDK-Licenses directory of this source tree. An additional
// grant of patent rights can be found in the PATENTS file in the same directory.
//
// Modifications to this file made after 4/13/2017 are: Copyright (c) 2017-present,
// Pinterest, Inc. Licensed under the Apache License, Version 2.0 (the "License");
// you may not use this file except in compliance with the License.
// You may obtain a copy of the License at
//
// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL
// FACEBOOK BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN
// ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
// CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
// http://www.apache.org/licenses/LICENSE-2.0
//

#import "PhotoFeedModel.h"
Expand Down Expand Up @@ -184,9 +182,11 @@ - (void)fetchPageWithCompletionBlock:(void (^)(NSArray *))block numResultsToRetu
// early return if reached end of pages
if (_totalPages) {
if (_currentPage == _totalPages) {
if (block){
block(@[]);
}
dispatch_async(dispatch_get_main_queue(), ^{
if (block) {
block(@[]);
}
});
return;
}
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -67,7 +67,10 @@ final class PhotoFeedModel {
private func fetchNextPageOfPopularPhotos(replaceData: Bool, numberOfAdditionsCompletion: @escaping (Int, NetworkingErrors?) -> ()) {

if currentPage == totalPages, currentPage != 0 {
return numberOfAdditionsCompletion(0, .customError("No pages left to parse"))
DispatchQueue.main.async {
numberOfAdditionsCompletion(0, .customError("No pages left to parse"))
}
return
}

var newPhotos: [PhotoModel] = []
Expand Down Expand Up @@ -106,7 +109,9 @@ final class PhotoFeedModel {

case .failure(let fail):
print(fail)
numberOfAdditionsCompletion(0, fail)
DispatchQueue.main.async {
numberOfAdditionsCompletion(0, fail)
}
}
}
}
Expand Down

0 comments on commit d697198

Please sign in to comment.