Skip to content

Commit 7fea5a8

Browse files
author
Mahmud Ahsan
committed
Fix T4410445: Tapping on Play button should start playing with full-image screen mode without any error
1 parent 30bc805 commit 7fea5a8

File tree

6 files changed

+28
-28
lines changed

6 files changed

+28
-28
lines changed

MEGAUnitTests/Mocks/MockSlideShowDataSource.swift

+2-2
Original file line numberDiff line numberDiff line change
@@ -29,14 +29,14 @@ final class MockSlideShowDataSource: SlideShowDataSourceProtocol {
2929
}
3030

3131
func startInitialDownload(_ initialPhotoDownloaded: Bool) {
32-
processData(basedOnCurrentSlideNumber: 0, andOldSlideNumber: 0)
32+
processData(basedOnCurrentSlideIndex: 0, andOldSlideIndex: 0)
3333
}
3434

3535
func loadSelectedPhotoPreview() -> Bool {
3636
true
3737
}
3838

39-
func processData(basedOnCurrentSlideNumber currentSlideNumber: Int, andOldSlideNumber oldSlideNumber: Int) {
39+
func processData(basedOnCurrentSlideIndex currentSlideIndex: Int, andOldSlideIndex oldSlideIndex: Int) {
4040
nodeEntities.forEach { node in
4141
photos.append(SlideShowMediaEntity(image: nil, node: node, fileUrl: nil))
4242
}

MEGAUnitTests/Slideshow/SlideshowDataSourceTests.swift

+4-4
Original file line numberDiff line numberDiff line change
@@ -78,7 +78,7 @@ class SlideShowDataSourceTests: XCTestCase {
7878
sut.startInitialDownload(false)
7979
await sut.thumbnailLoadingTask?.value
8080

81-
sut.processData(basedOnCurrentSlideNumber: 11, andOldSlideNumber: 10)
81+
sut.processData(basedOnCurrentSlideIndex: 11, andOldSlideIndex: 10)
8282
await sut.thumbnailLoadingTask?.value
8383
XCTAssertTrue(sut.photos.count == 40)
8484
}
@@ -89,10 +89,10 @@ class SlideShowDataSourceTests: XCTestCase {
8989
sut.startInitialDownload(false)
9090
await sut.thumbnailLoadingTask?.value
9191

92-
sut.processData(basedOnCurrentSlideNumber: 20, andOldSlideNumber: 19)
92+
sut.processData(basedOnCurrentSlideIndex: 20, andOldSlideIndex: 19)
9393
XCTAssertNil(sut.photos[0].image)
9494

95-
sut.processData(basedOnCurrentSlideNumber: 19, andOldSlideNumber: 20)
95+
sut.processData(basedOnCurrentSlideIndex: 19, andOldSlideIndex: 20)
9696
await sut.thumbnailLoadingTask?.value
9797
XCTAssertNotNil(sut.photos[0].image)
9898
}
@@ -103,7 +103,7 @@ class SlideShowDataSourceTests: XCTestCase {
103103
sut.startInitialDownload(false)
104104
await sut.thumbnailLoadingTask?.value
105105

106-
sut.processData(basedOnCurrentSlideNumber: 20, andOldSlideNumber: 19)
106+
sut.processData(basedOnCurrentSlideIndex: 20, andOldSlideIndex: 19)
107107
XCTAssertNil(sut.photos[0].image)
108108
}
109109
}

MEGAUnitTests/Slideshow/SlideshowViewModelTests.swift

+3-3
Original file line numberDiff line numberDiff line change
@@ -84,7 +84,7 @@ class SlideshowViewModelTests: XCTestCase {
8484
XCTAssertTrue(slideShowViewModel.playbackStatus == .playing)
8585
slideShowViewModel.dispatch(.pause)
8686
XCTAssertTrue(slideShowViewModel.playbackStatus == .pause)
87-
XCTAssertTrue(slideShowViewModel.currentSlideNumber == 0)
87+
XCTAssertTrue(slideShowViewModel.currentSlideIndex == 0)
8888
XCTAssertTrue(slideShowViewModel.timeIntervalForSlideInSeconds == 4)
8989
XCTAssertTrue(slideShowViewModel.configuration.isRepeat == false)
9090

@@ -121,9 +121,9 @@ class SlideshowViewModelTests: XCTestCase {
121121
XCTAssertTrue(command == .showLoader)
122122
}
123123

124-
sut.currentSlideNumber = 1
124+
sut.currentSlideIndex = 1
125125
sut.restartSlideShow()
126-
XCTAssertTrue(sut.currentSlideNumber == 0)
126+
XCTAssertTrue(sut.currentSlideIndex == 0)
127127

128128
wait(for: [expectation], timeout: 1.0)
129129
}

iMEGA/Media Consumption/Slideshow Library/SlideShowDataSource.swift

+7-7
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,7 @@ protocol SlideShowDataSourceProtocol {
99
func resetData()
1010
func loadSelectedPhotoPreview() -> Bool
1111
func startInitialDownload(_ initialPhotoDownloaded: Bool)
12-
func processData(basedOnCurrentSlideNumber currentSlideNumber: Int, andOldSlideNumber oldSlideNumber: Int)
12+
func processData(basedOnCurrentSlideIndex currentSlideIndex: Int, andOldSlideIndex oldSlideIndex: Int)
1313
func sortNodes(byOrder order: SlideShowPlayingOrderEntity)
1414
}
1515

@@ -101,16 +101,16 @@ final class SlideShowDataSource: SlideShowDataSourceProtocol {
101101
}
102102
}
103103

