Skip to content

Commit e2431bc

Browse files
committed
refactor(navigator): simplify MoveOperationSummary
1 parent d83b6da commit e2431bc

7 files changed

Lines changed: 35 additions & 47 deletions

File tree

modules/navigator-domain/src/main/kotlin/com/w2sv/navigator/domain/moving/MoveOperationSummary.kt

Lines changed: 0 additions & 34 deletions
This file was deleted.

modules/navigator/src/main/kotlin/com/w2sv/navigator/di/FileNavigatorModule.kt

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@ package com.w2sv.navigator.di
33
import android.content.ContentResolver
44
import android.content.Context
55
import com.w2sv.navigator.FileNavigator
6-
import com.w2sv.navigator.domain.moving.MoveOperationSummary
6+
import com.w2sv.navigator.postmove.MoveOperationSummary
77
import dagger.Module
88
import dagger.Provides
99
import dagger.hilt.InstallIn

modules/navigator/src/main/kotlin/com/w2sv/navigator/moving/BatchMoveService.kt

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,7 @@ import com.w2sv.common.logging.LoggingUnboundService
99
import com.w2sv.navigator.di.MoveSummaryChannel
1010
import com.w2sv.navigator.domain.moving.MoveDestination
1111
import com.w2sv.navigator.domain.moving.MoveOperation
12-
import com.w2sv.navigator.domain.moving.MoveOperationSummary
12+
import com.w2sv.navigator.postmove.MoveOperationSummary
1313
import com.w2sv.navigator.domain.moving.MoveResult
1414
import com.w2sv.navigator.domain.notifications.NotificationEvent
1515
import com.w2sv.navigator.domain.notifications.NotificationEventHandler

modules/navigator/src/main/kotlin/com/w2sv/navigator/moving/FileMover.kt

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@ import android.content.Context
44
import com.w2sv.common.di.ApplicationIoScope
55
import com.w2sv.navigator.di.MoveSummaryChannel
66
import com.w2sv.navigator.domain.moving.MoveOperation
7-
import com.w2sv.navigator.domain.moving.MoveOperationSummary
7+
import com.w2sv.navigator.postmove.MoveOperationSummary
88
import javax.inject.Inject
99
import kotlinx.coroutines.CoroutineScope
1010
import kotlinx.coroutines.launch

modules/navigator/src/main/kotlin/com/w2sv/navigator/moving/activity/MoveActivityFinisher.kt

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -2,14 +2,14 @@ package com.w2sv.navigator.moving.activity
22

33
import android.app.Activity
44
import com.w2sv.navigator.di.MoveSummaryChannel
5-
import com.w2sv.navigator.domain.moving.MoveOperationSummary
5+
import com.w2sv.navigator.postmove.MoveOperationSummary
66
import com.w2sv.navigator.domain.moving.MoveResult
77
import javax.inject.Inject
88

99
class MoveActivityFinisher @Inject constructor(private val moveSummaryChannel: MoveSummaryChannel) {
1010

1111
fun finishOnError(activity: Activity, error: MoveResult) {
12-
moveSummaryChannel.trySend(MoveOperationSummary.EarlyCancellation(error))
12+
moveSummaryChannel.trySend(MoveOperationSummary(error))
1313
activity.finishAndRemoveTask()
1414
}
1515
}
Lines changed: 22 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,22 @@
1+
package com.w2sv.navigator.postmove
2+
3+
import android.content.Context
4+
import com.w2sv.common.util.makeIf
5+
import com.w2sv.navigator.domain.moving.MoveOperation
6+
import com.w2sv.navigator.domain.moving.MoveOperationFeedback
7+
import com.w2sv.navigator.domain.moving.MoveResult
8+
import com.w2sv.navigator.domain.notifications.CancelNotificationEvent
9+
10+
data class MoveOperationSummary(val result: MoveResult, val operation: MoveOperation? = null) {
11+
val cancelNavigateFileNotificationEvent: CancelNotificationEvent?
12+
get() = operation?.destinationSelectionManner?.cancelNotificationEvent?.takeIf { result.cancelNotification }
13+
14+
private val isPartOfBatch
15+
get() = operation?.isPartOfBatch == true
16+
17+
/**
18+
* @return [MoveOperationFeedback] corresponding to the [result] if the operation is NOT part of a batch.
19+
*/
20+
fun makeFeedback(context: Context): MoveOperationFeedback? =
21+
makeIf(!isPartOfBatch) { result.makeFeedback(context, operation) }
22+
}

modules/navigator/src/main/kotlin/com/w2sv/navigator/postmove/MoveSummaryListener.kt

Lines changed: 8 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -5,20 +5,19 @@ import com.w2sv.androidutils.widget.showToast
55
import com.w2sv.common.di.ApplicationIoScope
66
import com.w2sv.domain.repository.NavigatorConfigDataSource
77
import com.w2sv.domain.usecase.InsertMovedFileUseCase
8-
import com.w2sv.navigator.domain.moving.NavigatableFile
98
import com.w2sv.navigator.domain.moving.MoveOperation
109
import com.w2sv.navigator.domain.moving.MoveOperationFeedback
11-
import com.w2sv.navigator.domain.moving.MoveOperationSummary
1210
import com.w2sv.navigator.domain.moving.MoveResult
11+
import com.w2sv.navigator.domain.moving.NavigatableFile
1312
import com.w2sv.navigator.domain.notifications.NotificationEventHandler
1413
import dagger.hilt.android.qualifiers.ApplicationContext
15-
import java.time.LocalDateTime
16-
import javax.inject.Inject
1714
import kotlinx.coroutines.CoroutineScope
1815
import kotlinx.coroutines.Dispatchers
1916
import kotlinx.coroutines.launch
2017
import kotlinx.coroutines.withContext
2118
import slimber.log.i
19+
import java.time.LocalDateTime
20+
import javax.inject.Inject
2221

2322
internal class MoveSummaryListener @Inject constructor(
2423
private val insertMovedFileUseCase: InsertMovedFileUseCase,
@@ -38,11 +37,12 @@ internal class MoveSummaryListener @Inject constructor(
3837
}
3938
}
4039

41-
// TODO meh
42-
if (summary is MoveOperationSummary.WithOperation) {
40+
// If operation present trigger specific actions for results that demand them
41+
// TODO model should be such that the operation can't be null on Success or MoveDestinationNotFound
42+
summary.operation?.let { operation ->
4343
when (summary.result) {
44-
is MoveResult.Success -> onSuccess(summary.operation)
45-
is MoveResult.MoveDestinationNotFound -> onMoveDestinationNotFound(summary.operation)
44+
is MoveResult.Success -> onSuccess(operation)
45+
is MoveResult.MoveDestinationNotFound -> onMoveDestinationNotFound(operation)
4646
else -> Unit
4747
}
4848
}

0 commit comments

Comments
 (0)