Consider content height, not just char count, when collapsing posts
Closes #205
This commit is contained in:
parent
20986ba3f0
commit
7fe06d42ce
|
@ -11,11 +11,10 @@ import Pachyderm
|
||||||
|
|
||||||
extension StatusState {
|
extension StatusState {
|
||||||
|
|
||||||
func resolveFor(status: StatusMO, text: String?) {
|
func resolveFor(status: StatusMO, height: CGFloat) {
|
||||||
let longEnoughToCollapse: Bool
|
let longEnoughToCollapse: Bool
|
||||||
if Preferences.shared.collapseLongPosts,
|
if Preferences.shared.collapseLongPosts,
|
||||||
let text = text,
|
height > 500 {
|
||||||
text.count > 500 {
|
|
||||||
longEnoughToCollapse = true
|
longEnoughToCollapse = true
|
||||||
} else {
|
} else {
|
||||||
longEnoughToCollapse = false
|
longEnoughToCollapse = false
|
||||||
|
|
|
@ -182,7 +182,8 @@ class BaseStatusTableViewCell: UITableViewCell {
|
||||||
updateStatusIconsForPreferences(status)
|
updateStatusIconsForPreferences(status)
|
||||||
|
|
||||||
if state.unknown {
|
if state.unknown {
|
||||||
state.resolveFor(status: status, text: contentTextView.text)
|
layoutIfNeeded()
|
||||||
|
state.resolveFor(status: status, height: contentTextView.bounds.height)
|
||||||
if state.collapsible! && showStatusAutomatically {
|
if state.collapsible! && showStatusAutomatically {
|
||||||
state.collapsed = false
|
state.collapsed = false
|
||||||
}
|
}
|
||||||
|
|
|
@ -104,7 +104,9 @@ extension StatusCollectionViewCell {
|
||||||
favoriteButton.isEnabled = mastodonController.loggedIn
|
favoriteButton.isEnabled = mastodonController.loggedIn
|
||||||
|
|
||||||
if statusState.unknown {
|
if statusState.unknown {
|
||||||
statusState.resolveFor(status: status, text: contentContainer.contentTextView.text)
|
// layout so that we can take the content height into consideration when deciding whether to collapse
|
||||||
|
layoutIfNeeded()
|
||||||
|
statusState.resolveFor(status: status, height: contentContainer.contentTextView.bounds.height)
|
||||||
if statusState.collapsible! && showStatusAutomatically {
|
if statusState.collapsible! && showStatusAutomatically {
|
||||||
statusState.collapsed = false
|
statusState.collapsed = false
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue