mirror of
https://github.com/oxen-io/session-android.git
synced 2025-02-20 05:08:26 +00:00
Refactor conversation.start
This commit is contained in:
parent
634ec8f86c
commit
db0eae80eb
@ -18,6 +18,8 @@ import network.loki.messenger.R
|
|||||||
import org.session.libsession.utilities.Address
|
import org.session.libsession.utilities.Address
|
||||||
import org.session.libsession.utilities.modifyLayoutParams
|
import org.session.libsession.utilities.modifyLayoutParams
|
||||||
import org.thoughtcrime.securesms.conversation.new.NewMessageFragment
|
import org.thoughtcrime.securesms.conversation.new.NewMessageFragment
|
||||||
|
import org.thoughtcrime.securesms.conversation.start.home.NewConversationHomeFragment
|
||||||
|
import org.thoughtcrime.securesms.conversation.start.invitefriend.InviteFriendFragment
|
||||||
import org.thoughtcrime.securesms.conversation.v2.ConversationActivityV2
|
import org.thoughtcrime.securesms.conversation.v2.ConversationActivityV2
|
||||||
import org.thoughtcrime.securesms.groups.CreateGroupFragment
|
import org.thoughtcrime.securesms.groups.CreateGroupFragment
|
||||||
import org.thoughtcrime.securesms.groups.JoinCommunityFragment
|
import org.thoughtcrime.securesms.groups.JoinCommunityFragment
|
||||||
|
@ -1,9 +1,5 @@
|
|||||||
package org.thoughtcrime.securesms.conversation.start
|
package org.thoughtcrime.securesms.conversation.start.home
|
||||||
|
|
||||||
import android.os.Bundle
|
|
||||||
import android.view.LayoutInflater
|
|
||||||
import android.view.View
|
|
||||||
import android.view.ViewGroup
|
|
||||||
import androidx.compose.foundation.background
|
import androidx.compose.foundation.background
|
||||||
import androidx.compose.foundation.layout.Column
|
import androidx.compose.foundation.layout.Column
|
||||||
import androidx.compose.foundation.layout.ColumnScope
|
import androidx.compose.foundation.layout.ColumnScope
|
||||||
@ -15,18 +11,15 @@ import androidx.compose.foundation.verticalScroll
|
|||||||
import androidx.compose.material.Surface
|
import androidx.compose.material.Surface
|
||||||
import androidx.compose.material.Text
|
import androidx.compose.material.Text
|
||||||
import androidx.compose.runtime.Composable
|
import androidx.compose.runtime.Composable
|
||||||
import androidx.compose.runtime.collectAsState
|
|
||||||
import androidx.compose.ui.Modifier
|
import androidx.compose.ui.Modifier
|
||||||
import androidx.compose.ui.input.nestedscroll.nestedScroll
|
import androidx.compose.ui.input.nestedscroll.nestedScroll
|
||||||
import androidx.compose.ui.platform.rememberNestedScrollInteropConnection
|
import androidx.compose.ui.platform.rememberNestedScrollInteropConnection
|
||||||
import androidx.compose.ui.res.stringResource
|
import androidx.compose.ui.res.stringResource
|
||||||
import androidx.compose.ui.tooling.preview.Preview
|
import androidx.compose.ui.tooling.preview.Preview
|
||||||
import androidx.compose.ui.tooling.preview.PreviewParameter
|
import androidx.compose.ui.tooling.preview.PreviewParameter
|
||||||
import androidx.fragment.app.Fragment
|
|
||||||
import dagger.hilt.android.AndroidEntryPoint
|
|
||||||
import kotlinx.coroutines.flow.MutableStateFlow
|
|
||||||
import network.loki.messenger.R
|
import network.loki.messenger.R
|
||||||
import org.session.libsession.utilities.TextSecurePreferences
|
import org.thoughtcrime.securesms.conversation.start.NewConversationDelegate
|
||||||
|
import org.thoughtcrime.securesms.conversation.start.NullNewConversationDelegate
|
||||||
import org.thoughtcrime.securesms.ui.Divider
|
import org.thoughtcrime.securesms.ui.Divider
|
||||||
import org.thoughtcrime.securesms.ui.ItemButton
|
import org.thoughtcrime.securesms.ui.ItemButton
|
||||||
import org.thoughtcrime.securesms.ui.LocalDimensions
|
import org.thoughtcrime.securesms.ui.LocalDimensions
|
||||||
@ -37,46 +30,11 @@ import org.thoughtcrime.securesms.ui.color.LocalColors
|
|||||||
import org.thoughtcrime.securesms.ui.components.AppBar
|
import org.thoughtcrime.securesms.ui.components.AppBar
|
||||||
import org.thoughtcrime.securesms.ui.components.QrImage
|
import org.thoughtcrime.securesms.ui.components.QrImage
|
||||||
import org.thoughtcrime.securesms.ui.contentDescription
|
import org.thoughtcrime.securesms.ui.contentDescription
|
||||||
import org.thoughtcrime.securesms.ui.createThemedComposeView
|
|
||||||
import org.thoughtcrime.securesms.ui.small
|
import org.thoughtcrime.securesms.ui.small
|
||||||
import org.thoughtcrime.securesms.ui.xl
|
import org.thoughtcrime.securesms.ui.xl
|
||||||
import javax.inject.Inject
|
|
||||||
|
|
||||||
@AndroidEntryPoint
|
|
||||||
class NewConversationHomeFragment : Fragment() {
|
|
||||||
|
|
||||||
@Inject
|
|
||||||
lateinit var textSecurePreferences: TextSecurePreferences
|
|
||||||
|
|
||||||
var delegate = MutableStateFlow<NewConversationDelegate>(NullNewConversationDelegate)
|
|
||||||
|
|
||||||
override fun onCreateView(
|
|
||||||
inflater: LayoutInflater,
|
|
||||||
container: ViewGroup?,
|
|
||||||
savedInstanceState: Bundle?
|
|
||||||
): View = createThemedComposeView {
|
|
||||||
NewConversationScreen(
|
|
||||||
accountId = TextSecurePreferences.getLocalNumber(requireContext())!!,
|
|
||||||
delegate = delegate.collectAsState().value
|
|
||||||
)
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
@Preview
|
|
||||||
@Composable
|
|
||||||
private fun PreviewNewConversationScreen(
|
|
||||||
@PreviewParameter(SessionColorsParameterProvider::class) colors: Colors
|
|
||||||
) {
|
|
||||||
PreviewTheme(colors) {
|
|
||||||
NewConversationScreen(
|
|
||||||
accountId = "059287129387123",
|
|
||||||
NullNewConversationDelegate
|
|
||||||
)
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
@Composable
|
@Composable
|
||||||
private fun NewConversationScreen(
|
internal fun NewConversationScreen(
|
||||||
accountId: String,
|
accountId: String,
|
||||||
delegate: NewConversationDelegate
|
delegate: NewConversationDelegate
|
||||||
) {
|
) {
|
||||||
@ -109,7 +67,8 @@ private fun ColumnScope.Items(
|
|||||||
Divider(startIndent = LocalDimensions.current.dividerIndent)
|
Divider(startIndent = LocalDimensions.current.dividerIndent)
|
||||||
ItemButton(textId = R.string.dialog_join_community_title, icon = R.drawable.ic_globe, onClick = delegate::onJoinCommunitySelected)
|
ItemButton(textId = R.string.dialog_join_community_title, icon = R.drawable.ic_globe, onClick = delegate::onJoinCommunitySelected)
|
||||||
Divider(startIndent = LocalDimensions.current.dividerIndent)
|
Divider(startIndent = LocalDimensions.current.dividerIndent)
|
||||||
ItemButton(textId = R.string.activity_settings_invite_button_title, icon = R.drawable.ic_invite_friend, Modifier.contentDescription(R.string.AccessibilityId_invite_friend_button), onClick = delegate::onInviteFriend)
|
ItemButton(textId = R.string.activity_settings_invite_button_title, icon = R.drawable.ic_invite_friend, Modifier.contentDescription(
|
||||||
|
R.string.AccessibilityId_invite_friend_button), onClick = delegate::onInviteFriend)
|
||||||
Column(
|
Column(
|
||||||
modifier = Modifier
|
modifier = Modifier
|
||||||
.padding(horizontal = LocalDimensions.current.marginMedium)
|
.padding(horizontal = LocalDimensions.current.marginMedium)
|
||||||
@ -125,4 +84,17 @@ private fun ColumnScope.Items(
|
|||||||
Spacer(modifier = Modifier.height(LocalDimensions.current.itemSpacingSmall))
|
Spacer(modifier = Modifier.height(LocalDimensions.current.itemSpacingSmall))
|
||||||
QrImage(string = accountId, Modifier.contentDescription(R.string.AccessibilityId_qr_code))
|
QrImage(string = accountId, Modifier.contentDescription(R.string.AccessibilityId_qr_code))
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Preview
|
||||||
|
@Composable
|
||||||
|
private fun PreviewNewConversationScreen(
|
||||||
|
@PreviewParameter(SessionColorsParameterProvider::class) colors: Colors
|
||||||
|
) {
|
||||||
|
PreviewTheme(colors) {
|
||||||
|
NewConversationScreen(
|
||||||
|
accountId = "059287129387123",
|
||||||
|
NullNewConversationDelegate
|
||||||
|
)
|
||||||
|
}
|
||||||
|
}
|
@ -0,0 +1,35 @@
|
|||||||
|
package org.thoughtcrime.securesms.conversation.start.home
|
||||||
|
|
||||||
|
import android.os.Bundle
|
||||||
|
import android.view.LayoutInflater
|
||||||
|
import android.view.View
|
||||||
|
import android.view.ViewGroup
|
||||||
|
import androidx.compose.runtime.collectAsState
|
||||||
|
import androidx.fragment.app.Fragment
|
||||||
|
import dagger.hilt.android.AndroidEntryPoint
|
||||||
|
import kotlinx.coroutines.flow.MutableStateFlow
|
||||||
|
import org.session.libsession.utilities.TextSecurePreferences
|
||||||
|
import org.thoughtcrime.securesms.conversation.start.NewConversationDelegate
|
||||||
|
import org.thoughtcrime.securesms.conversation.start.NullNewConversationDelegate
|
||||||
|
import org.thoughtcrime.securesms.ui.createThemedComposeView
|
||||||
|
import javax.inject.Inject
|
||||||
|
|
||||||
|
@AndroidEntryPoint
|
||||||
|
class NewConversationHomeFragment : Fragment() {
|
||||||
|
|
||||||
|
@Inject
|
||||||
|
lateinit var textSecurePreferences: TextSecurePreferences
|
||||||
|
|
||||||
|
var delegate = MutableStateFlow<NewConversationDelegate>(NullNewConversationDelegate)
|
||||||
|
|
||||||
|
override fun onCreateView(
|
||||||
|
inflater: LayoutInflater,
|
||||||
|
container: ViewGroup?,
|
||||||
|
savedInstanceState: Bundle?
|
||||||
|
): View = createThemedComposeView {
|
||||||
|
NewConversationScreen(
|
||||||
|
accountId = TextSecurePreferences.getLocalNumber(requireContext())!!,
|
||||||
|
delegate = delegate.collectAsState().value
|
||||||
|
)
|
||||||
|
}
|
||||||
|
}
|
@ -1,9 +1,5 @@
|
|||||||
package org.thoughtcrime.securesms.conversation.start
|
package org.thoughtcrime.securesms.conversation.start.invitefriend
|
||||||
|
|
||||||
import android.os.Bundle
|
|
||||||
import android.view.LayoutInflater
|
|
||||||
import android.view.View
|
|
||||||
import android.view.ViewGroup
|
|
||||||
import androidx.compose.foundation.background
|
import androidx.compose.foundation.background
|
||||||
import androidx.compose.foundation.layout.Arrangement.Absolute.spacedBy
|
import androidx.compose.foundation.layout.Arrangement.Absolute.spacedBy
|
||||||
import androidx.compose.foundation.layout.Column
|
import androidx.compose.foundation.layout.Column
|
||||||
@ -15,16 +11,10 @@ import androidx.compose.foundation.layout.padding
|
|||||||
import androidx.compose.material.Text
|
import androidx.compose.material.Text
|
||||||
import androidx.compose.runtime.Composable
|
import androidx.compose.runtime.Composable
|
||||||
import androidx.compose.ui.Modifier
|
import androidx.compose.ui.Modifier
|
||||||
import androidx.compose.ui.platform.LocalContext
|
|
||||||
import androidx.compose.ui.res.stringResource
|
import androidx.compose.ui.res.stringResource
|
||||||
import androidx.compose.ui.text.style.TextAlign
|
import androidx.compose.ui.text.style.TextAlign
|
||||||
import androidx.compose.ui.tooling.preview.Preview
|
import androidx.compose.ui.tooling.preview.Preview
|
||||||
import androidx.fragment.app.Fragment
|
|
||||||
import dagger.hilt.android.AndroidEntryPoint
|
|
||||||
import network.loki.messenger.R
|
import network.loki.messenger.R
|
||||||
import org.session.libsession.utilities.TextSecurePreferences
|
|
||||||
import org.thoughtcrime.securesms.preferences.copyPublicKey
|
|
||||||
import org.thoughtcrime.securesms.preferences.sendInvitationToUseSession
|
|
||||||
import org.thoughtcrime.securesms.ui.LocalDimensions
|
import org.thoughtcrime.securesms.ui.LocalDimensions
|
||||||
import org.thoughtcrime.securesms.ui.PreviewTheme
|
import org.thoughtcrime.securesms.ui.PreviewTheme
|
||||||
import org.thoughtcrime.securesms.ui.base
|
import org.thoughtcrime.securesms.ui.base
|
||||||
@ -34,37 +24,10 @@ import org.thoughtcrime.securesms.ui.components.SlimOutlineButton
|
|||||||
import org.thoughtcrime.securesms.ui.components.SlimOutlineCopyButton
|
import org.thoughtcrime.securesms.ui.components.SlimOutlineCopyButton
|
||||||
import org.thoughtcrime.securesms.ui.components.border
|
import org.thoughtcrime.securesms.ui.components.border
|
||||||
import org.thoughtcrime.securesms.ui.contentDescription
|
import org.thoughtcrime.securesms.ui.contentDescription
|
||||||
import org.thoughtcrime.securesms.ui.createThemedComposeView
|
|
||||||
import org.thoughtcrime.securesms.ui.small
|
import org.thoughtcrime.securesms.ui.small
|
||||||
|
|
||||||
@AndroidEntryPoint
|
|
||||||
class InviteFriendFragment : Fragment() {
|
|
||||||
lateinit var delegate: NewConversationDelegate
|
|
||||||
|
|
||||||
override fun onCreateView(
|
|
||||||
inflater: LayoutInflater, container: ViewGroup?,
|
|
||||||
savedInstanceState: Bundle?
|
|
||||||
): View = createThemedComposeView {
|
|
||||||
InviteFriend(
|
|
||||||
TextSecurePreferences.getLocalNumber(LocalContext.current)!!,
|
|
||||||
onBack = { delegate.onDialogBackPressed() },
|
|
||||||
onClose = { delegate.onDialogClosePressed() },
|
|
||||||
copyPublicKey = requireContext()::copyPublicKey,
|
|
||||||
sendInvitation = requireContext()::sendInvitationToUseSession,
|
|
||||||
)
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
@Preview
|
|
||||||
@Composable
|
@Composable
|
||||||
private fun PreviewInviteFriend() {
|
internal fun InviteFriend(
|
||||||
PreviewTheme {
|
|
||||||
InviteFriend("050000000")
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
@Composable
|
|
||||||
private fun InviteFriend(
|
|
||||||
accountId: String,
|
accountId: String,
|
||||||
onBack: () -> Unit = {},
|
onBack: () -> Unit = {},
|
||||||
onClose: () -> Unit = {},
|
onClose: () -> Unit = {},
|
||||||
@ -116,3 +79,11 @@ private fun InviteFriend(
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Preview
|
||||||
|
@Composable
|
||||||
|
private fun PreviewInviteFriend() {
|
||||||
|
PreviewTheme {
|
||||||
|
InviteFriend("050000000")
|
||||||
|
}
|
||||||
|
}
|
@ -0,0 +1,32 @@
|
|||||||
|
package org.thoughtcrime.securesms.conversation.start.invitefriend
|
||||||
|
|
||||||
|
import android.os.Bundle
|
||||||
|
import android.view.LayoutInflater
|
||||||
|
import android.view.View
|
||||||
|
import android.view.ViewGroup
|
||||||
|
import androidx.compose.ui.platform.LocalContext
|
||||||
|
import androidx.fragment.app.Fragment
|
||||||
|
import dagger.hilt.android.AndroidEntryPoint
|
||||||
|
import org.session.libsession.utilities.TextSecurePreferences
|
||||||
|
import org.thoughtcrime.securesms.conversation.start.NewConversationDelegate
|
||||||
|
import org.thoughtcrime.securesms.preferences.copyPublicKey
|
||||||
|
import org.thoughtcrime.securesms.preferences.sendInvitationToUseSession
|
||||||
|
import org.thoughtcrime.securesms.ui.createThemedComposeView
|
||||||
|
|
||||||
|
@AndroidEntryPoint
|
||||||
|
class InviteFriendFragment : Fragment() {
|
||||||
|
lateinit var delegate: NewConversationDelegate
|
||||||
|
|
||||||
|
override fun onCreateView(
|
||||||
|
inflater: LayoutInflater, container: ViewGroup?,
|
||||||
|
savedInstanceState: Bundle?
|
||||||
|
): View = createThemedComposeView {
|
||||||
|
InviteFriend(
|
||||||
|
TextSecurePreferences.getLocalNumber(LocalContext.current)!!,
|
||||||
|
onBack = { delegate.onDialogBackPressed() },
|
||||||
|
onClose = { delegate.onDialogClosePressed() },
|
||||||
|
copyPublicKey = requireContext()::copyPublicKey,
|
||||||
|
sendInvitation = requireContext()::sendInvitationToUseSession,
|
||||||
|
)
|
||||||
|
}
|
||||||
|
}
|
Loading…
x
Reference in New Issue
Block a user