Long audio playback improvements: 2x playback, position storing

Various UI fixes
This commit is contained in:
Ilya Laktyushin
2019-09-18 02:24:56 +03:00
parent 0bbf8bf0fb
commit 1bebfdaf53
37 changed files with 302 additions and 78 deletions

View File

@@ -42,6 +42,8 @@ public final class InstantPageController: ViewController {
super.init(navigationBarPresentationData: nil)
self.navigationPresentation = .modal
self.statusBar.statusBarStyle = .White
self.webpageDisposable = (actualizedWebpage(postbox: self.context.account.postbox, network: self.context.account.network, webpage: webPage) |> deliverOnMainQueue).start(next: { [weak self] result in

View File

@@ -86,7 +86,7 @@ final class InstantPageMediaPlaylistItem: SharedMediaPlaylistItem {
if (title ?? "").isEmpty && (performer ?? "").isEmpty {
updatedTitle = file.fileName ?? ""
}
return SharedMediaPlaybackDisplayData.music(title: updatedTitle, performer: updatedPerformer, albumArt: SharedMediaPlaybackAlbumArt(thumbnailResource: ExternalMusicAlbumArtResource(title: title ?? "", performer: performer ?? "", isThumbnail: true), fullSizeResource: ExternalMusicAlbumArtResource(title: updatedTitle ?? "", performer: updatedPerformer ?? "", isThumbnail: false)))
return SharedMediaPlaybackDisplayData.music(title: updatedTitle, performer: updatedPerformer, albumArt: SharedMediaPlaybackAlbumArt(thumbnailResource: ExternalMusicAlbumArtResource(title: title ?? "", performer: performer ?? "", isThumbnail: true), fullSizeResource: ExternalMusicAlbumArtResource(title: updatedTitle ?? "", performer: updatedPerformer ?? "", isThumbnail: false)), long: false)
}
case let .Video(_, _, flags):
if flags.contains(.instantRoundVideo) {
@@ -99,7 +99,7 @@ final class InstantPageMediaPlaylistItem: SharedMediaPlaylistItem {
}
}
return SharedMediaPlaybackDisplayData.music(title: file.fileName ?? "", performer: "", albumArt: nil)
return SharedMediaPlaybackDisplayData.music(title: file.fileName ?? "", performer: "", albumArt: nil, long: false)
}
return nil
}

View File

@@ -153,7 +153,16 @@ final class InstantPageTextItem: InstantPageItem {
if self.opaqueBackground {
context.setBlendMode(.normal)
}
CTLineDraw(line.line, context)
let glyphRuns = CTLineGetGlyphRuns(line.line) as NSArray
if glyphRuns.count != 0 {
for run in glyphRuns {
let run = run as! CTRun
let glyphCount = CTRunGetGlyphCount(run)
CTRunDraw(run, context, CFRangeMake(0, glyphCount))
}
}
if self.opaqueBackground {
context.setBlendMode(.copy)
}