mirror of
https://github.com/LiveFastEatTrashRaccoon/RaccoonForLemmy.git
synced 2025-02-03 11:07:30 +01:00
feat: add share option to community and user detail (#549)
This commit is contained in:
parent
ccacbe2d13
commit
7892b0ccf6
@ -109,6 +109,7 @@ import com.github.diegoberaldin.raccoonforlemmy.core.utils.toLocalDp
|
||||
import com.github.diegoberaldin.raccoonforlemmy.domain.lemmy.data.CommentModel
|
||||
import com.github.diegoberaldin.raccoonforlemmy.domain.lemmy.data.PostModel
|
||||
import com.github.diegoberaldin.raccoonforlemmy.domain.lemmy.data.containsId
|
||||
import com.github.diegoberaldin.raccoonforlemmy.domain.lemmy.data.readableHandle
|
||||
import com.github.diegoberaldin.raccoonforlemmy.domain.lemmy.data.toIcon
|
||||
import com.github.diegoberaldin.raccoonforlemmy.domain.lemmy.data.toInt
|
||||
import com.github.diegoberaldin.raccoonforlemmy.unit.ban.BanUserScreen
|
||||
@ -293,6 +294,9 @@ class CommunityDetailScreen(
|
||||
OptionId.InfoInstance,
|
||||
LocalXmlStrings.current.communityDetailInstanceInfo
|
||||
)
|
||||
this += Option(
|
||||
OptionId.Share, LocalXmlStrings.current.postActionShare
|
||||
)
|
||||
if (uiState.isLogged) {
|
||||
this += Option(
|
||||
OptionId.Block,
|
||||
@ -401,6 +405,25 @@ class CommunityDetailScreen(
|
||||
navigationCoordinator.pushScreen(screen)
|
||||
}
|
||||
|
||||
OptionId.Share -> {
|
||||
val urls = buildList {
|
||||
if (uiState.community.host != uiState.instance) {
|
||||
this += "https://${uiState.instance}/c/${uiState.community.readableHandle}"
|
||||
}
|
||||
this += "https://${uiState.community.host}/c/${uiState.community.name}"
|
||||
}
|
||||
if (urls.size == 1) {
|
||||
model.reduce(
|
||||
CommunityDetailMviModel.Intent.Share(
|
||||
urls.first()
|
||||
)
|
||||
)
|
||||
} else {
|
||||
val screen = ShareBottomSheet(urls = urls)
|
||||
navigationCoordinator.showBottomSheet(screen)
|
||||
}
|
||||
}
|
||||
|
||||
else -> Unit
|
||||
}
|
||||
},
|
||||
|
@ -105,6 +105,7 @@ import com.github.diegoberaldin.raccoonforlemmy.core.utils.compose.rememberCallb
|
||||
import com.github.diegoberaldin.raccoonforlemmy.core.utils.toLocalDp
|
||||
import com.github.diegoberaldin.raccoonforlemmy.domain.lemmy.data.CommentModel
|
||||
import com.github.diegoberaldin.raccoonforlemmy.domain.lemmy.data.PostModel
|
||||
import com.github.diegoberaldin.raccoonforlemmy.domain.lemmy.data.readableHandle
|
||||
import com.github.diegoberaldin.raccoonforlemmy.domain.lemmy.data.readableName
|
||||
import com.github.diegoberaldin.raccoonforlemmy.domain.lemmy.data.toIcon
|
||||
import com.github.diegoberaldin.raccoonforlemmy.domain.lemmy.data.toInt
|
||||
@ -240,6 +241,9 @@ class UserDetailScreen(
|
||||
this += Option(
|
||||
OptionId.Info, LocalXmlStrings.current.userDetailInfo
|
||||
)
|
||||
this += Option(
|
||||
OptionId.Share, LocalXmlStrings.current.postActionShare
|
||||
)
|
||||
if (uiState.isLogged) {
|
||||
this += Option(
|
||||
OptionId.Block,
|
||||
@ -298,6 +302,25 @@ class UserDetailScreen(
|
||||
)
|
||||
}
|
||||
|
||||
OptionId.Share -> {
|
||||
val urls = buildList {
|
||||
if (uiState.user.host != uiState.instance) {
|
||||
this += "https://${uiState.instance}/u/${uiState.user.readableHandle}"
|
||||
}
|
||||
this += "https://${uiState.user.host}/u/${uiState.user.name}"
|
||||
}
|
||||
if (urls.size == 1) {
|
||||
model.reduce(
|
||||
UserDetailMviModel.Intent.Share(
|
||||
urls.first()
|
||||
)
|
||||
)
|
||||
} else {
|
||||
val screen = ShareBottomSheet(urls = urls)
|
||||
navigationCoordinator.showBottomSheet(screen)
|
||||
}
|
||||
}
|
||||
|
||||
else -> Unit
|
||||
}
|
||||
},
|
||||
|
Loading…
x
Reference in New Issue
Block a user