@@ -28,7 +28,6 @@ import android.content.res.Configuration
28
28
import android.content.res.TypedArray
29
29
import android.net.Uri
30
30
import android.os.Build
31
- import android.os.Bundle
32
31
import android.text.Html
33
32
import android.text.Spannable
34
33
import android.text.Spanned
@@ -49,9 +48,6 @@ import androidx.lifecycle.Lifecycle.Event
49
48
import androidx.lifecycle.LifecycleEventObserver
50
49
import androidx.lifecycle.LifecycleOwner
51
50
import androidx.lifecycle.LiveData
52
- import androidx.navigation.NavDirections
53
- import androidx.navigation.NavOptions
54
- import androidx.navigation.fragment.findNavController
55
51
import androidx.recyclerview.widget.RecyclerView
56
52
import androidx.viewpager2.widget.ViewPager2
57
53
import com.airbnb.lottie.LottieAnimationView
@@ -78,28 +74,17 @@ import com.infomaniak.mail.data.models.Folder.FolderRole
78
74
import com.infomaniak.mail.data.models.correspondent.Correspondent
79
75
import com.infomaniak.mail.data.models.correspondent.MergedContact
80
76
import com.infomaniak.mail.data.models.correspondent.Recipient
81
- import com.infomaniak.mail.data.models.draft.Draft.DraftMode
82
77
import com.infomaniak.mail.data.models.message.Message
83
- import com.infomaniak.mail.ui.MainActivity
84
78
import com.infomaniak.mail.ui.alertDialogs.BaseAlertDialog
85
79
import com.infomaniak.mail.ui.alertDialogs.DescriptionAlertDialog
86
80
import 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
90
81
import com.infomaniak.mail.ui.main.SnackbarManager
91
82
import com.infomaniak.mail.ui.main.folder.DateSeparatorItemDecoration
92
83
import com.infomaniak.mail.ui.main.folder.HeaderItemDecoration
93
84
import com.infomaniak.mail.ui.main.folder.ThreadListAdapter
94
85
import com.infomaniak.mail.ui.main.thread.MessageWebViewClient
95
86
import com.infomaniak.mail.ui.main.thread.RoundedBackgroundSpan
96
87
import 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
103
88
import com.infomaniak.mail.utils.Utils.isPermanentDeleteFolder
104
89
import com.infomaniak.mail.utils.Utils.kSyncAccountUri
105
90
import io.realm.kotlin.MutableRealm
@@ -251,57 +236,6 @@ fun WebView.initWebViewClientAndBridge(
251
236
}
252
237
// endregion
253
238
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
-
305
239
// region API
306
240
inline fun <reified T > ApiResponse<T>.throwErrorAsException (): Nothing = throw getApiException()
307
241
@@ -529,38 +463,6 @@ fun Context.isUserAlreadySynchronized(): Boolean {
529
463
} ? : false
530
464
}
531
465
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
-
564
466
fun TextInputLayout.setOnClearTextClickListener (trackerCallback : () -> Unit ) {
565
467
setEndIconOnClickListener {
566
468
editText?.text?.clear()
0 commit comments