@@ -36,6 +36,7 @@ import com.infomaniak.lib.bugtracker.BugTrackerActivityArgs
36
36
import com.infomaniak.lib.core.utils.UtilsUi.openUrl
37
37
import com.infomaniak.lib.core.utils.safeNavigate
38
38
import com.infomaniak.mail.BuildConfig
39
+ import com.infomaniak.mail.MatomoMail.toFloat
39
40
import com.infomaniak.mail.MatomoMail.trackCreateFolderEvent
40
41
import com.infomaniak.mail.MatomoMail.trackMenuDrawerEvent
41
42
import com.infomaniak.mail.MatomoMail.trackScreen
@@ -52,6 +53,7 @@ import com.infomaniak.mail.ui.alertDialogs.CreateFolderDialog
52
53
import com.infomaniak.mail.ui.bottomSheetDialogs.LockedMailboxBottomSheetDialogArgs
53
54
import com.infomaniak.mail.ui.main.InvalidPasswordFragmentArgs
54
55
import com.infomaniak.mail.ui.main.folder.ThreadListFragmentDirections
56
+ import com.infomaniak.mail.ui.main.menuDrawer.items.ActionViewHolder.MenuDrawerAction.ActionType
55
57
import com.infomaniak.mail.utils.AccountUtils
56
58
import com.infomaniak.mail.utils.ConfettiUtils
57
59
import com.infomaniak.mail.utils.ConfettiUtils.ConfettiType.INFOMANIAK
@@ -125,13 +127,12 @@ class MenuDrawerFragment : Fragment() {
125
127
override var onValidMailboxClicked: (Int ) -> Unit = ::onValidMailboxClicked
126
128
override var onLockedMailboxClicked: (String ) -> Unit = ::onLockedMailboxClicked
127
129
override var onInvalidPasswordMailboxClicked: (Mailbox ) -> Unit = ::onInvalidPasswordMailboxClicked
130
+ override var onFoldersHeaderClicked: (Boolean ) -> Unit = ::onFoldersHeaderClicked
131
+ override var onCreateFolderClicked: () -> Unit = ::onCreateFolderClicked
128
132
override var onFolderClicked: (folderId: String ) -> Unit = ::onFolderSelected
129
133
override var onCollapseChildrenClicked: (folderId: String , shouldCollapse: Boolean ) -> Unit = ::onFolderCollapsed
130
- override var onCustomFoldersHeaderClicked: (Boolean ) -> Unit = ::onCustomFoldersHeaderClicked
131
- override var onCreateFolderClicked: () -> Unit = ::onCreateFolderClicked
132
- override var onSyncAutoConfigClicked: () -> Unit = ::onSyncAutoConfigClicked
133
- override var onImportMailsClicked: () -> Unit = ::onImportMailsClicked
134
- override var onRestoreMailsClicked: () -> Unit = ::onRestoreMailsClicked
134
+ override var onActionsHeaderClicked: () -> Unit = ::onActionsHeaderClicked
135
+ override var onActionClicked: (ActionType ) -> Unit = ::onActionClicked
135
136
override var onFeedbackClicked: () -> Unit = ::onFeedbackClicked
136
137
override var onHelpClicked: () -> Unit = ::onHelpClicked
137
138
override var onAppVersionClicked: () -> Unit = ::onAppVersionClicked
@@ -178,7 +179,7 @@ class MenuDrawerFragment : Fragment() {
178
179
)
179
180
}
180
181
181
- private fun onCustomFoldersHeaderClicked (isCollapsed : Boolean ) {
182
+ private fun onFoldersHeaderClicked (isCollapsed : Boolean ) {
182
183
trackMenuDrawerEvent(" customFolders" , ! isCollapsed)
183
184
menuDrawerViewModel.areCustomFoldersExpanded.value = ! isCollapsed
184
185
}
@@ -197,6 +198,19 @@ class MenuDrawerFragment : Fragment() {
197
198
menuDrawerViewModel.toggleFolderCollapsingState(folderId, shouldCollapse)
198
199
}
199
200
201
+ private fun onActionsHeaderClicked () {
202
+ context?.trackMenuDrawerEvent(" advancedActions" , value = (! menuDrawerViewModel.areActionsExpanded.value!! ).toFloat())
203
+ menuDrawerViewModel.toggleActionsCollapsingState()
204
+ }
205
+
206
+ private fun onActionClicked (type : ActionType ) {
207
+ when (type) {
208
+ ActionType .SYNC_AUTO_CONFIG -> onSyncAutoConfigClicked()
209
+ ActionType .IMPORT_MAILS -> onImportMailsClicked()
210
+ ActionType .RESTORE_MAILS -> onRestoreMailsClicked()
211
+ }
212
+ }
213
+
200
214
private fun onSyncAutoConfigClicked () {
201
215
trackSyncAutoConfigEvent(" openFromMenuDrawer" )
202
216
launchSyncAutoConfigActivityForResult()
@@ -258,6 +272,7 @@ class MenuDrawerFragment : Fragment() {
258
272
menuDrawerViewModel.areMailboxesExpanded,
259
273
currentFoldersLive,
260
274
menuDrawerViewModel.areCustomFoldersExpanded,
275
+ menuDrawerViewModel.areActionsExpanded,
261
276
currentPermissionsLive,
262
277
currentQuotasLive,
263
278
constructor = {
@@ -267,8 +282,9 @@ class MenuDrawerFragment : Fragment() {
267
282
it[1 ] as Boolean ,
268
283
it[2 ] as List <Folder >,
269
284
it[3 ] as Boolean ,
270
- it[4 ] as MailboxPermissions ? ,
271
- it[5 ] as Quotas ? ,
285
+ it[4 ] as Boolean ,
286
+ it[5 ] as MailboxPermissions ? ,
287
+ it[6 ] as Quotas ? ,
272
288
)
273
289
}
274
290
)
@@ -309,6 +325,7 @@ class MenuDrawerFragment : Fragment() {
309
325
val areMailboxesExpanded : Boolean ,
310
326
val allFolders : List <Folder >,
311
327
val areCustomFoldersExpanded : Boolean ,
328
+ val areActionsExpanded : Boolean ,
312
329
val permissions : MailboxPermissions ? ,
313
330
val quotas : Quotas ? ,
314
331
)
0 commit comments