104-
func processData(basedOnCurrentSlideNumber currentSlideNumber: Int, andOldSlideNumber oldSlideNumber: Int) {
105-
if shouldLoadMorePhotos(currentSlideNumber) {
104+
func processData(basedOnCurrentSlideIndex currentSlideIndex: Int, andOldSlideIndex oldSlideIndex: Int) {
105+
if shouldLoadMorePhotos(currentSlideIndex) {
106106
loadNextSetOfPhotosPreview(advanceNumberOfPhotosToLoad, withInitialPhoto: false)
107107
}
108108

109-
if oldSlideNumber > currentSlideNumber {
110-
reloadUnusedPhotos(currentSlideNumber)
109+
if oldSlideIndex > currentSlideIndex {
110+
reloadUnusedPhotos(currentSlideIndex)
111111
}
112-
else if currentSlideNumber > oldSlideNumber {
113-
removeUnusedPhotos(currentSlideNumber)
112+
else if currentSlideIndex > oldSlideIndex {
113+
removeUnusedPhotos(currentSlideIndex)
114114
}
115115
}
116116

iMEGA/Media Consumption/Slideshow Library/SlideShowViewModel.swift

+3-3
Original file line numberDiff line numberDiff line change
@@ -47,9 +47,9 @@ final class SlideShowViewModel: ViewModelType {
4747
configuration.timeIntervalForSlideInSeconds.value
4848
}
4949

50-
var currentSlideNumber = 0 {
50+
var currentSlideIndex = 0 {
5151
didSet {
52-
dataSource.processData(basedOnCurrentSlideNumber: currentSlideNumber, andOldSlideNumber: oldValue)
52+
dataSource.processData(basedOnCurrentSlideIndex: currentSlideIndex, andOldSlideIndex: oldValue)
5353
}
5454
}
5555

@@ -94,7 +94,7 @@ final class SlideShowViewModel: ViewModelType {
9494
func restartSlideShow() {
9595
invokeCommand?(.showLoader)
9696
dataSource.initialPhotoDownloadCallback = { [weak self] in
97-
self?.currentSlideNumber = 0
97+
self?.currentSlideIndex = 0
9898
self?.invokeCommand?(.restart)
9999
}
100100
dataSource.resetData()

iMEGA/Media Consumption/Slideshow Library/Views/SlideShowViewController.swift

+9-9
Original file line numberDiff line numberDiff line change
@@ -154,8 +154,8 @@ final class SlideShowViewController: UIViewController, ViewType {
154154
self.collectionView.backgroundColor = UIColor.black
155155
self.view.backgroundColor = .black
156156
cell?.resetZoomScale()
157-
if viewModel.currentSlideNumber >= viewModel.photos.count {
158-
viewModel.currentSlideNumber = -1
157+
if viewModel.currentSlideIndex >= viewModel.photos.count - 1 {
158+
viewModel.currentSlideIndex = -1
159159
self.changeImage()
160160
}
161161
}
@@ -191,21 +191,21 @@ final class SlideShowViewController: UIViewController, ViewType {
191191
guard let viewModel = viewModel else { return }
192192
hideLoader()
193193
reload()
194-
collectionView.scrollToItem(at: IndexPath(item: viewModel.currentSlideNumber, section: 0), at: .left, animated: false)
194+
collectionView.scrollToItem(at: IndexPath(item: viewModel.currentSlideIndex, section: 0), at: .left, animated: false)
195195
play()
196196
}
197197

198198
@objc private func changeImage() {
199199
guard let viewModel = viewModel else { return }
200200

201-
let slideNumber = viewModel.currentSlideNumber + 1
201+
let slideNumber = viewModel.currentSlideIndex + 1
202202

203203
if slideNumber < viewModel.photos.count {
204-
viewModel.currentSlideNumber = slideNumber
204+
viewModel.currentSlideIndex = slideNumber
205205
hideLoader()
206206
updateSlideInView()
207207
} else if viewModel.configuration.isRepeat {
208-
viewModel.currentSlideNumber = 0
208+
viewModel.currentSlideIndex = 0
209209
hideLoader()
210210
updateSlideInView()
211211
} else if slideNumber >= viewModel.numberOfSlideShowContents {
@@ -219,7 +219,7 @@ final class SlideShowViewController: UIViewController, ViewType {
219219
private func updateSlideInView() {
220220
guard let viewModel = viewModel else { return }
221221

222-
let index = IndexPath(item: viewModel.currentSlideNumber, section: 0)
222+
let index = IndexPath(item: viewModel.currentSlideIndex, section: 0)
223223
if collectionView.isValid(indexPath: index) {
224224
collectionView.scrollToItem(at: index, at: .centeredHorizontally, animated: false)
225225
}
@@ -286,8 +286,8 @@ extension SlideShowViewController: UIScrollViewDelegate {
286286
let visibleIndexPath = collectionView.indexPathForItem(at: visiblePoint)
287287

288288
if let viewModel = viewModel, let visibleIndexPath = visibleIndexPath,
289-
viewModel.currentSlideNumber != visibleIndexPath.row {
290-
viewModel.currentSlideNumber = visibleIndexPath.row
289+
viewModel.currentSlideIndex != visibleIndexPath.row {
290+
viewModel.currentSlideIndex = visibleIndexPath.row
291291
}
292292

293293
if viewModel?.playbackStatus == .playing {

0 commit comments

Comments
 (0)