diff --git a/app/src/main/java/org/thoughtcrime/securesms/conversation/start/NewConversationFragment.kt b/app/src/main/java/org/thoughtcrime/securesms/conversation/start/NewConversationFragment.kt index 6605288345..e02ea59870 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/conversation/start/NewConversationFragment.kt +++ b/app/src/main/java/org/thoughtcrime/securesms/conversation/start/NewConversationFragment.kt @@ -18,6 +18,8 @@ import network.loki.messenger.R import org.session.libsession.utilities.Address import org.session.libsession.utilities.modifyLayoutParams 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.groups.CreateGroupFragment import org.thoughtcrime.securesms.groups.JoinCommunityFragment diff --git a/app/src/main/java/org/thoughtcrime/securesms/conversation/start/NewConversationHomeFragment.kt b/app/src/main/java/org/thoughtcrime/securesms/conversation/start/home/NewConversationHome.kt similarity index 77% rename from app/src/main/java/org/thoughtcrime/securesms/conversation/start/NewConversationHomeFragment.kt rename to app/src/main/java/org/thoughtcrime/securesms/conversation/start/home/NewConversationHome.kt index 91f30acc32..d7d3c264dd 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/conversation/start/NewConversationHomeFragment.kt +++ b/app/src/main/java/org/thoughtcrime/securesms/conversation/start/home/NewConversationHome.kt @@ -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.layout.Column import androidx.compose.foundation.layout.ColumnScope @@ -15,18 +11,15 @@ import androidx.compose.foundation.verticalScroll import androidx.compose.material.Surface import androidx.compose.material.Text import androidx.compose.runtime.Composable -import androidx.compose.runtime.collectAsState import androidx.compose.ui.Modifier import androidx.compose.ui.input.nestedscroll.nestedScroll import androidx.compose.ui.platform.rememberNestedScrollInteropConnection import androidx.compose.ui.res.stringResource import androidx.compose.ui.tooling.preview.Preview 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 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.ItemButton 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.QrImage import org.thoughtcrime.securesms.ui.contentDescription -import org.thoughtcrime.securesms.ui.createThemedComposeView import org.thoughtcrime.securesms.ui.small import org.thoughtcrime.securesms.ui.xl -import javax.inject.Inject - -@AndroidEntryPoint -class NewConversationHomeFragment : Fragment() { - - @Inject - lateinit var textSecurePreferences: TextSecurePreferences - - var delegate = MutableStateFlow(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 -private fun NewConversationScreen( +internal fun NewConversationScreen( accountId: String, delegate: NewConversationDelegate ) { @@ -109,7 +67,8 @@ private fun ColumnScope.Items( Divider(startIndent = LocalDimensions.current.dividerIndent) ItemButton(textId = R.string.dialog_join_community_title, icon = R.drawable.ic_globe, onClick = delegate::onJoinCommunitySelected) 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( modifier = Modifier .padding(horizontal = LocalDimensions.current.marginMedium) @@ -125,4 +84,17 @@ private fun ColumnScope.Items( Spacer(modifier = Modifier.height(LocalDimensions.current.itemSpacingSmall)) QrImage(string = accountId, Modifier.contentDescription(R.string.AccessibilityId_qr_code)) } -} \ No newline at end of file +} + +@Preview +@Composable +private fun PreviewNewConversationScreen( + @PreviewParameter(SessionColorsParameterProvider::class) colors: Colors +) { + PreviewTheme(colors) { + NewConversationScreen( + accountId = "059287129387123", + NullNewConversationDelegate + ) + } +} diff --git a/app/src/main/java/org/thoughtcrime/securesms/conversation/start/home/NewConversationHomeFragment.kt b/app/src/main/java/org/thoughtcrime/securesms/conversation/start/home/NewConversationHomeFragment.kt new file mode 100644 index 0000000000..1798814732 --- /dev/null +++ b/app/src/main/java/org/thoughtcrime/securesms/conversation/start/home/NewConversationHomeFragment.kt @@ -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(NullNewConversationDelegate) + + override fun onCreateView( + inflater: LayoutInflater, + container: ViewGroup?, + savedInstanceState: Bundle? + ): View = createThemedComposeView { + NewConversationScreen( + accountId = TextSecurePreferences.getLocalNumber(requireContext())!!, + delegate = delegate.collectAsState().value + ) + } +} diff --git a/app/src/main/java/org/thoughtcrime/securesms/conversation/start/InviteFriendFragment.kt b/app/src/main/java/org/thoughtcrime/securesms/conversation/start/invitefriend/InviteFriend.kt similarity index 73% rename from app/src/main/java/org/thoughtcrime/securesms/conversation/start/InviteFriendFragment.kt rename to app/src/main/java/org/thoughtcrime/securesms/conversation/start/invitefriend/InviteFriend.kt index b3e7d27cf9..356e5a2ba6 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/conversation/start/InviteFriendFragment.kt +++ b/app/src/main/java/org/thoughtcrime/securesms/conversation/start/invitefriend/InviteFriend.kt @@ -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.layout.Arrangement.Absolute.spacedBy import androidx.compose.foundation.layout.Column @@ -15,16 +11,10 @@ import androidx.compose.foundation.layout.padding import androidx.compose.material.Text import androidx.compose.runtime.Composable import androidx.compose.ui.Modifier -import androidx.compose.ui.platform.LocalContext import androidx.compose.ui.res.stringResource import androidx.compose.ui.text.style.TextAlign import androidx.compose.ui.tooling.preview.Preview -import androidx.fragment.app.Fragment -import dagger.hilt.android.AndroidEntryPoint 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.PreviewTheme 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.border import org.thoughtcrime.securesms.ui.contentDescription -import org.thoughtcrime.securesms.ui.createThemedComposeView 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 -private fun PreviewInviteFriend() { - PreviewTheme { - InviteFriend("050000000") - } -} - -@Composable -private fun InviteFriend( +internal fun InviteFriend( accountId: String, onBack: () -> Unit = {}, onClose: () -> Unit = {}, @@ -116,3 +79,11 @@ private fun InviteFriend( } } } + +@Preview +@Composable +private fun PreviewInviteFriend() { + PreviewTheme { + InviteFriend("050000000") + } +} diff --git a/app/src/main/java/org/thoughtcrime/securesms/conversation/start/invitefriend/InviteFriendFragment.kt b/app/src/main/java/org/thoughtcrime/securesms/conversation/start/invitefriend/InviteFriendFragment.kt new file mode 100644 index 0000000000..c177b1667d --- /dev/null +++ b/app/src/main/java/org/thoughtcrime/securesms/conversation/start/invitefriend/InviteFriendFragment.kt @@ -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, + ) + } +}