@@ -28,7 +28,6 @@ import android.content.res.Configuration
2828import android.content.res.TypedArray
2929import android.net.Uri
3030import android.os.Build
31- import android.os.Bundle
3231import android.text.Html
3332import android.text.Spannable
3433import android.text.Spanned
@@ -49,9 +48,6 @@ import androidx.lifecycle.Lifecycle.Event
4948import androidx.lifecycle.LifecycleEventObserver
5049import androidx.lifecycle.LifecycleOwner
5150import androidx.lifecycle.LiveData
52- import androidx.navigation.NavDirections
53- import androidx.navigation.NavOptions
54- import androidx.navigation.fragment.findNavController
5551import androidx.recyclerview.widget.RecyclerView
5652import androidx.viewpager2.widget.ViewPager2
5753import com.airbnb.lottie.LottieAnimationView
@@ -78,28 +74,17 @@ import com.infomaniak.mail.data.models.Folder.FolderRole
7874import com.infomaniak.mail.data.models.correspondent.Correspondent
7975import com.infomaniak.mail.data.models.correspondent.MergedContact
8076import com.infomaniak.mail.data.models.correspondent.Recipient
81- import com.infomaniak.mail.data.models.draft.Draft.DraftMode
8277import com.infomaniak.mail.data.models.message.Message
83- import com.infomaniak.mail.ui.MainActivity
8478import com.infomaniak.mail.ui.alertDialogs.BaseAlertDialog
8579import com.infomaniak.mail.ui.alertDialogs.DescriptionAlertDialog
8680import com.infomaniak.mail.ui.login.IlluColors.IlluColors
87- import com.infomaniak.mail.ui.login.LoginActivity
88- import com.infomaniak.mail.ui.login.LoginActivityArgs
89- import com.infomaniak.mail.ui.login.NoMailboxActivity
9081import com.infomaniak.mail.ui.main.SnackbarManager
9182import com.infomaniak.mail.ui.main.folder.DateSeparatorItemDecoration
9283import com.infomaniak.mail.ui.main.folder.HeaderItemDecoration
9384import com.infomaniak.mail.ui.main.folder.ThreadListAdapter
9485import com.infomaniak.mail.ui.main.thread.MessageWebViewClient
9586import com.infomaniak.mail.ui.main.thread.RoundedBackgroundSpan
9687import com.infomaniak.mail.ui.main.thread.ThreadFragment.HeaderState
97- import com.infomaniak.mail.ui.main.thread.actions.AttachmentActionsBottomSheetDialog
98- import com.infomaniak.mail.ui.newMessage.NewMessageActivityArgs
99- import com.infomaniak.mail.ui.noValidMailboxes.NoValidMailboxesActivity
100- import com.infomaniak.mail.utils.AccountUtils.NO_MAILBOX_USER_ID_KEY
101- import com.infomaniak.mail.utils.AttachmentIntentUtils.AttachmentIntentType
102- import com.infomaniak.mail.utils.AttachmentIntentUtils.createDownloadDialogNavArgs
10388import com.infomaniak.mail.utils.Utils.isPermanentDeleteFolder
10489import com.infomaniak.mail.utils.Utils.kSyncAccountUri
10590import io.realm.kotlin.MutableRealm
@@ -251,57 +236,6 @@ fun WebView.initWebViewClientAndBridge(
251236}
252237// endregion
253238
254- // region Navigation
255- fun Fragment.animatedNavigation (directions : NavDirections , currentClassName : String? = null) {
256- if (canNavigate(currentClassName)) findNavController().navigate(directions, getAnimatedNavOptions())
257- }
258-
259- fun Fragment.animatedNavigation (@IdRes resId : Int , args : Bundle ? = null, currentClassName : String? = null) {
260- if (canNavigate(currentClassName)) findNavController().navigate(resId, args, getAnimatedNavOptions())
261- }
262-
263- fun getAnimatedNavOptions () = NavOptions
264- .Builder ()
265- .setEnterAnim(R .anim.fragment_swipe_enter)
266- .setExitAnim(R .anim.fragment_swipe_exit)
267- .setPopEnterAnim(R .anim.fragment_swipe_pop_enter)
268- .setPopExitAnim(R .anim.fragment_swipe_pop_exit)
269- .build()
270-
271- fun Fragment.safeNavigateToNewMessageActivity (
272- draftMode : DraftMode ,
273- previousMessageUid : String ,
274- currentClassName : String? = null,
275- shouldLoadDistantResources : Boolean = false,
276- ) {
277- safeNavigateToNewMessageActivity(
278- args = NewMessageActivityArgs (
279- arrivedFromExistingDraft = false ,
280- draftMode = draftMode,
281- previousMessageUid = previousMessageUid,
282- shouldLoadDistantResources = shouldLoadDistantResources,
283- ).toBundle(),
284- currentClassName = currentClassName,
285- )
286- }
287-
288- fun Fragment.safeNavigateToNewMessageActivity (args : Bundle ? = null, currentClassName : String? = null) {
289- if (canNavigate(currentClassName)) (requireActivity() as MainActivity ).navigateToNewMessageActivity(args)
290- }
291-
292- fun Fragment.navigateToDownloadProgressDialog (
293- attachment : Attachment ,
294- attachmentIntentType : AttachmentIntentType ,
295- currentClassName : String = AttachmentActionsBottomSheetDialog : :class.java.name,
296- ) {
297- safeNavigate(
298- resId = R .id.downloadAttachmentProgressDialog,
299- args = attachment.createDownloadDialogNavArgs(attachmentIntentType),
300- currentClassName = currentClassName,
301- )
302- }
303- // endregion
304-
305239// region API
306240inline fun <reified T > ApiResponse<T>.throwErrorAsException (): Nothing = throw getApiException()
307241
@@ -529,38 +463,6 @@ fun Context.isUserAlreadySynchronized(): Boolean {
529463 } ? : false
530464}
531465
532- fun Context.getLoginActivityIntent (args : LoginActivityArgs ? = null, shouldClearStack : Boolean = false): Intent {
533- return Intent (this , LoginActivity ::class .java).apply {
534- if (shouldClearStack) clearStack()
535- args?.toBundle()?.let (::putExtras)
536- }
537- }
538-
539- fun Context.launchLoginActivity (args : LoginActivityArgs ? = null) {
540- getLoginActivityIntent(args).also (::startActivity)
541- }
542-
543- fun Context.launchNoValidMailboxesActivity () {
544- Intent (this , NoValidMailboxesActivity ::class .java).apply {
545- clearStack()
546- }.also (::startActivity)
547- }
548-
549- fun Context.launchNoMailboxActivity (userId : Int? = null, shouldStartLoginActivity : Boolean = false) {
550- val noMailboxActivityIntent = Intent (this , NoMailboxActivity ::class .java).putExtra(NO_MAILBOX_USER_ID_KEY , userId)
551- val intentsArray = if (shouldStartLoginActivity) {
552- arrayOf(getLoginActivityIntent(shouldClearStack = true ), noMailboxActivityIntent)
553- } else {
554- arrayOf(noMailboxActivityIntent)
555- }
556-
557- startActivities(intentsArray)
558- }
559-
560- fun Fragment.launchSyncAutoConfigActivityForResult () {
561- (requireActivity() as MainActivity ).navigateToSyncAutoConfigActivity()
562- }
563-
564466fun TextInputLayout.setOnClearTextClickListener (trackerCallback : () -> Unit ) {
565467 setEndIconOnClickListener {
566468 editText?.text?.clear()
0 commit comments