diff --git a/core/common/display/src/main/java/com/buzbuz/smartautoclicker/core/display/recorder/DisplayRecorder.kt b/core/common/display/src/main/java/com/buzbuz/smartautoclicker/core/display/recorder/DisplayRecorder.kt
index 222c6e6b3..5b5ab1444 100644
--- a/core/common/display/src/main/java/com/buzbuz/smartautoclicker/core/display/recorder/DisplayRecorder.kt
+++ b/core/common/display/src/main/java/com/buzbuz/smartautoclicker/core/display/recorder/DisplayRecorder.kt
@@ -163,9 +163,9 @@ class DisplayRecorder @Inject internal constructor(
do {
result = imageReaderProxy.getLastFrame()
- if (result == null) delay(20.milliseconds)
+ if (result == null) delay(40.milliseconds)
- } while (result == null && System.currentTimeMillis() < (startTimeMs + 1000))
+ } while (result == null && System.currentTimeMillis() < (startTimeMs + SCREEN_CAPTURE_SCREENSHOT_TIMEOUT_MS))
return result
}
@@ -202,7 +202,9 @@ class DisplayRecorder @Inject internal constructor(
}
/** How long to wait for the first valid frame when validating screen capture support, in milliseconds. */
-private const val SCREEN_CAPTURE_VALIDATION_TIMEOUT_MS = 1000L
+private const val SCREEN_CAPTURE_SCREENSHOT_TIMEOUT_MS = 2000L
+/** How long to wait for the first valid frame when validating screen capture support, in milliseconds. */
+private const val SCREEN_CAPTURE_VALIDATION_TIMEOUT_MS = 2000L
/** Polling interval between frame acquisition attempts during screen capture validation, in milliseconds. */
private const val SCREEN_CAPTURE_VALIDATION_RETRY_DELAY_MS = 20L
diff --git a/core/common/navigation/src/main/java/com/buzbuz/smartautoclicker/core/common/navigation/TutorialNavigator.kt b/core/common/navigation/src/main/java/com/buzbuz/smartautoclicker/core/common/navigation/TutorialNavigator.kt
index 779f8dfe0..83d2a98f8 100644
--- a/core/common/navigation/src/main/java/com/buzbuz/smartautoclicker/core/common/navigation/TutorialNavigator.kt
+++ b/core/common/navigation/src/main/java/com/buzbuz/smartautoclicker/core/common/navigation/TutorialNavigator.kt
@@ -17,7 +17,7 @@
package com.buzbuz.smartautoclicker.core.common.navigation
import android.content.Context
-import com.buzbuz.smartautoclicker.core.common.tutorial.domain.model.data.Tip
+import com.buzbuz.smartautoclicker.core.common.tutorial.domain.model.Tip
import dagger.hilt.EntryPoints
interface TutorialNavigator {
diff --git a/core/common/overlays/src/main/java/com/buzbuz/smartautoclicker/core/common/overlays/dialog/implementation/navbar/NavBarDialog.kt b/core/common/overlays/src/main/java/com/buzbuz/smartautoclicker/core/common/overlays/dialog/implementation/navbar/NavBarDialog.kt
index f7f9dc992..0855e701d 100644
--- a/core/common/overlays/src/main/java/com/buzbuz/smartautoclicker/core/common/overlays/dialog/implementation/navbar/NavBarDialog.kt
+++ b/core/common/overlays/src/main/java/com/buzbuz/smartautoclicker/core/common/overlays/dialog/implementation/navbar/NavBarDialog.kt
@@ -21,8 +21,6 @@ import android.view.Gravity
import android.view.LayoutInflater
import android.view.View
import android.view.ViewGroup
-import android.view.Window
-import android.view.WindowManager
import androidx.annotation.CallSuper
import androidx.annotation.StyleRes
@@ -49,8 +47,6 @@ abstract class NavBarDialog(@StyleRes theme: Int) : OverlayDialog(theme) {
lateinit var floatingActionButtons: IncludeFloatingActionButtonsBinding
lateinit var topBarBinding: IncludeDialogNavigationTopBarBinding
- private var imeLiftController: NavBarDialogImeLiftController? = null
-
abstract fun inflateMenu(navBarView: NavigationBarView)
abstract fun onCreateContent(navItemId: Int): NavBarDialogContent
@@ -59,17 +55,6 @@ abstract class NavBarDialog(@StyleRes theme: Int) : OverlayDialog(theme) {
open fun onContentViewChanged(navItemId: Int) = Unit
- /**
- * Keep window size unchanged while the IME is shown.
- * Portrait bottom bar sits on the dialog [CoordinatorLayout]; [SOFT_INPUT_ADJUST_RESIZE] parks the sheet mid-screen.
- */
- override fun applySoftInputMode(window: Window) {
- window.setSoftInputMode(
- WindowManager.LayoutParams.SOFT_INPUT_ADJUST_NOTHING or
- WindowManager.LayoutParams.SOFT_INPUT_STATE_HIDDEN,
- )
- }
-
override fun onCreateView(): ViewGroup {
baseViewBinding = DialogBaseNavBarBinding.inflate(LayoutInflater.from(context)).apply {
layoutTopBar.apply {
@@ -114,15 +99,6 @@ abstract class NavBarDialog(@StyleRes theme: Int) : OverlayDialog(theme) {
setupPortraitViews()
}
- val coordinator = dialogCoordinatorLayout
- val decor = dialog.window?.decorView
- if (coordinator != null && decor != null) {
- imeLiftController = NavBarDialogImeLiftController(
- liftTarget = coordinator,
- insetHost = decor,
- ).also { it.start() }
- }
-
updateContentView(
itemId = navBarView.selectedItemId,
forceUpdate = true,
@@ -140,8 +116,6 @@ abstract class NavBarDialog(@StyleRes theme: Int) : OverlayDialog(theme) {
}
override fun onDestroy() {
- imeLiftController?.stop()
- imeLiftController = null
contentMap.values.forEach { content ->
content.destroy()
}
diff --git a/core/common/overlays/src/main/java/com/buzbuz/smartautoclicker/core/common/overlays/dialog/implementation/navbar/NavBarDialogImeLiftController.kt b/core/common/overlays/src/main/java/com/buzbuz/smartautoclicker/core/common/overlays/dialog/implementation/navbar/NavBarDialogImeLiftController.kt
deleted file mode 100644
index 340eb84bb..000000000
--- a/core/common/overlays/src/main/java/com/buzbuz/smartautoclicker/core/common/overlays/dialog/implementation/navbar/NavBarDialogImeLiftController.kt
+++ /dev/null
@@ -1,117 +0,0 @@
-/*
- * Copyright (C) 2026 Kevin Buzeau
- *
- * This program is free software: you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation, either version 3 of the License, or
- * (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program. If not, see .
- */
-package com.buzbuz.smartautoclicker.core.common.overlays.dialog.implementation.navbar
-
-import android.animation.ValueAnimator
-import android.view.View
-import android.view.animation.AccelerateDecelerateInterpolator
-
-import androidx.core.view.ViewCompat
-import androidx.core.view.WindowInsetsAnimationCompat
-import androidx.core.view.WindowInsetsCompat
-
-/**
- * Lifts a dialog content root when the IME is visible.
- *
- * [NavBarDialog] keeps [android.view.WindowManager.LayoutParams.SOFT_INPUT_ADJUST_NOTHING] so the portrait bottom bar
- * is not parked by system resize; this controller mirrors IME height via translation instead.
- */
-internal class NavBarDialogImeLiftController(
- private val liftTarget: View,
- private val insetHost: View,
-) {
-
- private var lastImeLiftPx: Int = 0
- private var imeAnimationRunning: Boolean = false
- private var imeLiftAnimator: ValueAnimator? = null
-
- private val insetsAnimationCallback =
- object : WindowInsetsAnimationCompat.Callback(DISPATCH_MODE_CONTINUE_ON_SUBTREE) {
- override fun onPrepare(animation: WindowInsetsAnimationCompat) {
- if (animation.typeMask and WindowInsetsCompat.Type.ime() != 0) {
- imeAnimationRunning = true
- imeLiftAnimator?.cancel()
- }
- }
-
- override fun onProgress(
- insets: WindowInsetsCompat,
- runningAnimations: MutableList,
- ): WindowInsetsCompat {
- applyImeLift(resolveImeLiftPx(insets))
- return insets
- }
-
- override fun onEnd(animation: WindowInsetsAnimationCompat) {
- if (animation.typeMask and WindowInsetsCompat.Type.ime() != 0) {
- imeAnimationRunning = false
- syncImeLiftAnimated()
- }
- }
- }
-
- fun start() {
- ViewCompat.setWindowInsetsAnimationCallback(insetHost, insetsAnimationCallback)
- ViewCompat.setOnApplyWindowInsetsListener(insetHost) { _, insets ->
- if (!imeAnimationRunning) {
- applyImeLift(resolveImeLiftPx(insets))
- }
- insets
- }
- ViewCompat.requestApplyInsets(insetHost)
- }
-
- fun stop() {
- imeLiftAnimator?.cancel()
- imeLiftAnimator = null
- ViewCompat.setWindowInsetsAnimationCallback(insetHost, null)
- ViewCompat.setOnApplyWindowInsetsListener(insetHost, null)
- applyImeLift(0)
- }
-
- private fun syncImeLiftAnimated() {
- val insets = ViewCompat.getRootWindowInsets(insetHost) ?: return
- val target = resolveImeLiftPx(insets)
- if (target == lastImeLiftPx) return
-
- imeLiftAnimator?.cancel()
- val start = lastImeLiftPx
- imeLiftAnimator = ValueAnimator.ofInt(start, target).apply {
- duration = IME_LIFT_ANIMATION_MS
- interpolator = AccelerateDecelerateInterpolator()
- addUpdateListener { animator ->
- applyImeLift(animator.animatedValue as Int)
- }
- start()
- }
- }
-
- private fun resolveImeLiftPx(insets: WindowInsetsCompat): Int {
- if (!insets.isVisible(WindowInsetsCompat.Type.ime())) return 0
- return insets.getInsets(WindowInsetsCompat.Type.ime()).bottom
- }
-
- private fun applyImeLift(imeBottomPx: Int) {
- if (imeBottomPx == lastImeLiftPx) return
- lastImeLiftPx = imeBottomPx
- liftTarget.translationY = -imeBottomPx.toFloat()
- }
-
- private companion object {
- const val IME_LIFT_ANIMATION_MS = 180L
- }
-}
diff --git a/core/common/overlays/src/main/java/com/buzbuz/smartautoclicker/core/common/overlays/menu/OverlayMenu.kt b/core/common/overlays/src/main/java/com/buzbuz/smartautoclicker/core/common/overlays/menu/OverlayMenu.kt
index d56856db2..cd75feeaa 100644
--- a/core/common/overlays/src/main/java/com/buzbuz/smartautoclicker/core/common/overlays/menu/OverlayMenu.kt
+++ b/core/common/overlays/src/main/java/com/buzbuz/smartautoclicker/core/common/overlays/menu/OverlayMenu.kt
@@ -461,9 +461,30 @@ abstract class OverlayMenu(
*/
protected fun setMenuItemVisibility(view: View, visible: Boolean) {
Log.d(TAG, "setMenuItemVisibility for ${hashCode()}, $view to $visible")
+
+ if (view.isVisible == visible) return
view.isVisible = visible
- if (!resizeController.isAnimating) forceWindowResize()
+ if (canResizeWindow()) forceWindowResize()
+ }
+
+ /**
+ * Set the visibility of several menu items.
+ * When changing multiple items visibility, use this method to recompute the window size only once.
+ *
+ * @param viewState map of the item views to their new visibility
+ */
+ protected fun setMenuItemsVisibility(viewState: Map) {
+ Log.d(TAG, "setMenuItemVisibility for ${hashCode()}, $viewState")
+
+ var haveChanged = false
+ viewState.forEach { (view, isVisible) ->
+ haveChanged = haveChanged || view.isVisible != isVisible
+ view.isVisible = isVisible
+ }
+
+ if (!haveChanged) return
+ if (canResizeWindow()) forceWindowResize()
}
/**
@@ -477,6 +498,10 @@ abstract class OverlayMenu(
resizeController.animateLayoutChanges(layoutChanges)
}
+ private fun canResizeWindow(): Boolean =
+ !resizeController.isAnimating && !animations.showAnimationIsRunning
+ && !animations.hideAnimationIsRunning && menuBackground.width > 0
+
private fun forceWindowResize() {
Log.d(TAG, "Force window resize")
onNewWindowSize(resizeController.measureMenuSize())
diff --git a/core/common/overlays/src/main/java/com/buzbuz/smartautoclicker/core/common/overlays/menu/implementation/common/OverlayMenuAnimations.kt b/core/common/overlays/src/main/java/com/buzbuz/smartautoclicker/core/common/overlays/menu/implementation/common/OverlayMenuAnimations.kt
index e91dbce44..76a121f40 100644
--- a/core/common/overlays/src/main/java/com/buzbuz/smartautoclicker/core/common/overlays/menu/implementation/common/OverlayMenuAnimations.kt
+++ b/core/common/overlays/src/main/java/com/buzbuz/smartautoclicker/core/common/overlays/menu/implementation/common/OverlayMenuAnimations.kt
@@ -69,6 +69,10 @@ internal class OverlayMenuAnimations : Dumpable {
showAnimationIsRunning = false
showOverlayMenuAnimation.cancel()
showOverlayViewAnimation.cancel()
+
+ view.alpha = 1f
+ if (overlayView is ViewGroup && overlayView.childCount == 1) overlayView.children.first().alpha = 1f
+
onAnimationEnded()
}
view.postDelayed(timeoutCallback, 1_000)
@@ -107,6 +111,10 @@ internal class OverlayMenuAnimations : Dumpable {
hideAnimationIsRunning = false
hideOverlayMenuAnimation.cancel()
hideOverlayViewAnimation.cancel()
+
+ view.alpha = 0f
+ if (overlayView is ViewGroup && overlayView.childCount == 1) overlayView.children.first().alpha = 0f
+
onAnimationEnded()
}
diff --git a/core/common/overlays/src/main/java/com/buzbuz/smartautoclicker/core/common/overlays/menu/implementation/common/OverlayMenuResizeController.kt b/core/common/overlays/src/main/java/com/buzbuz/smartautoclicker/core/common/overlays/menu/implementation/common/OverlayMenuResizeController.kt
index f7789e956..974e45915 100644
--- a/core/common/overlays/src/main/java/com/buzbuz/smartautoclicker/core/common/overlays/menu/implementation/common/OverlayMenuResizeController.kt
+++ b/core/common/overlays/src/main/java/com/buzbuz/smartautoclicker/core/common/overlays/menu/implementation/common/OverlayMenuResizeController.kt
@@ -125,11 +125,15 @@ internal class OverlayMenuResizeController(
}
fun measureMenuSize(): Size {
- resizedContainer.measure(MeasureSpec.EXACTLY, MeasureSpec.EXACTLY)
+ resizedContainer.measure(
+ MeasureSpec.makeMeasureSpec(0, MeasureSpec.UNSPECIFIED),
+ MeasureSpec.makeMeasureSpec(0, MeasureSpec.UNSPECIFIED),
+ )
- // Get the height of all children + the padding
+ // Get the height of all children + the padding.
+ // Use measuredHeight as fallback for views that are now visible but not yet laid out (height == 0).
val height = resizedContainer.children.fold(0) { acc, child ->
- acc + (if (child.isGone) 0 else child.height)
+ acc + (if (child.isGone) 0 else maxOf(child.height, child.measuredHeight))
} + resizedContainer.paddingTop + resizedContainer.paddingBottom
val firstChild = (backgroundViewGroup.getChildAt(0) as? ViewGroup)
diff --git a/core/common/tutorial/src/main/java/com/buzbuz/smartautoclicker/core/common/tutorial/domain/TutorialRepository.kt b/core/common/tutorial/src/main/java/com/buzbuz/smartautoclicker/core/common/tutorial/domain/TutorialRepository.kt
index 8574e91f6..33b8d1765 100644
--- a/core/common/tutorial/src/main/java/com/buzbuz/smartautoclicker/core/common/tutorial/domain/TutorialRepository.kt
+++ b/core/common/tutorial/src/main/java/com/buzbuz/smartautoclicker/core/common/tutorial/domain/TutorialRepository.kt
@@ -17,9 +17,8 @@
package com.buzbuz.smartautoclicker.core.common.tutorial.domain
import android.content.Intent
-import com.buzbuz.smartautoclicker.core.common.tutorial.domain.model.data.Tutorial
-import com.buzbuz.smartautoclicker.core.common.tutorial.domain.model.data.TutorialInfo
-import com.buzbuz.smartautoclicker.core.common.tutorial.domain.model.data.Tip
+import com.buzbuz.smartautoclicker.core.common.tutorial.domain.model.tutorial.Tutorial
+import com.buzbuz.smartautoclicker.core.common.tutorial.domain.model.Tip
import com.buzbuz.smartautoclicker.core.common.tutorial.domain.model.state.TutorialState
import kotlinx.coroutines.flow.Flow
diff --git a/core/common/tutorial/src/main/java/com/buzbuz/smartautoclicker/core/common/tutorial/domain/TutorialSubjectController.kt b/core/common/tutorial/src/main/java/com/buzbuz/smartautoclicker/core/common/tutorial/domain/TutorialSubjectController.kt
index 82607f1ba..cd8b49089 100644
--- a/core/common/tutorial/src/main/java/com/buzbuz/smartautoclicker/core/common/tutorial/domain/TutorialSubjectController.kt
+++ b/core/common/tutorial/src/main/java/com/buzbuz/smartautoclicker/core/common/tutorial/domain/TutorialSubjectController.kt
@@ -16,8 +16,8 @@
*/
package com.buzbuz.smartautoclicker.core.common.tutorial.domain
-import com.buzbuz.smartautoclicker.core.common.tutorial.domain.model.data.subject.TutorialSubject
-import com.buzbuz.smartautoclicker.core.common.tutorial.domain.model.data.subject.quickclickgame.QuickClickGameTargetType
+import com.buzbuz.smartautoclicker.core.common.tutorial.domain.model.tutorial.subject.TutorialSubject
+import com.buzbuz.smartautoclicker.core.common.tutorial.domain.model.tutorial.subject.quickclickgame.QuickClickGameTargetType
import com.buzbuz.smartautoclicker.core.common.tutorial.domain.model.state.TutorialSubjectState
import kotlinx.coroutines.flow.StateFlow
diff --git a/core/common/tutorial/src/main/java/com/buzbuz/smartautoclicker/core/common/tutorial/domain/model/data/Tip.kt b/core/common/tutorial/src/main/java/com/buzbuz/smartautoclicker/core/common/tutorial/domain/model/Tip.kt
similarity index 88%
rename from core/common/tutorial/src/main/java/com/buzbuz/smartautoclicker/core/common/tutorial/domain/model/data/Tip.kt
rename to core/common/tutorial/src/main/java/com/buzbuz/smartautoclicker/core/common/tutorial/domain/model/Tip.kt
index 6c9ce70d1..d8ae1752d 100644
--- a/core/common/tutorial/src/main/java/com/buzbuz/smartautoclicker/core/common/tutorial/domain/model/data/Tip.kt
+++ b/core/common/tutorial/src/main/java/com/buzbuz/smartautoclicker/core/common/tutorial/domain/model/Tip.kt
@@ -1,4 +1,4 @@
-/*
+/*
* Copyright (C) 2026 Kevin Buzeau
*
* This program is free software: you can redistribute it and/or modify
@@ -14,8 +14,12 @@
* You should have received a copy of the GNU General Public License
* along with this program. If not, see .
*/
-package com.buzbuz.smartautoclicker.core.common.tutorial.domain.model.data
+package com.buzbuz.smartautoclicker.core.common.tutorial.domain.model
enum class Tip {
+ IMAGE_CAPTURE,
+ IMAGE_DETECTION_AREA,
+ NUMBER_DETECTION_AREA,
+ TEXT_DETECTION_AREA,
STOP_WITH_VOLUME_DOWN,
}
\ No newline at end of file
diff --git a/core/common/tutorial/src/main/java/com/buzbuz/smartautoclicker/core/common/tutorial/domain/model/state/TutorialState.kt b/core/common/tutorial/src/main/java/com/buzbuz/smartautoclicker/core/common/tutorial/domain/model/state/TutorialState.kt
index 22879364e..6ea7e5cb3 100644
--- a/core/common/tutorial/src/main/java/com/buzbuz/smartautoclicker/core/common/tutorial/domain/model/state/TutorialState.kt
+++ b/core/common/tutorial/src/main/java/com/buzbuz/smartautoclicker/core/common/tutorial/domain/model/state/TutorialState.kt
@@ -16,8 +16,8 @@
*/
package com.buzbuz.smartautoclicker.core.common.tutorial.domain.model.state
-import com.buzbuz.smartautoclicker.core.common.tutorial.domain.model.data.Tutorial
-import com.buzbuz.smartautoclicker.core.common.tutorial.domain.model.data.step.TutorialStep
+import com.buzbuz.smartautoclicker.core.common.tutorial.domain.model.tutorial.Tutorial
+import com.buzbuz.smartautoclicker.core.common.tutorial.domain.model.tutorial.step.TutorialStep
/**
* Lifecycle state of the tutorial engine, emitted on [TutorialRepository.tutorialState].
diff --git a/core/common/tutorial/src/main/java/com/buzbuz/smartautoclicker/core/common/tutorial/domain/model/state/TutorialSubjectState.kt b/core/common/tutorial/src/main/java/com/buzbuz/smartautoclicker/core/common/tutorial/domain/model/state/TutorialSubjectState.kt
index 620cc03c1..e54a98c64 100644
--- a/core/common/tutorial/src/main/java/com/buzbuz/smartautoclicker/core/common/tutorial/domain/model/state/TutorialSubjectState.kt
+++ b/core/common/tutorial/src/main/java/com/buzbuz/smartautoclicker/core/common/tutorial/domain/model/state/TutorialSubjectState.kt
@@ -16,9 +16,9 @@
*/
package com.buzbuz.smartautoclicker.core.common.tutorial.domain.model.state
-import com.buzbuz.smartautoclicker.core.common.tutorial.domain.model.data.subject.TutorialSubject
-import com.buzbuz.smartautoclicker.core.common.tutorial.domain.model.data.subject.quickclickgame.QuickClickGameTargetState
-import com.buzbuz.smartautoclicker.core.common.tutorial.domain.model.data.subject.quickclickgame.QuickClickGameTargetType
+import com.buzbuz.smartautoclicker.core.common.tutorial.domain.model.tutorial.subject.TutorialSubject
+import com.buzbuz.smartautoclicker.core.common.tutorial.domain.model.tutorial.subject.quickclickgame.QuickClickGameTargetState
+import com.buzbuz.smartautoclicker.core.common.tutorial.domain.model.tutorial.subject.quickclickgame.QuickClickGameTargetType
/**
* Live state of the active tutorial subject, emitted on [TutorialSubjectController.Game.state].
diff --git a/core/common/tutorial/src/main/java/com/buzbuz/smartautoclicker/core/common/tutorial/domain/model/data/Tutorial.kt b/core/common/tutorial/src/main/java/com/buzbuz/smartautoclicker/core/common/tutorial/domain/model/tutorial/Tutorial.kt
similarity index 94%
rename from core/common/tutorial/src/main/java/com/buzbuz/smartautoclicker/core/common/tutorial/domain/model/data/Tutorial.kt
rename to core/common/tutorial/src/main/java/com/buzbuz/smartautoclicker/core/common/tutorial/domain/model/tutorial/Tutorial.kt
index 2f14f3080..8d893b97e 100644
--- a/core/common/tutorial/src/main/java/com/buzbuz/smartautoclicker/core/common/tutorial/domain/model/data/Tutorial.kt
+++ b/core/common/tutorial/src/main/java/com/buzbuz/smartautoclicker/core/common/tutorial/domain/model/tutorial/Tutorial.kt
@@ -14,10 +14,10 @@
* You should have received a copy of the GNU General Public License
* along with this program. If not, see .
*/
-package com.buzbuz.smartautoclicker.core.common.tutorial.domain.model.data
+package com.buzbuz.smartautoclicker.core.common.tutorial.domain.model.tutorial
-import com.buzbuz.smartautoclicker.core.common.tutorial.domain.model.data.step.TutorialStep
-import com.buzbuz.smartautoclicker.core.common.tutorial.domain.model.data.subject.TutorialSubject
+import com.buzbuz.smartautoclicker.core.common.tutorial.domain.model.tutorial.step.TutorialStep
+import com.buzbuz.smartautoclicker.core.common.tutorial.domain.model.tutorial.subject.TutorialSubject
/**
* Root definition of a single tutorial.
diff --git a/core/common/tutorial/src/main/java/com/buzbuz/smartautoclicker/core/common/tutorial/domain/model/data/TutorialInfo.kt b/core/common/tutorial/src/main/java/com/buzbuz/smartautoclicker/core/common/tutorial/domain/model/tutorial/TutorialInfo.kt
similarity index 98%
rename from core/common/tutorial/src/main/java/com/buzbuz/smartautoclicker/core/common/tutorial/domain/model/data/TutorialInfo.kt
rename to core/common/tutorial/src/main/java/com/buzbuz/smartautoclicker/core/common/tutorial/domain/model/tutorial/TutorialInfo.kt
index dc9e139ae..861234d39 100644
--- a/core/common/tutorial/src/main/java/com/buzbuz/smartautoclicker/core/common/tutorial/domain/model/data/TutorialInfo.kt
+++ b/core/common/tutorial/src/main/java/com/buzbuz/smartautoclicker/core/common/tutorial/domain/model/tutorial/TutorialInfo.kt
@@ -14,7 +14,7 @@
* You should have received a copy of the GNU General Public License
* along with this program. If not, see .
*/
-package com.buzbuz.smartautoclicker.core.common.tutorial.domain.model.data
+package com.buzbuz.smartautoclicker.core.common.tutorial.domain.model.tutorial
import androidx.annotation.StringRes
diff --git a/core/common/tutorial/src/main/java/com/buzbuz/smartautoclicker/core/common/tutorial/domain/model/data/step/TutorialStep.kt b/core/common/tutorial/src/main/java/com/buzbuz/smartautoclicker/core/common/tutorial/domain/model/tutorial/step/TutorialStep.kt
similarity index 99%
rename from core/common/tutorial/src/main/java/com/buzbuz/smartautoclicker/core/common/tutorial/domain/model/data/step/TutorialStep.kt
rename to core/common/tutorial/src/main/java/com/buzbuz/smartautoclicker/core/common/tutorial/domain/model/tutorial/step/TutorialStep.kt
index cc21ac890..9d69dee0c 100644
--- a/core/common/tutorial/src/main/java/com/buzbuz/smartautoclicker/core/common/tutorial/domain/model/data/step/TutorialStep.kt
+++ b/core/common/tutorial/src/main/java/com/buzbuz/smartautoclicker/core/common/tutorial/domain/model/tutorial/step/TutorialStep.kt
@@ -14,7 +14,7 @@
* You should have received a copy of the GNU General Public License
* along with this program. If not, see .
*/
-package com.buzbuz.smartautoclicker.core.common.tutorial.domain.model.data.step
+package com.buzbuz.smartautoclicker.core.common.tutorial.domain.model.tutorial.step
import androidx.annotation.StringRes
diff --git a/core/common/tutorial/src/main/java/com/buzbuz/smartautoclicker/core/common/tutorial/domain/model/data/step/TutorialStepEndCondition.kt b/core/common/tutorial/src/main/java/com/buzbuz/smartautoclicker/core/common/tutorial/domain/model/tutorial/step/TutorialStepEndCondition.kt
similarity index 98%
rename from core/common/tutorial/src/main/java/com/buzbuz/smartautoclicker/core/common/tutorial/domain/model/data/step/TutorialStepEndCondition.kt
rename to core/common/tutorial/src/main/java/com/buzbuz/smartautoclicker/core/common/tutorial/domain/model/tutorial/step/TutorialStepEndCondition.kt
index b97744c9f..11ab18162 100644
--- a/core/common/tutorial/src/main/java/com/buzbuz/smartautoclicker/core/common/tutorial/domain/model/data/step/TutorialStepEndCondition.kt
+++ b/core/common/tutorial/src/main/java/com/buzbuz/smartautoclicker/core/common/tutorial/domain/model/tutorial/step/TutorialStepEndCondition.kt
@@ -14,7 +14,7 @@
* You should have received a copy of the GNU General Public License
* along with this program. If not, see .
*/
-package com.buzbuz.smartautoclicker.core.common.tutorial.domain.model.data.step
+package com.buzbuz.smartautoclicker.core.common.tutorial.domain.model.tutorial.step
import com.buzbuz.smartautoclicker.core.common.tutorial.domain.model.monitoring.MonitoredViewType
diff --git a/core/common/tutorial/src/main/java/com/buzbuz/smartautoclicker/core/common/tutorial/domain/model/data/step/TutorialStepImage.kt b/core/common/tutorial/src/main/java/com/buzbuz/smartautoclicker/core/common/tutorial/domain/model/tutorial/step/TutorialStepImage.kt
similarity index 98%
rename from core/common/tutorial/src/main/java/com/buzbuz/smartautoclicker/core/common/tutorial/domain/model/data/step/TutorialStepImage.kt
rename to core/common/tutorial/src/main/java/com/buzbuz/smartautoclicker/core/common/tutorial/domain/model/tutorial/step/TutorialStepImage.kt
index eb6c4454f..3e97d7fa1 100644
--- a/core/common/tutorial/src/main/java/com/buzbuz/smartautoclicker/core/common/tutorial/domain/model/data/step/TutorialStepImage.kt
+++ b/core/common/tutorial/src/main/java/com/buzbuz/smartautoclicker/core/common/tutorial/domain/model/tutorial/step/TutorialStepImage.kt
@@ -14,7 +14,7 @@
* You should have received a copy of the GNU General Public License
* along with this program. If not, see .
*/
-package com.buzbuz.smartautoclicker.core.common.tutorial.domain.model.data.step
+package com.buzbuz.smartautoclicker.core.common.tutorial.domain.model.tutorial.step
import androidx.annotation.DrawableRes
import androidx.annotation.StringRes
diff --git a/core/common/tutorial/src/main/java/com/buzbuz/smartautoclicker/core/common/tutorial/domain/model/data/step/TutorialStepStartCondition.kt b/core/common/tutorial/src/main/java/com/buzbuz/smartautoclicker/core/common/tutorial/domain/model/tutorial/step/TutorialStepStartCondition.kt
similarity index 99%
rename from core/common/tutorial/src/main/java/com/buzbuz/smartautoclicker/core/common/tutorial/domain/model/data/step/TutorialStepStartCondition.kt
rename to core/common/tutorial/src/main/java/com/buzbuz/smartautoclicker/core/common/tutorial/domain/model/tutorial/step/TutorialStepStartCondition.kt
index 09f76bcdc..e8a665209 100644
--- a/core/common/tutorial/src/main/java/com/buzbuz/smartautoclicker/core/common/tutorial/domain/model/data/step/TutorialStepStartCondition.kt
+++ b/core/common/tutorial/src/main/java/com/buzbuz/smartautoclicker/core/common/tutorial/domain/model/tutorial/step/TutorialStepStartCondition.kt
@@ -14,7 +14,7 @@
* You should have received a copy of the GNU General Public License
* along with this program. If not, see .
*/
-package com.buzbuz.smartautoclicker.core.common.tutorial.domain.model.data.step
+package com.buzbuz.smartautoclicker.core.common.tutorial.domain.model.tutorial.step
import com.buzbuz.smartautoclicker.core.common.tutorial.domain.model.monitoring.MonitoredOverlayType
import com.buzbuz.smartautoclicker.core.common.tutorial.domain.model.monitoring.MonitoredViewType
diff --git a/core/common/tutorial/src/main/java/com/buzbuz/smartautoclicker/core/common/tutorial/domain/model/data/subject/TutorialSubject.kt b/core/common/tutorial/src/main/java/com/buzbuz/smartautoclicker/core/common/tutorial/domain/model/tutorial/subject/TutorialSubject.kt
similarity index 96%
rename from core/common/tutorial/src/main/java/com/buzbuz/smartautoclicker/core/common/tutorial/domain/model/data/subject/TutorialSubject.kt
rename to core/common/tutorial/src/main/java/com/buzbuz/smartautoclicker/core/common/tutorial/domain/model/tutorial/subject/TutorialSubject.kt
index 758cf7e79..2aabbc761 100644
--- a/core/common/tutorial/src/main/java/com/buzbuz/smartautoclicker/core/common/tutorial/domain/model/data/subject/TutorialSubject.kt
+++ b/core/common/tutorial/src/main/java/com/buzbuz/smartautoclicker/core/common/tutorial/domain/model/tutorial/subject/TutorialSubject.kt
@@ -14,10 +14,10 @@
* You should have received a copy of the GNU General Public License
* along with this program. If not, see .
*/
-package com.buzbuz.smartautoclicker.core.common.tutorial.domain.model.data.subject
+package com.buzbuz.smartautoclicker.core.common.tutorial.domain.model.tutorial.subject
import androidx.annotation.StringRes
-import com.buzbuz.smartautoclicker.core.common.tutorial.domain.model.data.subject.quickclickgame.QuickClickGameRules
+import com.buzbuz.smartautoclicker.core.common.tutorial.domain.model.tutorial.subject.quickclickgame.QuickClickGameRules
/**
* Describes the interactive subject that runs alongside a tutorial's step sequence.
diff --git a/core/common/tutorial/src/main/java/com/buzbuz/smartautoclicker/core/common/tutorial/domain/model/data/subject/quickclickgame/QuickClickGameRules.kt b/core/common/tutorial/src/main/java/com/buzbuz/smartautoclicker/core/common/tutorial/domain/model/tutorial/subject/quickclickgame/QuickClickGameRules.kt
similarity index 98%
rename from core/common/tutorial/src/main/java/com/buzbuz/smartautoclicker/core/common/tutorial/domain/model/data/subject/quickclickgame/QuickClickGameRules.kt
rename to core/common/tutorial/src/main/java/com/buzbuz/smartautoclicker/core/common/tutorial/domain/model/tutorial/subject/quickclickgame/QuickClickGameRules.kt
index cbaeec763..543cc4e67 100644
--- a/core/common/tutorial/src/main/java/com/buzbuz/smartautoclicker/core/common/tutorial/domain/model/data/subject/quickclickgame/QuickClickGameRules.kt
+++ b/core/common/tutorial/src/main/java/com/buzbuz/smartautoclicker/core/common/tutorial/domain/model/tutorial/subject/quickclickgame/QuickClickGameRules.kt
@@ -14,7 +14,7 @@
* You should have received a copy of the GNU General Public License
* along with this program. If not, see .
*/
-package com.buzbuz.smartautoclicker.core.common.tutorial.domain.model.data.subject.quickclickgame
+package com.buzbuz.smartautoclicker.core.common.tutorial.domain.model.tutorial.subject.quickclickgame
import android.graphics.PointF
diff --git a/core/common/tutorial/src/main/java/com/buzbuz/smartautoclicker/core/common/tutorial/domain/model/data/subject/quickclickgame/QuickClickGameTargetState.kt b/core/common/tutorial/src/main/java/com/buzbuz/smartautoclicker/core/common/tutorial/domain/model/tutorial/subject/quickclickgame/QuickClickGameTargetState.kt
similarity index 96%
rename from core/common/tutorial/src/main/java/com/buzbuz/smartautoclicker/core/common/tutorial/domain/model/data/subject/quickclickgame/QuickClickGameTargetState.kt
rename to core/common/tutorial/src/main/java/com/buzbuz/smartautoclicker/core/common/tutorial/domain/model/tutorial/subject/quickclickgame/QuickClickGameTargetState.kt
index 7cc99764a..629116dee 100644
--- a/core/common/tutorial/src/main/java/com/buzbuz/smartautoclicker/core/common/tutorial/domain/model/data/subject/quickclickgame/QuickClickGameTargetState.kt
+++ b/core/common/tutorial/src/main/java/com/buzbuz/smartautoclicker/core/common/tutorial/domain/model/tutorial/subject/quickclickgame/QuickClickGameTargetState.kt
@@ -14,7 +14,7 @@
* You should have received a copy of the GNU General Public License
* along with this program. If not, see .
*/
-package com.buzbuz.smartautoclicker.core.common.tutorial.domain.model.data.subject.quickclickgame
+package com.buzbuz.smartautoclicker.core.common.tutorial.domain.model.tutorial.subject.quickclickgame
import android.graphics.PointF
diff --git a/core/common/tutorial/src/main/java/com/buzbuz/smartautoclicker/core/common/tutorial/domain/model/data/subject/quickclickgame/QuickClickGameTargetType.kt b/core/common/tutorial/src/main/java/com/buzbuz/smartautoclicker/core/common/tutorial/domain/model/tutorial/subject/quickclickgame/QuickClickGameTargetType.kt
similarity index 97%
rename from core/common/tutorial/src/main/java/com/buzbuz/smartautoclicker/core/common/tutorial/domain/model/data/subject/quickclickgame/QuickClickGameTargetType.kt
rename to core/common/tutorial/src/main/java/com/buzbuz/smartautoclicker/core/common/tutorial/domain/model/tutorial/subject/quickclickgame/QuickClickGameTargetType.kt
index fed91cd58..aaaafba35 100644
--- a/core/common/tutorial/src/main/java/com/buzbuz/smartautoclicker/core/common/tutorial/domain/model/data/subject/quickclickgame/QuickClickGameTargetType.kt
+++ b/core/common/tutorial/src/main/java/com/buzbuz/smartautoclicker/core/common/tutorial/domain/model/tutorial/subject/quickclickgame/QuickClickGameTargetType.kt
@@ -14,7 +14,7 @@
* You should have received a copy of the GNU General Public License
* along with this program. If not, see .
*/
-package com.buzbuz.smartautoclicker.core.common.tutorial.domain.model.data.subject.quickclickgame
+package com.buzbuz.smartautoclicker.core.common.tutorial.domain.model.tutorial.subject.quickclickgame
/**
* Distinguishes the target types that can appear in a [TutorialSubject.Game].
diff --git a/core/common/tutorial/src/main/java/com/buzbuz/smartautoclicker/core/common/tutorial/impl/TutorialRepositoryImpl.kt b/core/common/tutorial/src/main/java/com/buzbuz/smartautoclicker/core/common/tutorial/impl/TutorialRepositoryImpl.kt
index 9835f27ef..b1ab6961a 100644
--- a/core/common/tutorial/src/main/java/com/buzbuz/smartautoclicker/core/common/tutorial/impl/TutorialRepositoryImpl.kt
+++ b/core/common/tutorial/src/main/java/com/buzbuz/smartautoclicker/core/common/tutorial/impl/TutorialRepositoryImpl.kt
@@ -29,8 +29,8 @@ import com.buzbuz.smartautoclicker.core.domain.IRepository
import com.buzbuz.smartautoclicker.core.domain.model.scenario.Scenario
import com.buzbuz.smartautoclicker.core.common.tutorial.domain.TutorialRepository
import com.buzbuz.smartautoclicker.core.common.tutorial.domain.TutorialSubjectController
-import com.buzbuz.smartautoclicker.core.common.tutorial.domain.model.data.Tutorial
-import com.buzbuz.smartautoclicker.core.common.tutorial.domain.model.data.Tip
+import com.buzbuz.smartautoclicker.core.common.tutorial.domain.model.tutorial.Tutorial
+import com.buzbuz.smartautoclicker.core.common.tutorial.domain.model.Tip
import com.buzbuz.smartautoclicker.core.common.tutorial.domain.model.state.TutorialState
import com.buzbuz.smartautoclicker.core.common.tutorial.impl.data.TipsStateDataSource
import com.buzbuz.smartautoclicker.core.common.tutorial.impl.data.TutorialCompletionStateDataSource
diff --git a/core/common/tutorial/src/main/java/com/buzbuz/smartautoclicker/core/common/tutorial/impl/data/TipsStateDataSource.kt b/core/common/tutorial/src/main/java/com/buzbuz/smartautoclicker/core/common/tutorial/impl/data/TipsStateDataSource.kt
index 6ce60fc70..b201a4412 100644
--- a/core/common/tutorial/src/main/java/com/buzbuz/smartautoclicker/core/common/tutorial/impl/data/TipsStateDataSource.kt
+++ b/core/common/tutorial/src/main/java/com/buzbuz/smartautoclicker/core/common/tutorial/impl/data/TipsStateDataSource.kt
@@ -25,7 +25,7 @@ import androidx.datastore.preferences.core.booleanPreferencesKey
import com.buzbuz.smartautoclicker.core.base.PreferencesDataStore
import com.buzbuz.smartautoclicker.core.base.di.Dispatcher
import com.buzbuz.smartautoclicker.core.base.di.HiltCoroutineDispatchers.IO
-import com.buzbuz.smartautoclicker.core.common.tutorial.domain.model.data.Tip
+import com.buzbuz.smartautoclicker.core.common.tutorial.domain.model.Tip
import dagger.hilt.android.qualifiers.ApplicationContext
import kotlinx.coroutines.CoroutineDispatcher
diff --git a/core/common/tutorial/src/main/java/com/buzbuz/smartautoclicker/core/common/tutorial/impl/data/TutorialCompletionStateDataSource.kt b/core/common/tutorial/src/main/java/com/buzbuz/smartautoclicker/core/common/tutorial/impl/data/TutorialCompletionStateDataSource.kt
index 777133ad3..a386e6612 100644
--- a/core/common/tutorial/src/main/java/com/buzbuz/smartautoclicker/core/common/tutorial/impl/data/TutorialCompletionStateDataSource.kt
+++ b/core/common/tutorial/src/main/java/com/buzbuz/smartautoclicker/core/common/tutorial/impl/data/TutorialCompletionStateDataSource.kt
@@ -23,7 +23,7 @@ import androidx.datastore.preferences.core.booleanPreferencesKey
import com.buzbuz.smartautoclicker.core.base.PreferencesDataStore
import com.buzbuz.smartautoclicker.core.base.di.Dispatcher
import com.buzbuz.smartautoclicker.core.base.di.HiltCoroutineDispatchers.IO
-import com.buzbuz.smartautoclicker.core.common.tutorial.domain.model.data.Tutorial
+import com.buzbuz.smartautoclicker.core.common.tutorial.domain.model.tutorial.Tutorial
import dagger.hilt.android.qualifiers.ApplicationContext
import kotlinx.coroutines.CoroutineDispatcher
diff --git a/core/common/tutorial/src/main/java/com/buzbuz/smartautoclicker/core/common/tutorial/impl/engine/TutorialEngine.kt b/core/common/tutorial/src/main/java/com/buzbuz/smartautoclicker/core/common/tutorial/impl/engine/TutorialEngine.kt
index cc91b6688..c17df7416 100644
--- a/core/common/tutorial/src/main/java/com/buzbuz/smartautoclicker/core/common/tutorial/impl/engine/TutorialEngine.kt
+++ b/core/common/tutorial/src/main/java/com/buzbuz/smartautoclicker/core/common/tutorial/impl/engine/TutorialEngine.kt
@@ -21,11 +21,11 @@ import android.util.Log
import com.buzbuz.smartautoclicker.core.base.di.Dispatcher
import com.buzbuz.smartautoclicker.core.base.di.HiltCoroutineDispatchers.IO
import com.buzbuz.smartautoclicker.core.common.tutorial.domain.TutorialSubjectController
-import com.buzbuz.smartautoclicker.core.common.tutorial.domain.model.data.Tutorial
-import com.buzbuz.smartautoclicker.core.common.tutorial.domain.model.data.step.TutorialStep
-import com.buzbuz.smartautoclicker.core.common.tutorial.domain.model.data.step.TutorialStepEndCondition
-import com.buzbuz.smartautoclicker.core.common.tutorial.domain.model.data.step.TutorialStepStartCondition
-import com.buzbuz.smartautoclicker.core.common.tutorial.domain.model.data.subject.TutorialSubject
+import com.buzbuz.smartautoclicker.core.common.tutorial.domain.model.tutorial.Tutorial
+import com.buzbuz.smartautoclicker.core.common.tutorial.domain.model.tutorial.step.TutorialStep
+import com.buzbuz.smartautoclicker.core.common.tutorial.domain.model.tutorial.step.TutorialStepEndCondition
+import com.buzbuz.smartautoclicker.core.common.tutorial.domain.model.tutorial.step.TutorialStepStartCondition
+import com.buzbuz.smartautoclicker.core.common.tutorial.domain.model.tutorial.subject.TutorialSubject
import com.buzbuz.smartautoclicker.core.common.tutorial.domain.model.state.TutorialState
import com.buzbuz.smartautoclicker.core.common.tutorial.impl.data.TutorialCompletionStateDataSource
import com.buzbuz.smartautoclicker.core.common.tutorial.impl.engine.step.TutorialStepEndConditionMonitor
diff --git a/core/common/tutorial/src/main/java/com/buzbuz/smartautoclicker/core/common/tutorial/impl/engine/step/TutorialStepEndConditionMonitor.kt b/core/common/tutorial/src/main/java/com/buzbuz/smartautoclicker/core/common/tutorial/impl/engine/step/TutorialStepEndConditionMonitor.kt
index 845bb10b8..fc87fd68d 100644
--- a/core/common/tutorial/src/main/java/com/buzbuz/smartautoclicker/core/common/tutorial/impl/engine/step/TutorialStepEndConditionMonitor.kt
+++ b/core/common/tutorial/src/main/java/com/buzbuz/smartautoclicker/core/common/tutorial/impl/engine/step/TutorialStepEndConditionMonitor.kt
@@ -19,7 +19,7 @@ package com.buzbuz.smartautoclicker.core.common.tutorial.impl.engine.step
import com.buzbuz.smartautoclicker.core.base.di.Dispatcher
import com.buzbuz.smartautoclicker.core.base.di.HiltCoroutineDispatchers.IO
import com.buzbuz.smartautoclicker.core.common.overlays.manager.OverlayManager
-import com.buzbuz.smartautoclicker.core.common.tutorial.domain.model.data.step.TutorialStepEndCondition
+import com.buzbuz.smartautoclicker.core.common.tutorial.domain.model.tutorial.step.TutorialStepEndCondition
import com.buzbuz.smartautoclicker.core.common.tutorial.impl.monitoring.MonitoredViewsManagerImpl
import kotlinx.coroutines.CoroutineDispatcher
diff --git a/core/common/tutorial/src/main/java/com/buzbuz/smartautoclicker/core/common/tutorial/impl/engine/step/TutorialStepStartConditionMonitor.kt b/core/common/tutorial/src/main/java/com/buzbuz/smartautoclicker/core/common/tutorial/impl/engine/step/TutorialStepStartConditionMonitor.kt
index 61742c536..6884c5299 100644
--- a/core/common/tutorial/src/main/java/com/buzbuz/smartautoclicker/core/common/tutorial/impl/engine/step/TutorialStepStartConditionMonitor.kt
+++ b/core/common/tutorial/src/main/java/com/buzbuz/smartautoclicker/core/common/tutorial/impl/engine/step/TutorialStepStartConditionMonitor.kt
@@ -20,7 +20,7 @@ import com.buzbuz.smartautoclicker.core.base.di.Dispatcher
import com.buzbuz.smartautoclicker.core.base.di.HiltCoroutineDispatchers.IO
import com.buzbuz.smartautoclicker.core.common.overlays.manager.OverlayManager
import com.buzbuz.smartautoclicker.core.common.tutorial.domain.TutorialSubjectController
-import com.buzbuz.smartautoclicker.core.common.tutorial.domain.model.data.step.TutorialStepStartCondition
+import com.buzbuz.smartautoclicker.core.common.tutorial.domain.model.tutorial.step.TutorialStepStartCondition
import com.buzbuz.smartautoclicker.core.common.tutorial.impl.engine.subject.QuickClickGameEngine
import com.buzbuz.smartautoclicker.core.common.tutorial.impl.monitoring.MonitoredViewsManagerImpl
diff --git a/core/common/tutorial/src/main/java/com/buzbuz/smartautoclicker/core/common/tutorial/impl/engine/step/TutorialStepsOrchestrator.kt b/core/common/tutorial/src/main/java/com/buzbuz/smartautoclicker/core/common/tutorial/impl/engine/step/TutorialStepsOrchestrator.kt
index da300fb97..b8c25dcf1 100644
--- a/core/common/tutorial/src/main/java/com/buzbuz/smartautoclicker/core/common/tutorial/impl/engine/step/TutorialStepsOrchestrator.kt
+++ b/core/common/tutorial/src/main/java/com/buzbuz/smartautoclicker/core/common/tutorial/impl/engine/step/TutorialStepsOrchestrator.kt
@@ -18,7 +18,7 @@ package com.buzbuz.smartautoclicker.core.common.tutorial.impl.engine.step
import android.util.Log
-import com.buzbuz.smartautoclicker.core.common.tutorial.domain.model.data.step.TutorialStep
+import com.buzbuz.smartautoclicker.core.common.tutorial.domain.model.tutorial.step.TutorialStep
import kotlinx.coroutines.flow.MutableStateFlow
import kotlinx.coroutines.flow.update
diff --git a/core/common/tutorial/src/main/java/com/buzbuz/smartautoclicker/core/common/tutorial/impl/engine/subject/QuickClickGameEngine.kt b/core/common/tutorial/src/main/java/com/buzbuz/smartautoclicker/core/common/tutorial/impl/engine/subject/QuickClickGameEngine.kt
index 7be912382..99d9d8a56 100644
--- a/core/common/tutorial/src/main/java/com/buzbuz/smartautoclicker/core/common/tutorial/impl/engine/subject/QuickClickGameEngine.kt
+++ b/core/common/tutorial/src/main/java/com/buzbuz/smartautoclicker/core/common/tutorial/impl/engine/subject/QuickClickGameEngine.kt
@@ -21,8 +21,8 @@ import android.util.Log
import com.buzbuz.smartautoclicker.core.base.di.Dispatcher
import com.buzbuz.smartautoclicker.core.base.di.HiltCoroutineDispatchers.IO
import com.buzbuz.smartautoclicker.core.common.tutorial.domain.TutorialSubjectController
-import com.buzbuz.smartautoclicker.core.common.tutorial.domain.model.data.subject.TutorialSubject
-import com.buzbuz.smartautoclicker.core.common.tutorial.domain.model.data.subject.quickclickgame.QuickClickGameTargetType
+import com.buzbuz.smartautoclicker.core.common.tutorial.domain.model.tutorial.subject.TutorialSubject
+import com.buzbuz.smartautoclicker.core.common.tutorial.domain.model.tutorial.subject.quickclickgame.QuickClickGameTargetType
import com.buzbuz.smartautoclicker.core.common.tutorial.domain.model.state.TutorialSubjectState
import kotlinx.coroutines.CoroutineDispatcher
diff --git a/core/common/tutorial/src/main/java/com/buzbuz/smartautoclicker/core/common/tutorial/impl/engine/subject/TimingGameEngine.kt b/core/common/tutorial/src/main/java/com/buzbuz/smartautoclicker/core/common/tutorial/impl/engine/subject/TimingGameEngine.kt
index 69f743813..74e82842b 100644
--- a/core/common/tutorial/src/main/java/com/buzbuz/smartautoclicker/core/common/tutorial/impl/engine/subject/TimingGameEngine.kt
+++ b/core/common/tutorial/src/main/java/com/buzbuz/smartautoclicker/core/common/tutorial/impl/engine/subject/TimingGameEngine.kt
@@ -18,7 +18,7 @@ package com.buzbuz.smartautoclicker.core.common.tutorial.impl.engine.subject
import android.util.Log
import com.buzbuz.smartautoclicker.core.common.tutorial.domain.TutorialSubjectController
-import com.buzbuz.smartautoclicker.core.common.tutorial.domain.model.data.subject.TutorialSubject
+import com.buzbuz.smartautoclicker.core.common.tutorial.domain.model.tutorial.subject.TutorialSubject
import com.buzbuz.smartautoclicker.core.common.tutorial.domain.model.state.TutorialSubjectState
import kotlinx.coroutines.flow.MutableStateFlow
import kotlinx.coroutines.flow.StateFlow
diff --git a/core/common/tutorial/src/test/java/com/buzbuz/smartautoclicker/core/common/tutorial/impl/data/TipsStateDataSourceTest.kt b/core/common/tutorial/src/test/java/com/buzbuz/smartautoclicker/core/common/tutorial/impl/data/TipsStateDataSourceTest.kt
index 6f78689c9..aac5fecc8 100644
--- a/core/common/tutorial/src/test/java/com/buzbuz/smartautoclicker/core/common/tutorial/impl/data/TipsStateDataSourceTest.kt
+++ b/core/common/tutorial/src/test/java/com/buzbuz/smartautoclicker/core/common/tutorial/impl/data/TipsStateDataSourceTest.kt
@@ -22,7 +22,7 @@ import android.os.Build
import androidx.test.core.app.ApplicationProvider
import com.buzbuz.smartautoclicker.core.base.PreferencesDataStore
-import com.buzbuz.smartautoclicker.core.common.tutorial.domain.model.data.Tip
+import com.buzbuz.smartautoclicker.core.common.tutorial.domain.model.Tip
import kotlinx.coroutines.ExperimentalCoroutinesApi
import kotlinx.coroutines.flow.first
diff --git a/core/common/tutorial/src/test/java/com/buzbuz/smartautoclicker/core/common/tutorial/impl/data/TutorialCompletionStateDataSourceTest.kt b/core/common/tutorial/src/test/java/com/buzbuz/smartautoclicker/core/common/tutorial/impl/data/TutorialCompletionStateDataSourceTest.kt
index 1829b95e9..8ca723484 100644
--- a/core/common/tutorial/src/test/java/com/buzbuz/smartautoclicker/core/common/tutorial/impl/data/TutorialCompletionStateDataSourceTest.kt
+++ b/core/common/tutorial/src/test/java/com/buzbuz/smartautoclicker/core/common/tutorial/impl/data/TutorialCompletionStateDataSourceTest.kt
@@ -22,9 +22,9 @@ import android.os.Build
import androidx.test.core.app.ApplicationProvider
import com.buzbuz.smartautoclicker.core.base.PreferencesDataStore
-import com.buzbuz.smartautoclicker.core.common.tutorial.domain.model.data.Tutorial
-import com.buzbuz.smartautoclicker.core.common.tutorial.domain.model.data.TutorialInfo
-import com.buzbuz.smartautoclicker.core.common.tutorial.domain.model.data.subject.TutorialSubject
+import com.buzbuz.smartautoclicker.core.common.tutorial.domain.model.tutorial.Tutorial
+import com.buzbuz.smartautoclicker.core.common.tutorial.domain.model.tutorial.TutorialInfo
+import com.buzbuz.smartautoclicker.core.common.tutorial.domain.model.tutorial.subject.TutorialSubject
import kotlinx.coroutines.ExperimentalCoroutinesApi
import kotlinx.coroutines.flow.first
@@ -49,7 +49,7 @@ import java.util.UUID
@Config(sdk = [Build.VERSION_CODES.Q])
class TutorialCompletionStateDataSourceTest {
- @Mock private lateinit var mockGameRules: com.buzbuz.smartautoclicker.core.common.tutorial.domain.model.data.subject.quickclickgame.QuickClickGameRules
+ @Mock private lateinit var mockGameRules: com.buzbuz.smartautoclicker.core.common.tutorial.domain.model.tutorial.subject.quickclickgame.QuickClickGameRules
private val context: Context = ApplicationProvider.getApplicationContext()
private val testDispatcher = UnconfinedTestDispatcher()
diff --git a/core/common/tutorial/src/test/java/com/buzbuz/smartautoclicker/core/common/tutorial/impl/engine/TutorialEngineTest.kt b/core/common/tutorial/src/test/java/com/buzbuz/smartautoclicker/core/common/tutorial/impl/engine/TutorialEngineTest.kt
index 445885eba..e1bb963ca 100644
--- a/core/common/tutorial/src/test/java/com/buzbuz/smartautoclicker/core/common/tutorial/impl/engine/TutorialEngineTest.kt
+++ b/core/common/tutorial/src/test/java/com/buzbuz/smartautoclicker/core/common/tutorial/impl/engine/TutorialEngineTest.kt
@@ -20,13 +20,13 @@ import android.os.Build
import com.buzbuz.smartautoclicker.core.common.overlays.base.Overlay
import com.buzbuz.smartautoclicker.core.common.overlays.manager.OverlayManager
-import com.buzbuz.smartautoclicker.core.common.tutorial.domain.model.data.Tutorial
-import com.buzbuz.smartautoclicker.core.common.tutorial.domain.model.data.TutorialInfo
-import com.buzbuz.smartautoclicker.core.common.tutorial.domain.model.data.step.TutorialStep
-import com.buzbuz.smartautoclicker.core.common.tutorial.domain.model.data.step.TutorialStepEndCondition
-import com.buzbuz.smartautoclicker.core.common.tutorial.domain.model.data.step.TutorialStepStartCondition
-import com.buzbuz.smartautoclicker.core.common.tutorial.domain.model.data.subject.TutorialSubject
-import com.buzbuz.smartautoclicker.core.common.tutorial.domain.model.data.subject.quickclickgame.QuickClickGameRules
+import com.buzbuz.smartautoclicker.core.common.tutorial.domain.model.tutorial.Tutorial
+import com.buzbuz.smartautoclicker.core.common.tutorial.domain.model.tutorial.TutorialInfo
+import com.buzbuz.smartautoclicker.core.common.tutorial.domain.model.tutorial.step.TutorialStep
+import com.buzbuz.smartautoclicker.core.common.tutorial.domain.model.tutorial.step.TutorialStepEndCondition
+import com.buzbuz.smartautoclicker.core.common.tutorial.domain.model.tutorial.step.TutorialStepStartCondition
+import com.buzbuz.smartautoclicker.core.common.tutorial.domain.model.tutorial.subject.TutorialSubject
+import com.buzbuz.smartautoclicker.core.common.tutorial.domain.model.tutorial.subject.quickclickgame.QuickClickGameRules
import com.buzbuz.smartautoclicker.core.common.tutorial.domain.model.state.TutorialState
import com.buzbuz.smartautoclicker.core.common.tutorial.impl.data.TutorialCompletionStateDataSource
import com.buzbuz.smartautoclicker.core.common.tutorial.domain.model.monitoring.MonitoredOverlayType
diff --git a/core/common/tutorial/src/test/java/com/buzbuz/smartautoclicker/core/common/tutorial/impl/engine/TutorialStepsOrchestratorTest.kt b/core/common/tutorial/src/test/java/com/buzbuz/smartautoclicker/core/common/tutorial/impl/engine/TutorialStepsOrchestratorTest.kt
index efdedb109..a8e409c74 100644
--- a/core/common/tutorial/src/test/java/com/buzbuz/smartautoclicker/core/common/tutorial/impl/engine/TutorialStepsOrchestratorTest.kt
+++ b/core/common/tutorial/src/test/java/com/buzbuz/smartautoclicker/core/common/tutorial/impl/engine/TutorialStepsOrchestratorTest.kt
@@ -18,9 +18,9 @@ package com.buzbuz.smartautoclicker.core.common.tutorial.impl.engine
import android.os.Build
-import com.buzbuz.smartautoclicker.core.common.tutorial.domain.model.data.step.TutorialStep
-import com.buzbuz.smartautoclicker.core.common.tutorial.domain.model.data.step.TutorialStepEndCondition
-import com.buzbuz.smartautoclicker.core.common.tutorial.domain.model.data.step.TutorialStepStartCondition
+import com.buzbuz.smartautoclicker.core.common.tutorial.domain.model.tutorial.step.TutorialStep
+import com.buzbuz.smartautoclicker.core.common.tutorial.domain.model.tutorial.step.TutorialStepEndCondition
+import com.buzbuz.smartautoclicker.core.common.tutorial.domain.model.tutorial.step.TutorialStepStartCondition
import com.buzbuz.smartautoclicker.core.common.tutorial.impl.engine.step.TutorialStepsOrchestrator
import org.junit.Assert.assertEquals
diff --git a/core/common/tutorial/src/test/java/com/buzbuz/smartautoclicker/core/common/tutorial/impl/engine/step/TutorialStepStartConditionMonitorTest.kt b/core/common/tutorial/src/test/java/com/buzbuz/smartautoclicker/core/common/tutorial/impl/engine/step/TutorialStepStartConditionMonitorTest.kt
index 159b37020..f15ee8d9c 100644
--- a/core/common/tutorial/src/test/java/com/buzbuz/smartautoclicker/core/common/tutorial/impl/engine/step/TutorialStepStartConditionMonitorTest.kt
+++ b/core/common/tutorial/src/test/java/com/buzbuz/smartautoclicker/core/common/tutorial/impl/engine/step/TutorialStepStartConditionMonitorTest.kt
@@ -21,7 +21,7 @@ import android.os.Build
import com.buzbuz.smartautoclicker.core.common.overlays.base.Overlay
import com.buzbuz.smartautoclicker.core.common.overlays.manager.OverlayManager
import com.buzbuz.smartautoclicker.core.common.tutorial.domain.TutorialSubjectController
-import com.buzbuz.smartautoclicker.core.common.tutorial.domain.model.data.step.TutorialStepStartCondition
+import com.buzbuz.smartautoclicker.core.common.tutorial.domain.model.tutorial.step.TutorialStepStartCondition
import com.buzbuz.smartautoclicker.core.common.tutorial.domain.model.monitoring.MonitoredOverlayType
import com.buzbuz.smartautoclicker.core.common.tutorial.domain.model.monitoring.MonitoredViewType
import com.buzbuz.smartautoclicker.core.common.tutorial.impl.engine.subject.QuickClickGameEngine
@@ -45,7 +45,6 @@ import org.mockito.Mock
import org.mockito.MockitoAnnotations
import org.mockito.kotlin.any
import org.mockito.kotlin.argumentCaptor
-import org.mockito.kotlin.doAnswer
import org.mockito.kotlin.eq
import org.mockito.kotlin.verify as mockitoVerify
import org.mockito.kotlin.whenever
diff --git a/core/common/tutorial/src/test/java/com/buzbuz/smartautoclicker/core/common/tutorial/impl/engine/subject/QuickClickGameEngineTest.kt b/core/common/tutorial/src/test/java/com/buzbuz/smartautoclicker/core/common/tutorial/impl/engine/subject/QuickClickGameEngineTest.kt
index 4f365e80f..45b342c53 100644
--- a/core/common/tutorial/src/test/java/com/buzbuz/smartautoclicker/core/common/tutorial/impl/engine/subject/QuickClickGameEngineTest.kt
+++ b/core/common/tutorial/src/test/java/com/buzbuz/smartautoclicker/core/common/tutorial/impl/engine/subject/QuickClickGameEngineTest.kt
@@ -19,10 +19,10 @@ package com.buzbuz.smartautoclicker.core.common.tutorial.impl.engine.subject
import android.graphics.PointF
import android.os.Build
-import com.buzbuz.smartautoclicker.core.common.tutorial.domain.model.data.subject.TutorialSubject
-import com.buzbuz.smartautoclicker.core.common.tutorial.domain.model.data.subject.quickclickgame.QuickClickGameRules
-import com.buzbuz.smartautoclicker.core.common.tutorial.domain.model.data.subject.quickclickgame.QuickClickGameTargetState
-import com.buzbuz.smartautoclicker.core.common.tutorial.domain.model.data.subject.quickclickgame.QuickClickGameTargetType
+import com.buzbuz.smartautoclicker.core.common.tutorial.domain.model.tutorial.subject.TutorialSubject
+import com.buzbuz.smartautoclicker.core.common.tutorial.domain.model.tutorial.subject.quickclickgame.QuickClickGameRules
+import com.buzbuz.smartautoclicker.core.common.tutorial.domain.model.tutorial.subject.quickclickgame.QuickClickGameTargetState
+import com.buzbuz.smartautoclicker.core.common.tutorial.domain.model.tutorial.subject.quickclickgame.QuickClickGameTargetType
import kotlinx.coroutines.ExperimentalCoroutinesApi
import kotlinx.coroutines.test.StandardTestDispatcher
diff --git a/core/common/ui/src/main/res/drawable/ic_help.xml b/core/common/ui/src/main/res/drawable/ic_help.xml
new file mode 100644
index 000000000..b5c59d20c
--- /dev/null
+++ b/core/common/ui/src/main/res/drawable/ic_help.xml
@@ -0,0 +1,19 @@
+
+
+
+
+
+
+
+
diff --git a/feature/dumb-config/src/main/java/com/buzbuz/smartautoclicker/feature/dumb/config/ui/DumbMainMenu.kt b/feature/dumb-config/src/main/java/com/buzbuz/smartautoclicker/feature/dumb/config/ui/DumbMainMenu.kt
index 4c161b18e..96eb0d9dc 100644
--- a/feature/dumb-config/src/main/java/com/buzbuz/smartautoclicker/feature/dumb/config/ui/DumbMainMenu.kt
+++ b/feature/dumb-config/src/main/java/com/buzbuz/smartautoclicker/feature/dumb/config/ui/DumbMainMenu.kt
@@ -30,7 +30,7 @@ import com.buzbuz.smartautoclicker.core.common.navigation.TutorialNavigator
import com.buzbuz.smartautoclicker.core.common.navigation.getTutorialNavigator
import com.buzbuz.smartautoclicker.core.common.overlays.base.viewModels
import com.buzbuz.smartautoclicker.core.common.overlays.menu.OverlayMenu
-import com.buzbuz.smartautoclicker.core.common.tutorial.domain.model.data.Tip
+import com.buzbuz.smartautoclicker.core.common.tutorial.domain.model.Tip
import com.buzbuz.smartautoclicker.core.ui.utils.AnimatedStatesImageButtonController
import com.buzbuz.smartautoclicker.feature.dumb.config.R
import com.buzbuz.smartautoclicker.feature.dumb.config.databinding.OverlayDumbMainMenuBinding
diff --git a/feature/dumb-config/src/main/java/com/buzbuz/smartautoclicker/feature/dumb/config/ui/DumbMainMenuModel.kt b/feature/dumb-config/src/main/java/com/buzbuz/smartautoclicker/feature/dumb/config/ui/DumbMainMenuModel.kt
index 2876c420e..ffbebe84b 100644
--- a/feature/dumb-config/src/main/java/com/buzbuz/smartautoclicker/feature/dumb/config/ui/DumbMainMenuModel.kt
+++ b/feature/dumb-config/src/main/java/com/buzbuz/smartautoclicker/feature/dumb/config/ui/DumbMainMenuModel.kt
@@ -21,7 +21,7 @@ import androidx.lifecycle.viewModelScope
import com.buzbuz.smartautoclicker.core.base.identifier.Identifier
import com.buzbuz.smartautoclicker.core.common.tutorial.domain.TutorialRepository
-import com.buzbuz.smartautoclicker.core.common.tutorial.domain.model.data.Tip
+import com.buzbuz.smartautoclicker.core.common.tutorial.domain.model.Tip
import com.buzbuz.smartautoclicker.core.dumb.engine.DumbEngine
import com.buzbuz.smartautoclicker.feature.dumb.config.domain.DumbEditionRepository
diff --git a/feature/smart-config/src/main/java/com/buzbuz/smartautoclicker/feature/smart/config/ui/condition/screen/areaselector/ConditionAreaSelectorMenu.kt b/feature/smart-config/src/main/java/com/buzbuz/smartautoclicker/feature/smart/config/ui/condition/screen/areaselector/ConditionAreaSelectorMenu.kt
index 6a80df65a..d893b1b8f 100644
--- a/feature/smart-config/src/main/java/com/buzbuz/smartautoclicker/feature/smart/config/ui/condition/screen/areaselector/ConditionAreaSelectorMenu.kt
+++ b/feature/smart-config/src/main/java/com/buzbuz/smartautoclicker/feature/smart/config/ui/condition/screen/areaselector/ConditionAreaSelectorMenu.kt
@@ -36,6 +36,7 @@ import kotlinx.coroutines.launch
import com.buzbuz.smartautoclicker.core.common.tutorial.domain.model.monitoring.MonitoredOverlayType
class ConditionAreaSelectorMenu(
+ private val onHelpClicked: (() -> Unit)? = null,
private val onAreaSelected: (Rect) -> Unit
) : OverlayMenu() {
@@ -55,6 +56,11 @@ class ConditionAreaSelectorMenu(
override fun onCreateMenu(layoutInflater: LayoutInflater): ViewGroup {
selectorView = AreaSelectorView(context, displayConfigManager)
viewBinding = OverlayValidationMenuBinding.inflate(layoutInflater)
+
+ if (onHelpClicked == null) {
+ viewBinding.btnHelp.visibility = View.GONE
+ }
+
return viewBinding.root
}
@@ -76,6 +82,7 @@ class ConditionAreaSelectorMenu(
when (viewId) {
R.id.btn_confirm -> onConfirm()
R.id.btn_cancel -> onCancel()
+ R.id.btn_help -> onHelpClicked?.invoke()
}
}
diff --git a/feature/smart-config/src/main/java/com/buzbuz/smartautoclicker/feature/smart/config/ui/condition/screen/image/CaptureMenu.kt b/feature/smart-config/src/main/java/com/buzbuz/smartautoclicker/feature/smart/config/ui/condition/screen/image/CaptureMenu.kt
index fc93cb1f4..211b35f60 100644
--- a/feature/smart-config/src/main/java/com/buzbuz/smartautoclicker/feature/smart/config/ui/condition/screen/image/CaptureMenu.kt
+++ b/feature/smart-config/src/main/java/com/buzbuz/smartautoclicker/feature/smart/config/ui/condition/screen/image/CaptureMenu.kt
@@ -20,11 +20,14 @@ import android.util.Log
import android.view.LayoutInflater
import android.view.View
import android.view.ViewGroup
+import android.widget.Toast
import androidx.annotation.IntDef
+import com.buzbuz.smartautoclicker.core.common.navigation.getTutorialNavigator
import com.buzbuz.smartautoclicker.core.common.overlays.base.viewModels
import com.buzbuz.smartautoclicker.core.common.overlays.menu.OverlayMenu
+import com.buzbuz.smartautoclicker.core.common.tutorial.domain.model.Tip
import com.buzbuz.smartautoclicker.core.domain.model.condition.ScreenCondition
import com.buzbuz.smartautoclicker.core.ui.views.imageselector.ImageSelectorView
import com.buzbuz.smartautoclicker.feature.smart.config.R
@@ -83,6 +86,12 @@ class CaptureMenu(
SELECTION -> {
viewBinding.btnConfirm.setImageResource(R.drawable.ic_capture)
setMenuVisibility(View.VISIBLE)
+ setMenuItemsVisibility(
+ mapOf(
+ viewBinding.btnHelp to false,
+ viewBinding.btnHideOverlay to false,
+ )
+ )
setOverlayViewVisibility(false)
selectorView.hide = true
}
@@ -94,11 +103,19 @@ class CaptureMenu(
ADJUST -> {
viewBinding.btnConfirm.setImageResource(R.drawable.ic_confirm)
setMenuVisibility(View.VISIBLE)
+ setMenuItemsVisibility(
+ mapOf(
+ viewBinding.btnHelp to true,
+ viewBinding.btnHideOverlay to true,
+ )
+ )
selectorView.hide = false
}
SAVE -> {
setMenuItemViewEnabled(viewBinding.btnConfirm, false)
setMenuItemViewEnabled(viewBinding.btnCancel, false)
+ setMenuItemViewEnabled(viewBinding.btnHelp, false)
+ setMenuItemViewEnabled(viewBinding.btnHideOverlay, false)
selectorView.hide = false
}
}
@@ -123,6 +140,7 @@ class CaptureMenu(
when (viewId) {
R.id.btn_confirm -> onConfirm()
R.id.btn_cancel -> onCancel()
+ R.id.btn_help -> onHelp()
}
}
@@ -142,13 +160,7 @@ class CaptureMenu(
*/
private fun onConfirm() {
when (state) {
- SELECTION -> {
- state = CAPTURE
- viewModel.takeScreenshot { screenshot ->
- selectorView.showCapture(screenshot)
- state = ADJUST
- }
- }
+ SELECTION -> onTakeScreenshotClicked()
ADJUST -> {
state = SAVE
@@ -176,4 +188,25 @@ class CaptureMenu(
ADJUST -> state = SELECTION
}
}
+
+ private fun onHelp() {
+ context.getTutorialNavigator().showTipDialog(
+ context = context,
+ tip = Tip.IMAGE_CAPTURE,
+ )
+ }
+
+ private fun onTakeScreenshotClicked() {
+ state = CAPTURE
+ viewModel.takeScreenshot { screenshot ->
+ if (screenshot == null) {
+ Toast.makeText(context, R.string.toast_capture_failed, Toast.LENGTH_LONG).show()
+ state = SELECTION
+ return@takeScreenshot
+ }
+
+ selectorView.showCapture(screenshot)
+ state = ADJUST
+ }
+ }
}
diff --git a/feature/smart-config/src/main/java/com/buzbuz/smartautoclicker/feature/smart/config/ui/condition/screen/image/CaptureViewModel.kt b/feature/smart-config/src/main/java/com/buzbuz/smartautoclicker/feature/smart/config/ui/condition/screen/image/CaptureViewModel.kt
index 01fe79bcb..27d9266c5 100644
--- a/feature/smart-config/src/main/java/com/buzbuz/smartautoclicker/feature/smart/config/ui/condition/screen/image/CaptureViewModel.kt
+++ b/feature/smart-config/src/main/java/com/buzbuz/smartautoclicker/feature/smart/config/ui/condition/screen/image/CaptureViewModel.kt
@@ -34,6 +34,7 @@ import kotlinx.coroutines.delay
import kotlinx.coroutines.launch
import kotlinx.coroutines.withContext
import javax.inject.Inject
+import kotlin.time.Duration.Companion.milliseconds
class CaptureViewModel @Inject constructor(
private val displayRecorder: DisplayRecorder,
@@ -41,9 +42,9 @@ class CaptureViewModel @Inject constructor(
private val monitoredViewsManager: MonitoredViewsManager,
) : ViewModel() {
- fun takeScreenshot(resultCallback: (Bitmap) -> Unit) {
+ fun takeScreenshot(resultCallback: (Bitmap?) -> Unit) {
viewModelScope.launch(Dispatchers.IO) {
- delay(200L)
+ delay(200L.milliseconds)
val screenshot = displayRecorder.takeScreenshot() ?: return@launch
withContext(Dispatchers.Main) {
diff --git a/feature/smart-config/src/main/java/com/buzbuz/smartautoclicker/feature/smart/config/ui/condition/screen/image/ImageConditionDialog.kt b/feature/smart-config/src/main/java/com/buzbuz/smartautoclicker/feature/smart/config/ui/condition/screen/image/ImageConditionDialog.kt
index 64013422d..585266c17 100644
--- a/feature/smart-config/src/main/java/com/buzbuz/smartautoclicker/feature/smart/config/ui/condition/screen/image/ImageConditionDialog.kt
+++ b/feature/smart-config/src/main/java/com/buzbuz/smartautoclicker/feature/smart/config/ui/condition/screen/image/ImageConditionDialog.kt
@@ -28,9 +28,11 @@ import androidx.core.content.ContextCompat
import androidx.lifecycle.Lifecycle
import androidx.lifecycle.lifecycleScope
import androidx.lifecycle.repeatOnLifecycle
+import com.buzbuz.smartautoclicker.core.common.navigation.getTutorialNavigator
import com.buzbuz.smartautoclicker.core.common.overlays.base.viewModels
import com.buzbuz.smartautoclicker.core.common.overlays.dialog.OverlayDialog
+import com.buzbuz.smartautoclicker.core.common.tutorial.domain.model.Tip
import com.buzbuz.smartautoclicker.core.domain.model.EXACT
import com.buzbuz.smartautoclicker.core.domain.model.IN_AREA
import com.buzbuz.smartautoclicker.core.domain.model.WHOLE_SCREEN
@@ -267,6 +269,7 @@ class ImageConditionDialog(
overlayManager.navigateTo(
context = context,
newOverlay = ConditionAreaSelectorMenu(
+ onHelpClicked = { context.getTutorialNavigator().showTipDialog(context, Tip.IMAGE_DETECTION_AREA) },
onAreaSelected = viewModel::setDetectionArea,
),
hideCurrent = true,
diff --git a/feature/smart-config/src/main/java/com/buzbuz/smartautoclicker/feature/smart/config/ui/condition/screen/number/NumberConditionDialog.kt b/feature/smart-config/src/main/java/com/buzbuz/smartautoclicker/feature/smart/config/ui/condition/screen/number/NumberConditionDialog.kt
index f4f5f299a..92658a525 100644
--- a/feature/smart-config/src/main/java/com/buzbuz/smartautoclicker/feature/smart/config/ui/condition/screen/number/NumberConditionDialog.kt
+++ b/feature/smart-config/src/main/java/com/buzbuz/smartautoclicker/feature/smart/config/ui/condition/screen/number/NumberConditionDialog.kt
@@ -24,9 +24,11 @@ import android.view.ViewGroup
import androidx.lifecycle.Lifecycle
import androidx.lifecycle.lifecycleScope
import androidx.lifecycle.repeatOnLifecycle
+import com.buzbuz.smartautoclicker.core.common.navigation.getTutorialNavigator
import com.buzbuz.smartautoclicker.core.common.overlays.base.viewModels
import com.buzbuz.smartautoclicker.core.common.overlays.dialog.OverlayDialog
+import com.buzbuz.smartautoclicker.core.common.tutorial.domain.model.Tip
import com.buzbuz.smartautoclicker.core.domain.model.counter.CounterOperationValue
import com.buzbuz.smartautoclicker.core.ui.bindings.dialogs.DialogNavigationButton
import com.buzbuz.smartautoclicker.core.ui.bindings.dialogs.setButtonEnabledState
@@ -241,6 +243,7 @@ class NumberConditionDialog(
overlayManager.navigateTo(
context = context,
newOverlay = ConditionAreaSelectorMenu(
+ onHelpClicked = { context.getTutorialNavigator().showTipDialog(context, Tip.NUMBER_DETECTION_AREA) },
onAreaSelected = viewModel::setDetectionArea,
),
hideCurrent = true,
diff --git a/feature/smart-config/src/main/java/com/buzbuz/smartautoclicker/feature/smart/config/ui/condition/screen/text/TextConditionDialog.kt b/feature/smart-config/src/main/java/com/buzbuz/smartautoclicker/feature/smart/config/ui/condition/screen/text/TextConditionDialog.kt
index 8425b37a2..7c9d31d61 100644
--- a/feature/smart-config/src/main/java/com/buzbuz/smartautoclicker/feature/smart/config/ui/condition/screen/text/TextConditionDialog.kt
+++ b/feature/smart-config/src/main/java/com/buzbuz/smartautoclicker/feature/smart/config/ui/condition/screen/text/TextConditionDialog.kt
@@ -24,9 +24,11 @@ import android.view.ViewGroup
import androidx.lifecycle.Lifecycle
import androidx.lifecycle.lifecycleScope
import androidx.lifecycle.repeatOnLifecycle
+import com.buzbuz.smartautoclicker.core.common.navigation.getTutorialNavigator
import com.buzbuz.smartautoclicker.core.common.overlays.base.viewModels
import com.buzbuz.smartautoclicker.core.common.overlays.dialog.OverlayDialog
+import com.buzbuz.smartautoclicker.core.common.tutorial.domain.model.Tip
import com.buzbuz.smartautoclicker.core.ui.bindings.dialogs.DialogNavigationButton
import com.buzbuz.smartautoclicker.core.ui.bindings.dialogs.setButtonEnabledState
import com.buzbuz.smartautoclicker.core.ui.bindings.fields.setChecked
@@ -225,6 +227,7 @@ class TextConditionDialog(
overlayManager.navigateTo(
context = context,
newOverlay = ConditionAreaSelectorMenu(
+ onHelpClicked = { context.getTutorialNavigator().showTipDialog(context, Tip.TEXT_DETECTION_AREA) },
onAreaSelected = viewModel::setDetectionArea,
),
hideCurrent = true,
diff --git a/feature/smart-config/src/main/java/com/buzbuz/smartautoclicker/feature/smart/config/ui/mainmenu/MainMenu.kt b/feature/smart-config/src/main/java/com/buzbuz/smartautoclicker/feature/smart/config/ui/mainmenu/MainMenu.kt
index 4eebcf4e9..223114d1e 100644
--- a/feature/smart-config/src/main/java/com/buzbuz/smartautoclicker/feature/smart/config/ui/mainmenu/MainMenu.kt
+++ b/feature/smart-config/src/main/java/com/buzbuz/smartautoclicker/feature/smart/config/ui/mainmenu/MainMenu.kt
@@ -35,7 +35,7 @@ import com.buzbuz.smartautoclicker.core.common.navigation.getTutorialNavigator
import com.buzbuz.smartautoclicker.core.common.overlays.base.viewModels
import com.buzbuz.smartautoclicker.core.common.overlays.manager.OverlayManager.Companion.showAsOverlay
import com.buzbuz.smartautoclicker.core.common.overlays.menu.OverlayMenu
-import com.buzbuz.smartautoclicker.core.common.tutorial.domain.model.data.Tip
+import com.buzbuz.smartautoclicker.core.common.tutorial.domain.model.Tip
import com.buzbuz.smartautoclicker.core.common.tutorial.domain.model.monitoring.MonitoredOverlayType
import com.buzbuz.smartautoclicker.core.ui.utils.AnimatedStatesImageButtonController
import com.buzbuz.smartautoclicker.core.ui.utils.getDynamicColorsContext
diff --git a/feature/smart-config/src/main/java/com/buzbuz/smartautoclicker/feature/smart/config/ui/mainmenu/MainMenuModel.kt b/feature/smart-config/src/main/java/com/buzbuz/smartautoclicker/feature/smart/config/ui/mainmenu/MainMenuModel.kt
index 208ffe284..2c53d760c 100644
--- a/feature/smart-config/src/main/java/com/buzbuz/smartautoclicker/feature/smart/config/ui/mainmenu/MainMenuModel.kt
+++ b/feature/smart-config/src/main/java/com/buzbuz/smartautoclicker/feature/smart/config/ui/mainmenu/MainMenuModel.kt
@@ -24,7 +24,7 @@ import androidx.lifecycle.ViewModel
import androidx.lifecycle.viewModelScope
import com.buzbuz.smartautoclicker.core.common.tutorial.domain.TutorialRepository
-import com.buzbuz.smartautoclicker.core.common.tutorial.domain.model.data.Tip
+import com.buzbuz.smartautoclicker.core.common.tutorial.domain.model.Tip
import com.buzbuz.smartautoclicker.core.processing.domain.SmartProcessingRepository
import com.buzbuz.smartautoclicker.core.processing.domain.model.DetectionState
import com.buzbuz.smartautoclicker.core.smart.debugging.domain.DebuggingRepository
diff --git a/feature/smart-config/src/main/res/drawable/ic_help.xml b/feature/smart-config/src/main/res/drawable/ic_help.xml
deleted file mode 100644
index 7f116ea42..000000000
--- a/feature/smart-config/src/main/res/drawable/ic_help.xml
+++ /dev/null
@@ -1,11 +0,0 @@
-
-
-
diff --git a/feature/smart-config/src/main/res/layout/overlay_validation_menu.xml b/feature/smart-config/src/main/res/layout/overlay_validation_menu.xml
index 9dc890561..2cf9364bb 100644
--- a/feature/smart-config/src/main/res/layout/overlay_validation_menu.xml
+++ b/feature/smart-config/src/main/res/layout/overlay_validation_menu.xml
@@ -25,7 +25,8 @@
+ tools:viewBindingIgnore="true"
+ tools:background="#99000000">
+ android:src="@drawable/ic_visible_on"/>
+
+
الفرق المسموح به
+ فشل التقاط الشاشة، لم يتم إنشاء أي إطارات.
+
diff --git a/feature/smart-config/src/main/res/values-es/strings.xml b/feature/smart-config/src/main/res/values-es/strings.xml
index c04a1e33c..36edd07fc 100644
--- a/feature/smart-config/src/main/res/values-es/strings.xml
+++ b/feature/smart-config/src/main/res/values-es/strings.xml
@@ -199,6 +199,8 @@
diferencia tolerada
+ Error al capturar pantalla, no se generaron fotogramas.
+
diff --git a/feature/smart-config/src/main/res/values-fr/strings.xml b/feature/smart-config/src/main/res/values-fr/strings.xml
index c38e6948b..3dce2fb16 100644
--- a/feature/smart-config/src/main/res/values-fr/strings.xml
+++ b/feature/smart-config/src/main/res/values-fr/strings.xml
@@ -462,6 +462,8 @@
L\'élément est valide
Élément(s) référencé(s) manquant(s)
+ Échec de la capture d\'écran, aucune image n\'a été générée.
+
Vous êtes sur le point de supprimer cet élément, êtes-vous sûr ?
diff --git a/feature/smart-config/src/main/res/values-it/strings.xml b/feature/smart-config/src/main/res/values-it/strings.xml
index cfdc3e54e..076b8d557 100644
--- a/feature/smart-config/src/main/res/values-it/strings.xml
+++ b/feature/smart-config/src/main/res/values-it/strings.xml
@@ -462,6 +462,8 @@
L\'elemento è valido
Elemento/i di riferimento mancante/i
+ Screenshot non riuscito, nessun fotogramma generato.
+
Stai per eliminare questo elemento, sei sicuro?
diff --git a/feature/smart-config/src/main/res/values-ja/strings.xml b/feature/smart-config/src/main/res/values-ja/strings.xml
index 1d5c39d5b..37a1adae2 100644
--- a/feature/smart-config/src/main/res/values-ja/strings.xml
+++ b/feature/smart-config/src/main/res/values-ja/strings.xml
@@ -122,6 +122,7 @@
検知エリア
[%1$d、%2$d、%3$d、%4$d] で
許容する差異
+ スクリーンショットに失敗しました。フレームが生成されませんでした。
カウンターの値に到達
カウンター名
値
diff --git a/feature/smart-config/src/main/res/values-pt-rBR/strings.xml b/feature/smart-config/src/main/res/values-pt-rBR/strings.xml
index 9d4b65e75..6aa70e51a 100644
--- a/feature/smart-config/src/main/res/values-pt-rBR/strings.xml
+++ b/feature/smart-config/src/main/res/values-pt-rBR/strings.xml
@@ -197,6 +197,8 @@
Diferença tolerada
+ Falha na captura de tela, nenhum quadro foi gerado.
+
diff --git a/feature/smart-config/src/main/res/values-ru/strings.xml b/feature/smart-config/src/main/res/values-ru/strings.xml
index 9f78e2cb7..c77668ed9 100644
--- a/feature/smart-config/src/main/res/values-ru/strings.xml
+++ b/feature/smart-config/src/main/res/values-ru/strings.xml
@@ -199,6 +199,8 @@
Допустимое отличие
+ Не удалось сделать снимок экрана, кадры не были созданы.
+
diff --git a/feature/smart-config/src/main/res/values-uk/strings.xml b/feature/smart-config/src/main/res/values-uk/strings.xml
index 392c8d759..81142eea1 100644
--- a/feature/smart-config/src/main/res/values-uk/strings.xml
+++ b/feature/smart-config/src/main/res/values-uk/strings.xml
@@ -200,6 +200,8 @@
Допустима різниця
+ Не вдалося зробити знімок екрана, кадри не були створені.
+
diff --git a/feature/smart-config/src/main/res/values-zh-rCN/strings.xml b/feature/smart-config/src/main/res/values-zh-rCN/strings.xml
index 782a7aeca..646a2a6c8 100644
--- a/feature/smart-config/src/main/res/values-zh-rCN/strings.xml
+++ b/feature/smart-config/src/main/res/values-zh-rCN/strings.xml
@@ -459,6 +459,8 @@
项目有效
缺少引用的项目
+ 截图失败,未生成任何帧。
+
您即将删除此项目,确定吗?
\ No newline at end of file
diff --git a/feature/smart-config/src/main/res/values-zh-rTW/strings.xml b/feature/smart-config/src/main/res/values-zh-rTW/strings.xml
index 2dee005d9..b7bf06108 100644
--- a/feature/smart-config/src/main/res/values-zh-rTW/strings.xml
+++ b/feature/smart-config/src/main/res/values-zh-rTW/strings.xml
@@ -459,6 +459,8 @@
項目有效
缺少引用的項目
+ 截圖失敗,未生成任何畫面。
+
您即將刪除此項目,確定嗎?
\ No newline at end of file
diff --git a/feature/smart-config/src/main/res/values/strings.xml b/feature/smart-config/src/main/res/values/strings.xml
index 07e7d27af..365b16da0 100644
--- a/feature/smart-config/src/main/res/values/strings.xml
+++ b/feature/smart-config/src/main/res/values/strings.xml
@@ -242,6 +242,8 @@
Detection Area
In [%1$d, %2$d, %3$d, %4$d]
+ Screenshot failed, no frames were generated.
+
diff --git a/feature/smart-debugging/src/main/java/com/buzbuz/smartautoclicker/feature/smart/debugging/ui/view/DebugOverlayView.kt b/feature/smart-debugging/src/main/java/com/buzbuz/smartautoclicker/feature/smart/debugging/ui/view/DebugOverlayView.kt
index d06979e14..fb53d949e 100644
--- a/feature/smart-debugging/src/main/java/com/buzbuz/smartautoclicker/feature/smart/debugging/ui/view/DebugOverlayView.kt
+++ b/feature/smart-debugging/src/main/java/com/buzbuz/smartautoclicker/feature/smart/debugging/ui/view/DebugOverlayView.kt
@@ -27,7 +27,7 @@ internal class DebugOverlayView(context: Context) : View(context) {
}
/** The margin between the actual condition position and the displayed borders. */
- private val conditionBordersMargin = 10
+ private val conditionBordersMargin = 20
private val results: MutableList = mutableListOf()
private val displayedResults: MutableList> = mutableListOf()
@@ -67,16 +67,23 @@ internal class DebugOverlayView(context: Context) : View(context) {
return
}
- results.forEach { result -> displayedResults.add(result.toDisplayResult()) }
+ displayedResults.addAll(results.toDisplayResults())
}
- private fun ScreenConditionResultUiState.toDisplayResult(): Pair = Pair(
- if (positive) positiveResultPaint else negativeResultPaint,
- Rect(
- coordinates.left - conditionBordersMargin,
- coordinates.top - conditionBordersMargin,
- coordinates.right + conditionBordersMargin,
- coordinates.bottom + conditionBordersMargin,
- )
- )
+ private fun List.toDisplayResults(): List> =
+ mapNotNull { uiState ->
+ if (!uiState.positive && (uiState.coordinates.width() == 0 || uiState.coordinates.height() == 0))
+ return@mapNotNull null
+
+ Pair(
+ if (uiState.positive) positiveResultPaint else negativeResultPaint,
+ Rect(
+ uiState.coordinates.left - conditionBordersMargin,
+ uiState.coordinates.top - conditionBordersMargin,
+ uiState.coordinates.right + conditionBordersMargin,
+ uiState.coordinates.bottom + conditionBordersMargin,
+ )
+ )
+ }
+
}
\ No newline at end of file
diff --git a/feature/tutorial/src/main/java/com/buzbuz/smartautoclicker/feature/tutorial/data/items/root/basics/screenconditions/color/ColorConditionsTutorial.kt b/feature/tutorial/src/main/java/com/buzbuz/smartautoclicker/feature/tutorial/data/items/root/basics/screenconditions/color/ColorConditionsTutorial.kt
index 73882a99d..38a9a759d 100644
--- a/feature/tutorial/src/main/java/com/buzbuz/smartautoclicker/feature/tutorial/data/items/root/basics/screenconditions/color/ColorConditionsTutorial.kt
+++ b/feature/tutorial/src/main/java/com/buzbuz/smartautoclicker/feature/tutorial/data/items/root/basics/screenconditions/color/ColorConditionsTutorial.kt
@@ -16,13 +16,13 @@
*/
package com.buzbuz.smartautoclicker.feature.tutorial.data.items.root.basics.screenconditions.color
-import com.buzbuz.smartautoclicker.core.common.tutorial.domain.model.data.Tutorial
-import com.buzbuz.smartautoclicker.core.common.tutorial.domain.model.data.TutorialInfo
-import com.buzbuz.smartautoclicker.core.common.tutorial.domain.model.data.step.TutorialStep
-import com.buzbuz.smartautoclicker.core.common.tutorial.domain.model.data.step.TutorialStepEndCondition
-import com.buzbuz.smartautoclicker.core.common.tutorial.domain.model.data.step.TutorialStepImage
-import com.buzbuz.smartautoclicker.core.common.tutorial.domain.model.data.step.TutorialStepStartCondition
-import com.buzbuz.smartautoclicker.core.common.tutorial.domain.model.data.subject.TutorialSubject
+import com.buzbuz.smartautoclicker.core.common.tutorial.domain.model.tutorial.Tutorial
+import com.buzbuz.smartautoclicker.core.common.tutorial.domain.model.tutorial.TutorialInfo
+import com.buzbuz.smartautoclicker.core.common.tutorial.domain.model.tutorial.step.TutorialStep
+import com.buzbuz.smartautoclicker.core.common.tutorial.domain.model.tutorial.step.TutorialStepEndCondition
+import com.buzbuz.smartautoclicker.core.common.tutorial.domain.model.tutorial.step.TutorialStepImage
+import com.buzbuz.smartautoclicker.core.common.tutorial.domain.model.tutorial.step.TutorialStepStartCondition
+import com.buzbuz.smartautoclicker.core.common.tutorial.domain.model.tutorial.subject.TutorialSubject
import com.buzbuz.smartautoclicker.core.common.tutorial.domain.model.monitoring.MonitoredOverlayType
import com.buzbuz.smartautoclicker.core.common.tutorial.domain.model.monitoring.MonitoredViewType
import com.buzbuz.smartautoclicker.feature.tutorial.R
diff --git a/feature/tutorial/src/main/java/com/buzbuz/smartautoclicker/feature/tutorial/data/items/root/basics/screenconditions/image/ImageConditionsMovingTargetTutorial.kt b/feature/tutorial/src/main/java/com/buzbuz/smartautoclicker/feature/tutorial/data/items/root/basics/screenconditions/image/ImageConditionsMovingTargetTutorial.kt
index b20d327ed..9547d9ba2 100644
--- a/feature/tutorial/src/main/java/com/buzbuz/smartautoclicker/feature/tutorial/data/items/root/basics/screenconditions/image/ImageConditionsMovingTargetTutorial.kt
+++ b/feature/tutorial/src/main/java/com/buzbuz/smartautoclicker/feature/tutorial/data/items/root/basics/screenconditions/image/ImageConditionsMovingTargetTutorial.kt
@@ -16,13 +16,13 @@
*/
package com.buzbuz.smartautoclicker.feature.tutorial.data.items.root.basics.screenconditions.image
-import com.buzbuz.smartautoclicker.core.common.tutorial.domain.model.data.Tutorial
-import com.buzbuz.smartautoclicker.core.common.tutorial.domain.model.data.TutorialInfo
-import com.buzbuz.smartautoclicker.core.common.tutorial.domain.model.data.step.TutorialStep
-import com.buzbuz.smartautoclicker.core.common.tutorial.domain.model.data.step.TutorialStepEndCondition
-import com.buzbuz.smartautoclicker.core.common.tutorial.domain.model.data.step.TutorialStepImage
-import com.buzbuz.smartautoclicker.core.common.tutorial.domain.model.data.step.TutorialStepStartCondition
-import com.buzbuz.smartautoclicker.core.common.tutorial.domain.model.data.subject.TutorialSubject
+import com.buzbuz.smartautoclicker.core.common.tutorial.domain.model.tutorial.Tutorial
+import com.buzbuz.smartautoclicker.core.common.tutorial.domain.model.tutorial.TutorialInfo
+import com.buzbuz.smartautoclicker.core.common.tutorial.domain.model.tutorial.step.TutorialStep
+import com.buzbuz.smartautoclicker.core.common.tutorial.domain.model.tutorial.step.TutorialStepEndCondition
+import com.buzbuz.smartautoclicker.core.common.tutorial.domain.model.tutorial.step.TutorialStepImage
+import com.buzbuz.smartautoclicker.core.common.tutorial.domain.model.tutorial.step.TutorialStepStartCondition
+import com.buzbuz.smartautoclicker.core.common.tutorial.domain.model.tutorial.subject.TutorialSubject
import com.buzbuz.smartautoclicker.core.common.tutorial.domain.model.monitoring.MonitoredOverlayType
import com.buzbuz.smartautoclicker.core.common.tutorial.domain.model.monitoring.MonitoredViewType
import com.buzbuz.smartautoclicker.feature.tutorial.R
diff --git a/feature/tutorial/src/main/java/com/buzbuz/smartautoclicker/feature/tutorial/data/items/root/basics/screenconditions/image/ImageConditionsStillTargetTutorial.kt b/feature/tutorial/src/main/java/com/buzbuz/smartautoclicker/feature/tutorial/data/items/root/basics/screenconditions/image/ImageConditionsStillTargetTutorial.kt
index 92c3f7031..655b7b92a 100644
--- a/feature/tutorial/src/main/java/com/buzbuz/smartautoclicker/feature/tutorial/data/items/root/basics/screenconditions/image/ImageConditionsStillTargetTutorial.kt
+++ b/feature/tutorial/src/main/java/com/buzbuz/smartautoclicker/feature/tutorial/data/items/root/basics/screenconditions/image/ImageConditionsStillTargetTutorial.kt
@@ -16,13 +16,13 @@
*/
package com.buzbuz.smartautoclicker.feature.tutorial.data.items.root.basics.screenconditions.image
-import com.buzbuz.smartautoclicker.core.common.tutorial.domain.model.data.Tutorial
-import com.buzbuz.smartautoclicker.core.common.tutorial.domain.model.data.TutorialInfo
-import com.buzbuz.smartautoclicker.core.common.tutorial.domain.model.data.step.TutorialStep
-import com.buzbuz.smartautoclicker.core.common.tutorial.domain.model.data.step.TutorialStepEndCondition
-import com.buzbuz.smartautoclicker.core.common.tutorial.domain.model.data.step.TutorialStepImage
-import com.buzbuz.smartautoclicker.core.common.tutorial.domain.model.data.step.TutorialStepStartCondition
-import com.buzbuz.smartautoclicker.core.common.tutorial.domain.model.data.subject.TutorialSubject
+import com.buzbuz.smartautoclicker.core.common.tutorial.domain.model.tutorial.Tutorial
+import com.buzbuz.smartautoclicker.core.common.tutorial.domain.model.tutorial.TutorialInfo
+import com.buzbuz.smartautoclicker.core.common.tutorial.domain.model.tutorial.step.TutorialStep
+import com.buzbuz.smartautoclicker.core.common.tutorial.domain.model.tutorial.step.TutorialStepEndCondition
+import com.buzbuz.smartautoclicker.core.common.tutorial.domain.model.tutorial.step.TutorialStepImage
+import com.buzbuz.smartautoclicker.core.common.tutorial.domain.model.tutorial.step.TutorialStepStartCondition
+import com.buzbuz.smartautoclicker.core.common.tutorial.domain.model.tutorial.subject.TutorialSubject
import com.buzbuz.smartautoclicker.core.common.tutorial.domain.model.monitoring.MonitoredOverlayType
import com.buzbuz.smartautoclicker.core.common.tutorial.domain.model.monitoring.MonitoredViewType
import com.buzbuz.smartautoclicker.feature.tutorial.R
diff --git a/feature/tutorial/src/main/java/com/buzbuz/smartautoclicker/feature/tutorial/data/items/root/basics/screenconditions/number/NumberConditionsStaticValueTutorial.kt b/feature/tutorial/src/main/java/com/buzbuz/smartautoclicker/feature/tutorial/data/items/root/basics/screenconditions/number/NumberConditionsStaticValueTutorial.kt
index 0ce896f2f..b3cee1c4c 100644
--- a/feature/tutorial/src/main/java/com/buzbuz/smartautoclicker/feature/tutorial/data/items/root/basics/screenconditions/number/NumberConditionsStaticValueTutorial.kt
+++ b/feature/tutorial/src/main/java/com/buzbuz/smartautoclicker/feature/tutorial/data/items/root/basics/screenconditions/number/NumberConditionsStaticValueTutorial.kt
@@ -16,13 +16,13 @@
*/
package com.buzbuz.smartautoclicker.feature.tutorial.data.items.root.basics.screenconditions.number
-import com.buzbuz.smartautoclicker.core.common.tutorial.domain.model.data.Tutorial
-import com.buzbuz.smartautoclicker.core.common.tutorial.domain.model.data.TutorialInfo
-import com.buzbuz.smartautoclicker.core.common.tutorial.domain.model.data.step.TutorialStep
-import com.buzbuz.smartautoclicker.core.common.tutorial.domain.model.data.step.TutorialStepEndCondition
-import com.buzbuz.smartautoclicker.core.common.tutorial.domain.model.data.step.TutorialStepImage
-import com.buzbuz.smartautoclicker.core.common.tutorial.domain.model.data.step.TutorialStepStartCondition
-import com.buzbuz.smartautoclicker.core.common.tutorial.domain.model.data.subject.TutorialSubject
+import com.buzbuz.smartautoclicker.core.common.tutorial.domain.model.tutorial.Tutorial
+import com.buzbuz.smartautoclicker.core.common.tutorial.domain.model.tutorial.TutorialInfo
+import com.buzbuz.smartautoclicker.core.common.tutorial.domain.model.tutorial.step.TutorialStep
+import com.buzbuz.smartautoclicker.core.common.tutorial.domain.model.tutorial.step.TutorialStepEndCondition
+import com.buzbuz.smartautoclicker.core.common.tutorial.domain.model.tutorial.step.TutorialStepImage
+import com.buzbuz.smartautoclicker.core.common.tutorial.domain.model.tutorial.step.TutorialStepStartCondition
+import com.buzbuz.smartautoclicker.core.common.tutorial.domain.model.tutorial.subject.TutorialSubject
import com.buzbuz.smartautoclicker.core.common.tutorial.domain.model.monitoring.MonitoredOverlayType
import com.buzbuz.smartautoclicker.core.common.tutorial.domain.model.monitoring.MonitoredViewType
import com.buzbuz.smartautoclicker.feature.tutorial.R
diff --git a/feature/tutorial/src/main/java/com/buzbuz/smartautoclicker/feature/tutorial/data/items/root/basics/screenconditions/text/TextConditionsMovingTextTutorial.kt b/feature/tutorial/src/main/java/com/buzbuz/smartautoclicker/feature/tutorial/data/items/root/basics/screenconditions/text/TextConditionsMovingTextTutorial.kt
index 91a80e26f..257f80027 100644
--- a/feature/tutorial/src/main/java/com/buzbuz/smartautoclicker/feature/tutorial/data/items/root/basics/screenconditions/text/TextConditionsMovingTextTutorial.kt
+++ b/feature/tutorial/src/main/java/com/buzbuz/smartautoclicker/feature/tutorial/data/items/root/basics/screenconditions/text/TextConditionsMovingTextTutorial.kt
@@ -16,13 +16,13 @@
*/
package com.buzbuz.smartautoclicker.feature.tutorial.data.items.root.basics.screenconditions.text
-import com.buzbuz.smartautoclicker.core.common.tutorial.domain.model.data.Tutorial
-import com.buzbuz.smartautoclicker.core.common.tutorial.domain.model.data.TutorialInfo
-import com.buzbuz.smartautoclicker.core.common.tutorial.domain.model.data.step.TutorialStep
-import com.buzbuz.smartautoclicker.core.common.tutorial.domain.model.data.step.TutorialStepEndCondition
-import com.buzbuz.smartautoclicker.core.common.tutorial.domain.model.data.step.TutorialStepImage
-import com.buzbuz.smartautoclicker.core.common.tutorial.domain.model.data.step.TutorialStepStartCondition
-import com.buzbuz.smartautoclicker.core.common.tutorial.domain.model.data.subject.TutorialSubject
+import com.buzbuz.smartautoclicker.core.common.tutorial.domain.model.tutorial.Tutorial
+import com.buzbuz.smartautoclicker.core.common.tutorial.domain.model.tutorial.TutorialInfo
+import com.buzbuz.smartautoclicker.core.common.tutorial.domain.model.tutorial.step.TutorialStep
+import com.buzbuz.smartautoclicker.core.common.tutorial.domain.model.tutorial.step.TutorialStepEndCondition
+import com.buzbuz.smartautoclicker.core.common.tutorial.domain.model.tutorial.step.TutorialStepImage
+import com.buzbuz.smartautoclicker.core.common.tutorial.domain.model.tutorial.step.TutorialStepStartCondition
+import com.buzbuz.smartautoclicker.core.common.tutorial.domain.model.tutorial.subject.TutorialSubject
import com.buzbuz.smartautoclicker.core.common.tutorial.domain.model.monitoring.MonitoredOverlayType
import com.buzbuz.smartautoclicker.core.common.tutorial.domain.model.monitoring.MonitoredViewType
import com.buzbuz.smartautoclicker.feature.tutorial.R
diff --git a/feature/tutorial/src/main/java/com/buzbuz/smartautoclicker/feature/tutorial/data/items/root/basics/screenconditions/text/TextConditionsStillTextTutorial.kt b/feature/tutorial/src/main/java/com/buzbuz/smartautoclicker/feature/tutorial/data/items/root/basics/screenconditions/text/TextConditionsStillTextTutorial.kt
index 7c535c7a1..f7d74df3c 100644
--- a/feature/tutorial/src/main/java/com/buzbuz/smartautoclicker/feature/tutorial/data/items/root/basics/screenconditions/text/TextConditionsStillTextTutorial.kt
+++ b/feature/tutorial/src/main/java/com/buzbuz/smartautoclicker/feature/tutorial/data/items/root/basics/screenconditions/text/TextConditionsStillTextTutorial.kt
@@ -16,13 +16,13 @@
*/
package com.buzbuz.smartautoclicker.feature.tutorial.data.items.root.basics.screenconditions.text
-import com.buzbuz.smartautoclicker.core.common.tutorial.domain.model.data.Tutorial
-import com.buzbuz.smartautoclicker.core.common.tutorial.domain.model.data.TutorialInfo
-import com.buzbuz.smartautoclicker.core.common.tutorial.domain.model.data.step.TutorialStep
-import com.buzbuz.smartautoclicker.core.common.tutorial.domain.model.data.step.TutorialStepEndCondition
-import com.buzbuz.smartautoclicker.core.common.tutorial.domain.model.data.step.TutorialStepImage
-import com.buzbuz.smartautoclicker.core.common.tutorial.domain.model.data.step.TutorialStepStartCondition
-import com.buzbuz.smartautoclicker.core.common.tutorial.domain.model.data.subject.TutorialSubject
+import com.buzbuz.smartautoclicker.core.common.tutorial.domain.model.tutorial.Tutorial
+import com.buzbuz.smartautoclicker.core.common.tutorial.domain.model.tutorial.TutorialInfo
+import com.buzbuz.smartautoclicker.core.common.tutorial.domain.model.tutorial.step.TutorialStep
+import com.buzbuz.smartautoclicker.core.common.tutorial.domain.model.tutorial.step.TutorialStepEndCondition
+import com.buzbuz.smartautoclicker.core.common.tutorial.domain.model.tutorial.step.TutorialStepImage
+import com.buzbuz.smartautoclicker.core.common.tutorial.domain.model.tutorial.step.TutorialStepStartCondition
+import com.buzbuz.smartautoclicker.core.common.tutorial.domain.model.tutorial.subject.TutorialSubject
import com.buzbuz.smartautoclicker.core.common.tutorial.domain.model.monitoring.MonitoredOverlayType
import com.buzbuz.smartautoclicker.core.common.tutorial.domain.model.monitoring.MonitoredViewType
import com.buzbuz.smartautoclicker.feature.tutorial.R
diff --git a/feature/tutorial/src/main/java/com/buzbuz/smartautoclicker/feature/tutorial/data/items/root/basics/triggerconditions/TimerReachedConditionTutorial.kt b/feature/tutorial/src/main/java/com/buzbuz/smartautoclicker/feature/tutorial/data/items/root/basics/triggerconditions/TimerReachedConditionTutorial.kt
index d02971820..a9724954e 100644
--- a/feature/tutorial/src/main/java/com/buzbuz/smartautoclicker/feature/tutorial/data/items/root/basics/triggerconditions/TimerReachedConditionTutorial.kt
+++ b/feature/tutorial/src/main/java/com/buzbuz/smartautoclicker/feature/tutorial/data/items/root/basics/triggerconditions/TimerReachedConditionTutorial.kt
@@ -16,12 +16,12 @@
*/
package com.buzbuz.smartautoclicker.feature.tutorial.data.items.root.basics.triggerconditions
-import com.buzbuz.smartautoclicker.core.common.tutorial.domain.model.data.Tutorial
-import com.buzbuz.smartautoclicker.core.common.tutorial.domain.model.data.TutorialInfo
-import com.buzbuz.smartautoclicker.core.common.tutorial.domain.model.data.step.TutorialStep
-import com.buzbuz.smartautoclicker.core.common.tutorial.domain.model.data.step.TutorialStepEndCondition
-import com.buzbuz.smartautoclicker.core.common.tutorial.domain.model.data.step.TutorialStepStartCondition
-import com.buzbuz.smartautoclicker.core.common.tutorial.domain.model.data.subject.TutorialSubject
+import com.buzbuz.smartautoclicker.core.common.tutorial.domain.model.tutorial.Tutorial
+import com.buzbuz.smartautoclicker.core.common.tutorial.domain.model.tutorial.TutorialInfo
+import com.buzbuz.smartautoclicker.core.common.tutorial.domain.model.tutorial.step.TutorialStep
+import com.buzbuz.smartautoclicker.core.common.tutorial.domain.model.tutorial.step.TutorialStepEndCondition
+import com.buzbuz.smartautoclicker.core.common.tutorial.domain.model.tutorial.step.TutorialStepStartCondition
+import com.buzbuz.smartautoclicker.core.common.tutorial.domain.model.tutorial.subject.TutorialSubject
import com.buzbuz.smartautoclicker.core.common.tutorial.domain.model.monitoring.MonitoredOverlayType
import com.buzbuz.smartautoclicker.core.common.tutorial.domain.model.monitoring.MonitoredViewType
import com.buzbuz.smartautoclicker.feature.tutorial.R
diff --git a/feature/tutorial/src/main/java/com/buzbuz/smartautoclicker/feature/tutorial/data/items/root/combineconditions/CombineConditionsNotVisibleTargetTutorial.kt b/feature/tutorial/src/main/java/com/buzbuz/smartautoclicker/feature/tutorial/data/items/root/combineconditions/CombineConditionsNotVisibleTargetTutorial.kt
index ba95e11a7..7d290b37d 100644
--- a/feature/tutorial/src/main/java/com/buzbuz/smartautoclicker/feature/tutorial/data/items/root/combineconditions/CombineConditionsNotVisibleTargetTutorial.kt
+++ b/feature/tutorial/src/main/java/com/buzbuz/smartautoclicker/feature/tutorial/data/items/root/combineconditions/CombineConditionsNotVisibleTargetTutorial.kt
@@ -16,12 +16,12 @@
*/
package com.buzbuz.smartautoclicker.feature.tutorial.data.items.root.combineconditions
-import com.buzbuz.smartautoclicker.core.common.tutorial.domain.model.data.Tutorial
-import com.buzbuz.smartautoclicker.core.common.tutorial.domain.model.data.TutorialInfo
-import com.buzbuz.smartautoclicker.core.common.tutorial.domain.model.data.step.TutorialStep
-import com.buzbuz.smartautoclicker.core.common.tutorial.domain.model.data.step.TutorialStepEndCondition
-import com.buzbuz.smartautoclicker.core.common.tutorial.domain.model.data.step.TutorialStepStartCondition
-import com.buzbuz.smartautoclicker.core.common.tutorial.domain.model.data.subject.TutorialSubject
+import com.buzbuz.smartautoclicker.core.common.tutorial.domain.model.tutorial.Tutorial
+import com.buzbuz.smartautoclicker.core.common.tutorial.domain.model.tutorial.TutorialInfo
+import com.buzbuz.smartautoclicker.core.common.tutorial.domain.model.tutorial.step.TutorialStep
+import com.buzbuz.smartautoclicker.core.common.tutorial.domain.model.tutorial.step.TutorialStepEndCondition
+import com.buzbuz.smartautoclicker.core.common.tutorial.domain.model.tutorial.step.TutorialStepStartCondition
+import com.buzbuz.smartautoclicker.core.common.tutorial.domain.model.tutorial.subject.TutorialSubject
import com.buzbuz.smartautoclicker.core.common.tutorial.domain.model.monitoring.MonitoredOverlayType
import com.buzbuz.smartautoclicker.core.common.tutorial.domain.model.monitoring.MonitoredViewType
import com.buzbuz.smartautoclicker.feature.tutorial.R
diff --git a/feature/tutorial/src/main/java/com/buzbuz/smartautoclicker/feature/tutorial/data/items/root/combineconditions/CombineConditionsOperatorAndTutorial.kt b/feature/tutorial/src/main/java/com/buzbuz/smartautoclicker/feature/tutorial/data/items/root/combineconditions/CombineConditionsOperatorAndTutorial.kt
index 8ca78ee16..4669e14c9 100644
--- a/feature/tutorial/src/main/java/com/buzbuz/smartautoclicker/feature/tutorial/data/items/root/combineconditions/CombineConditionsOperatorAndTutorial.kt
+++ b/feature/tutorial/src/main/java/com/buzbuz/smartautoclicker/feature/tutorial/data/items/root/combineconditions/CombineConditionsOperatorAndTutorial.kt
@@ -16,13 +16,13 @@
*/
package com.buzbuz.smartautoclicker.feature.tutorial.data.items.root.combineconditions
-import com.buzbuz.smartautoclicker.core.common.tutorial.domain.model.data.Tutorial
-import com.buzbuz.smartautoclicker.core.common.tutorial.domain.model.data.TutorialInfo
-import com.buzbuz.smartautoclicker.core.common.tutorial.domain.model.data.step.TutorialStep
-import com.buzbuz.smartautoclicker.core.common.tutorial.domain.model.data.step.TutorialStepEndCondition
-import com.buzbuz.smartautoclicker.core.common.tutorial.domain.model.data.step.TutorialStepImage
-import com.buzbuz.smartautoclicker.core.common.tutorial.domain.model.data.step.TutorialStepStartCondition
-import com.buzbuz.smartautoclicker.core.common.tutorial.domain.model.data.subject.TutorialSubject
+import com.buzbuz.smartautoclicker.core.common.tutorial.domain.model.tutorial.Tutorial
+import com.buzbuz.smartautoclicker.core.common.tutorial.domain.model.tutorial.TutorialInfo
+import com.buzbuz.smartautoclicker.core.common.tutorial.domain.model.tutorial.step.TutorialStep
+import com.buzbuz.smartautoclicker.core.common.tutorial.domain.model.tutorial.step.TutorialStepEndCondition
+import com.buzbuz.smartautoclicker.core.common.tutorial.domain.model.tutorial.step.TutorialStepImage
+import com.buzbuz.smartautoclicker.core.common.tutorial.domain.model.tutorial.step.TutorialStepStartCondition
+import com.buzbuz.smartautoclicker.core.common.tutorial.domain.model.tutorial.subject.TutorialSubject
import com.buzbuz.smartautoclicker.core.common.tutorial.domain.model.monitoring.MonitoredOverlayType
import com.buzbuz.smartautoclicker.core.common.tutorial.domain.model.monitoring.MonitoredViewType
import com.buzbuz.smartautoclicker.feature.tutorial.R
diff --git a/feature/tutorial/src/main/java/com/buzbuz/smartautoclicker/feature/tutorial/data/items/root/combineconditions/CombineConditionsOperatorOrTutorial.kt b/feature/tutorial/src/main/java/com/buzbuz/smartautoclicker/feature/tutorial/data/items/root/combineconditions/CombineConditionsOperatorOrTutorial.kt
index c98ac9372..85c40befd 100644
--- a/feature/tutorial/src/main/java/com/buzbuz/smartautoclicker/feature/tutorial/data/items/root/combineconditions/CombineConditionsOperatorOrTutorial.kt
+++ b/feature/tutorial/src/main/java/com/buzbuz/smartautoclicker/feature/tutorial/data/items/root/combineconditions/CombineConditionsOperatorOrTutorial.kt
@@ -16,12 +16,12 @@
*/
package com.buzbuz.smartautoclicker.feature.tutorial.data.items.root.combineconditions
-import com.buzbuz.smartautoclicker.core.common.tutorial.domain.model.data.Tutorial
-import com.buzbuz.smartautoclicker.core.common.tutorial.domain.model.data.TutorialInfo
-import com.buzbuz.smartautoclicker.core.common.tutorial.domain.model.data.step.TutorialStep
-import com.buzbuz.smartautoclicker.core.common.tutorial.domain.model.data.step.TutorialStepEndCondition
-import com.buzbuz.smartautoclicker.core.common.tutorial.domain.model.data.step.TutorialStepStartCondition
-import com.buzbuz.smartautoclicker.core.common.tutorial.domain.model.data.subject.TutorialSubject
+import com.buzbuz.smartautoclicker.core.common.tutorial.domain.model.tutorial.Tutorial
+import com.buzbuz.smartautoclicker.core.common.tutorial.domain.model.tutorial.TutorialInfo
+import com.buzbuz.smartautoclicker.core.common.tutorial.domain.model.tutorial.step.TutorialStep
+import com.buzbuz.smartautoclicker.core.common.tutorial.domain.model.tutorial.step.TutorialStepEndCondition
+import com.buzbuz.smartautoclicker.core.common.tutorial.domain.model.tutorial.step.TutorialStepStartCondition
+import com.buzbuz.smartautoclicker.core.common.tutorial.domain.model.tutorial.subject.TutorialSubject
import com.buzbuz.smartautoclicker.core.common.tutorial.domain.model.monitoring.MonitoredOverlayType
import com.buzbuz.smartautoclicker.core.common.tutorial.domain.model.monitoring.MonitoredViewType
import com.buzbuz.smartautoclicker.feature.tutorial.R
diff --git a/feature/tutorial/src/main/java/com/buzbuz/smartautoclicker/feature/tutorial/data/items/root/combineevents/priority/EventsPriorityTutorial.kt b/feature/tutorial/src/main/java/com/buzbuz/smartautoclicker/feature/tutorial/data/items/root/combineevents/priority/EventsPriorityTutorial.kt
index 86a8c93e6..3b55fb999 100644
--- a/feature/tutorial/src/main/java/com/buzbuz/smartautoclicker/feature/tutorial/data/items/root/combineevents/priority/EventsPriorityTutorial.kt
+++ b/feature/tutorial/src/main/java/com/buzbuz/smartautoclicker/feature/tutorial/data/items/root/combineevents/priority/EventsPriorityTutorial.kt
@@ -16,13 +16,13 @@
*/
package com.buzbuz.smartautoclicker.feature.tutorial.data.items.root.combineevents.priority
-import com.buzbuz.smartautoclicker.core.common.tutorial.domain.model.data.Tutorial
-import com.buzbuz.smartautoclicker.core.common.tutorial.domain.model.data.TutorialInfo
-import com.buzbuz.smartautoclicker.core.common.tutorial.domain.model.data.step.TutorialStep
-import com.buzbuz.smartautoclicker.core.common.tutorial.domain.model.data.step.TutorialStepEndCondition
-import com.buzbuz.smartautoclicker.core.common.tutorial.domain.model.data.step.TutorialStepImage
-import com.buzbuz.smartautoclicker.core.common.tutorial.domain.model.data.step.TutorialStepStartCondition
-import com.buzbuz.smartautoclicker.core.common.tutorial.domain.model.data.subject.TutorialSubject
+import com.buzbuz.smartautoclicker.core.common.tutorial.domain.model.tutorial.Tutorial
+import com.buzbuz.smartautoclicker.core.common.tutorial.domain.model.tutorial.TutorialInfo
+import com.buzbuz.smartautoclicker.core.common.tutorial.domain.model.tutorial.step.TutorialStep
+import com.buzbuz.smartautoclicker.core.common.tutorial.domain.model.tutorial.step.TutorialStepEndCondition
+import com.buzbuz.smartautoclicker.core.common.tutorial.domain.model.tutorial.step.TutorialStepImage
+import com.buzbuz.smartautoclicker.core.common.tutorial.domain.model.tutorial.step.TutorialStepStartCondition
+import com.buzbuz.smartautoclicker.core.common.tutorial.domain.model.tutorial.subject.TutorialSubject
import com.buzbuz.smartautoclicker.core.common.tutorial.domain.model.monitoring.MonitoredOverlayType
import com.buzbuz.smartautoclicker.core.common.tutorial.domain.model.monitoring.MonitoredViewType
import com.buzbuz.smartautoclicker.feature.tutorial.R
diff --git a/feature/tutorial/src/main/java/com/buzbuz/smartautoclicker/feature/tutorial/data/items/root/combineevents/state/EventsStateTutorial.kt b/feature/tutorial/src/main/java/com/buzbuz/smartautoclicker/feature/tutorial/data/items/root/combineevents/state/EventsStateTutorial.kt
index 65eb8d308..f5bc45be1 100644
--- a/feature/tutorial/src/main/java/com/buzbuz/smartautoclicker/feature/tutorial/data/items/root/combineevents/state/EventsStateTutorial.kt
+++ b/feature/tutorial/src/main/java/com/buzbuz/smartautoclicker/feature/tutorial/data/items/root/combineevents/state/EventsStateTutorial.kt
@@ -16,13 +16,13 @@
*/
package com.buzbuz.smartautoclicker.feature.tutorial.data.items.root.combineevents.state
-import com.buzbuz.smartautoclicker.core.common.tutorial.domain.model.data.Tutorial
-import com.buzbuz.smartautoclicker.core.common.tutorial.domain.model.data.TutorialInfo
-import com.buzbuz.smartautoclicker.core.common.tutorial.domain.model.data.step.TutorialStep
-import com.buzbuz.smartautoclicker.core.common.tutorial.domain.model.data.step.TutorialStepEndCondition
-import com.buzbuz.smartautoclicker.core.common.tutorial.domain.model.data.step.TutorialStepImage
-import com.buzbuz.smartautoclicker.core.common.tutorial.domain.model.data.step.TutorialStepStartCondition
-import com.buzbuz.smartautoclicker.core.common.tutorial.domain.model.data.subject.TutorialSubject
+import com.buzbuz.smartautoclicker.core.common.tutorial.domain.model.tutorial.Tutorial
+import com.buzbuz.smartautoclicker.core.common.tutorial.domain.model.tutorial.TutorialInfo
+import com.buzbuz.smartautoclicker.core.common.tutorial.domain.model.tutorial.step.TutorialStep
+import com.buzbuz.smartautoclicker.core.common.tutorial.domain.model.tutorial.step.TutorialStepEndCondition
+import com.buzbuz.smartautoclicker.core.common.tutorial.domain.model.tutorial.step.TutorialStepImage
+import com.buzbuz.smartautoclicker.core.common.tutorial.domain.model.tutorial.step.TutorialStepStartCondition
+import com.buzbuz.smartautoclicker.core.common.tutorial.domain.model.tutorial.subject.TutorialSubject
import com.buzbuz.smartautoclicker.core.common.tutorial.domain.model.monitoring.MonitoredOverlayType
import com.buzbuz.smartautoclicker.core.common.tutorial.domain.model.monitoring.MonitoredViewType
import com.buzbuz.smartautoclicker.feature.tutorial.R
diff --git a/feature/tutorial/src/main/java/com/buzbuz/smartautoclicker/feature/tutorial/data/items/root/counters/CountersBasicsTutorial.kt b/feature/tutorial/src/main/java/com/buzbuz/smartautoclicker/feature/tutorial/data/items/root/counters/CountersBasicsTutorial.kt
index b2eab5f42..1ad21f59a 100644
--- a/feature/tutorial/src/main/java/com/buzbuz/smartautoclicker/feature/tutorial/data/items/root/counters/CountersBasicsTutorial.kt
+++ b/feature/tutorial/src/main/java/com/buzbuz/smartautoclicker/feature/tutorial/data/items/root/counters/CountersBasicsTutorial.kt
@@ -16,13 +16,13 @@
*/
package com.buzbuz.smartautoclicker.feature.tutorial.data.items.root.counters
-import com.buzbuz.smartautoclicker.core.common.tutorial.domain.model.data.Tutorial
-import com.buzbuz.smartautoclicker.core.common.tutorial.domain.model.data.TutorialInfo
-import com.buzbuz.smartautoclicker.core.common.tutorial.domain.model.data.step.TutorialStep
-import com.buzbuz.smartautoclicker.core.common.tutorial.domain.model.data.step.TutorialStepEndCondition
-import com.buzbuz.smartautoclicker.core.common.tutorial.domain.model.data.step.TutorialStepImage
-import com.buzbuz.smartautoclicker.core.common.tutorial.domain.model.data.step.TutorialStepStartCondition
-import com.buzbuz.smartautoclicker.core.common.tutorial.domain.model.data.subject.TutorialSubject
+import com.buzbuz.smartautoclicker.core.common.tutorial.domain.model.tutorial.Tutorial
+import com.buzbuz.smartautoclicker.core.common.tutorial.domain.model.tutorial.TutorialInfo
+import com.buzbuz.smartautoclicker.core.common.tutorial.domain.model.tutorial.step.TutorialStep
+import com.buzbuz.smartautoclicker.core.common.tutorial.domain.model.tutorial.step.TutorialStepEndCondition
+import com.buzbuz.smartautoclicker.core.common.tutorial.domain.model.tutorial.step.TutorialStepImage
+import com.buzbuz.smartautoclicker.core.common.tutorial.domain.model.tutorial.step.TutorialStepStartCondition
+import com.buzbuz.smartautoclicker.core.common.tutorial.domain.model.tutorial.subject.TutorialSubject
import com.buzbuz.smartautoclicker.core.common.tutorial.domain.model.monitoring.MonitoredOverlayType
import com.buzbuz.smartautoclicker.core.common.tutorial.domain.model.monitoring.MonitoredViewType
import com.buzbuz.smartautoclicker.feature.tutorial.R
diff --git a/feature/tutorial/src/main/java/com/buzbuz/smartautoclicker/feature/tutorial/data/subjects/quickcountgame/image/CountBlueValidateRedRules.kt b/feature/tutorial/src/main/java/com/buzbuz/smartautoclicker/feature/tutorial/data/subjects/quickcountgame/image/CountBlueValidateRedRules.kt
index a176ae98c..b598fae9c 100644
--- a/feature/tutorial/src/main/java/com/buzbuz/smartautoclicker/feature/tutorial/data/subjects/quickcountgame/image/CountBlueValidateRedRules.kt
+++ b/feature/tutorial/src/main/java/com/buzbuz/smartautoclicker/feature/tutorial/data/subjects/quickcountgame/image/CountBlueValidateRedRules.kt
@@ -17,9 +17,9 @@
package com.buzbuz.smartautoclicker.feature.tutorial.data.subjects.quickcountgame.image
import android.graphics.PointF
-import com.buzbuz.smartautoclicker.core.common.tutorial.domain.model.data.subject.quickclickgame.QuickClickGameRules
-import com.buzbuz.smartautoclicker.core.common.tutorial.domain.model.data.subject.quickclickgame.QuickClickGameTargetState
-import com.buzbuz.smartautoclicker.core.common.tutorial.domain.model.data.subject.quickclickgame.QuickClickGameTargetType
+import com.buzbuz.smartautoclicker.core.common.tutorial.domain.model.tutorial.subject.quickclickgame.QuickClickGameRules
+import com.buzbuz.smartautoclicker.core.common.tutorial.domain.model.tutorial.subject.quickclickgame.QuickClickGameTargetState
+import com.buzbuz.smartautoclicker.core.common.tutorial.domain.model.tutorial.subject.quickclickgame.QuickClickGameTargetType
internal class CountBlueValidateRedRules : QuickClickGameRules {
diff --git a/feature/tutorial/src/main/java/com/buzbuz/smartautoclicker/feature/tutorial/data/subjects/quickcountgame/image/FourMovingTargetsInOrderTargetRules.kt b/feature/tutorial/src/main/java/com/buzbuz/smartautoclicker/feature/tutorial/data/subjects/quickcountgame/image/FourMovingTargetsInOrderTargetRules.kt
index c561da40a..b1b5dd3ac 100644
--- a/feature/tutorial/src/main/java/com/buzbuz/smartautoclicker/feature/tutorial/data/subjects/quickcountgame/image/FourMovingTargetsInOrderTargetRules.kt
+++ b/feature/tutorial/src/main/java/com/buzbuz/smartautoclicker/feature/tutorial/data/subjects/quickcountgame/image/FourMovingTargetsInOrderTargetRules.kt
@@ -19,9 +19,9 @@ package com.buzbuz.smartautoclicker.feature.tutorial.data.subjects.quickcountgam
import android.graphics.RectF
import com.buzbuz.smartautoclicker.core.base.extensions.nextPositionIn
-import com.buzbuz.smartautoclicker.core.common.tutorial.domain.model.data.subject.quickclickgame.QuickClickGameRules
-import com.buzbuz.smartautoclicker.core.common.tutorial.domain.model.data.subject.quickclickgame.QuickClickGameTargetState
-import com.buzbuz.smartautoclicker.core.common.tutorial.domain.model.data.subject.quickclickgame.QuickClickGameTargetType
+import com.buzbuz.smartautoclicker.core.common.tutorial.domain.model.tutorial.subject.quickclickgame.QuickClickGameRules
+import com.buzbuz.smartautoclicker.core.common.tutorial.domain.model.tutorial.subject.quickclickgame.QuickClickGameTargetState
+import com.buzbuz.smartautoclicker.core.common.tutorial.domain.model.tutorial.subject.quickclickgame.QuickClickGameTargetType
import kotlin.random.Random
diff --git a/feature/tutorial/src/main/java/com/buzbuz/smartautoclicker/feature/tutorial/data/subjects/quickcountgame/image/OneMovingTargetRules.kt b/feature/tutorial/src/main/java/com/buzbuz/smartautoclicker/feature/tutorial/data/subjects/quickcountgame/image/OneMovingTargetRules.kt
index 9c1b2bb2d..3280c86e8 100644
--- a/feature/tutorial/src/main/java/com/buzbuz/smartautoclicker/feature/tutorial/data/subjects/quickcountgame/image/OneMovingTargetRules.kt
+++ b/feature/tutorial/src/main/java/com/buzbuz/smartautoclicker/feature/tutorial/data/subjects/quickcountgame/image/OneMovingTargetRules.kt
@@ -19,9 +19,9 @@ package com.buzbuz.smartautoclicker.feature.tutorial.data.subjects.quickcountgam
import android.graphics.PointF
import com.buzbuz.smartautoclicker.core.base.extensions.nextFloat
-import com.buzbuz.smartautoclicker.core.common.tutorial.domain.model.data.subject.quickclickgame.QuickClickGameRules
-import com.buzbuz.smartautoclicker.core.common.tutorial.domain.model.data.subject.quickclickgame.QuickClickGameTargetState
-import com.buzbuz.smartautoclicker.core.common.tutorial.domain.model.data.subject.quickclickgame.QuickClickGameTargetType
+import com.buzbuz.smartautoclicker.core.common.tutorial.domain.model.tutorial.subject.quickclickgame.QuickClickGameRules
+import com.buzbuz.smartautoclicker.core.common.tutorial.domain.model.tutorial.subject.quickclickgame.QuickClickGameTargetState
+import com.buzbuz.smartautoclicker.core.common.tutorial.domain.model.tutorial.subject.quickclickgame.QuickClickGameTargetType
import kotlin.random.Random
diff --git a/feature/tutorial/src/main/java/com/buzbuz/smartautoclicker/feature/tutorial/data/subjects/quickcountgame/image/OneStillTargetRules.kt b/feature/tutorial/src/main/java/com/buzbuz/smartautoclicker/feature/tutorial/data/subjects/quickcountgame/image/OneStillTargetRules.kt
index 69f9d7662..bf8127744 100644
--- a/feature/tutorial/src/main/java/com/buzbuz/smartautoclicker/feature/tutorial/data/subjects/quickcountgame/image/OneStillTargetRules.kt
+++ b/feature/tutorial/src/main/java/com/buzbuz/smartautoclicker/feature/tutorial/data/subjects/quickcountgame/image/OneStillTargetRules.kt
@@ -17,9 +17,9 @@
package com.buzbuz.smartautoclicker.feature.tutorial.data.subjects.quickcountgame.image
import android.graphics.PointF
-import com.buzbuz.smartautoclicker.core.common.tutorial.domain.model.data.subject.quickclickgame.QuickClickGameRules
-import com.buzbuz.smartautoclicker.core.common.tutorial.domain.model.data.subject.quickclickgame.QuickClickGameTargetState
-import com.buzbuz.smartautoclicker.core.common.tutorial.domain.model.data.subject.quickclickgame.QuickClickGameTargetType
+import com.buzbuz.smartautoclicker.core.common.tutorial.domain.model.tutorial.subject.quickclickgame.QuickClickGameRules
+import com.buzbuz.smartautoclicker.core.common.tutorial.domain.model.tutorial.subject.quickclickgame.QuickClickGameTargetState
+import com.buzbuz.smartautoclicker.core.common.tutorial.domain.model.tutorial.subject.quickclickgame.QuickClickGameTargetType
internal class OneStillTargetRules : QuickClickGameRules {
diff --git a/feature/tutorial/src/main/java/com/buzbuz/smartautoclicker/feature/tutorial/data/subjects/quickcountgame/image/TwoMovingTargetsPressInOrderRules.kt b/feature/tutorial/src/main/java/com/buzbuz/smartautoclicker/feature/tutorial/data/subjects/quickcountgame/image/TwoMovingTargetsPressInOrderRules.kt
index 0019722a8..93dfdbbed 100644
--- a/feature/tutorial/src/main/java/com/buzbuz/smartautoclicker/feature/tutorial/data/subjects/quickcountgame/image/TwoMovingTargetsPressInOrderRules.kt
+++ b/feature/tutorial/src/main/java/com/buzbuz/smartautoclicker/feature/tutorial/data/subjects/quickcountgame/image/TwoMovingTargetsPressInOrderRules.kt
@@ -20,9 +20,9 @@ import android.graphics.PointF
import android.graphics.RectF
import com.buzbuz.smartautoclicker.core.base.extensions.nextPositionIn
-import com.buzbuz.smartautoclicker.core.common.tutorial.domain.model.data.subject.quickclickgame.QuickClickGameRules
-import com.buzbuz.smartautoclicker.core.common.tutorial.domain.model.data.subject.quickclickgame.QuickClickGameTargetState
-import com.buzbuz.smartautoclicker.core.common.tutorial.domain.model.data.subject.quickclickgame.QuickClickGameTargetType
+import com.buzbuz.smartautoclicker.core.common.tutorial.domain.model.tutorial.subject.quickclickgame.QuickClickGameRules
+import com.buzbuz.smartautoclicker.core.common.tutorial.domain.model.tutorial.subject.quickclickgame.QuickClickGameTargetState
+import com.buzbuz.smartautoclicker.core.common.tutorial.domain.model.tutorial.subject.quickclickgame.QuickClickGameTargetType
import kotlin.random.Random
diff --git a/feature/tutorial/src/main/java/com/buzbuz/smartautoclicker/feature/tutorial/data/subjects/quickcountgame/image/TwoStillTargetsPressAnyRules.kt b/feature/tutorial/src/main/java/com/buzbuz/smartautoclicker/feature/tutorial/data/subjects/quickcountgame/image/TwoStillTargetsPressAnyRules.kt
index d225e63e3..1cb2c92d0 100644
--- a/feature/tutorial/src/main/java/com/buzbuz/smartautoclicker/feature/tutorial/data/subjects/quickcountgame/image/TwoStillTargetsPressAnyRules.kt
+++ b/feature/tutorial/src/main/java/com/buzbuz/smartautoclicker/feature/tutorial/data/subjects/quickcountgame/image/TwoStillTargetsPressAnyRules.kt
@@ -17,9 +17,9 @@
package com.buzbuz.smartautoclicker.feature.tutorial.data.subjects.quickcountgame.image
import android.graphics.PointF
-import com.buzbuz.smartautoclicker.core.common.tutorial.domain.model.data.subject.quickclickgame.QuickClickGameRules
-import com.buzbuz.smartautoclicker.core.common.tutorial.domain.model.data.subject.quickclickgame.QuickClickGameTargetState
-import com.buzbuz.smartautoclicker.core.common.tutorial.domain.model.data.subject.quickclickgame.QuickClickGameTargetType
+import com.buzbuz.smartautoclicker.core.common.tutorial.domain.model.tutorial.subject.quickclickgame.QuickClickGameRules
+import com.buzbuz.smartautoclicker.core.common.tutorial.domain.model.tutorial.subject.quickclickgame.QuickClickGameTargetState
+import com.buzbuz.smartautoclicker.core.common.tutorial.domain.model.tutorial.subject.quickclickgame.QuickClickGameTargetType
internal class TwoStillTargetsPressAnyRules(
private val blueScoreIncrement: Int,
diff --git a/feature/tutorial/src/main/java/com/buzbuz/smartautoclicker/feature/tutorial/data/subjects/quickcountgame/image/TwoStillTargetsPressWhenBothVisibleRules.kt b/feature/tutorial/src/main/java/com/buzbuz/smartautoclicker/feature/tutorial/data/subjects/quickcountgame/image/TwoStillTargetsPressWhenBothVisibleRules.kt
index 937a27bfe..0aeaad945 100644
--- a/feature/tutorial/src/main/java/com/buzbuz/smartautoclicker/feature/tutorial/data/subjects/quickcountgame/image/TwoStillTargetsPressWhenBothVisibleRules.kt
+++ b/feature/tutorial/src/main/java/com/buzbuz/smartautoclicker/feature/tutorial/data/subjects/quickcountgame/image/TwoStillTargetsPressWhenBothVisibleRules.kt
@@ -17,9 +17,9 @@
package com.buzbuz.smartautoclicker.feature.tutorial.data.subjects.quickcountgame.image
import android.graphics.PointF
-import com.buzbuz.smartautoclicker.core.common.tutorial.domain.model.data.subject.quickclickgame.QuickClickGameRules
-import com.buzbuz.smartautoclicker.core.common.tutorial.domain.model.data.subject.quickclickgame.QuickClickGameTargetState
-import com.buzbuz.smartautoclicker.core.common.tutorial.domain.model.data.subject.quickclickgame.QuickClickGameTargetType
+import com.buzbuz.smartautoclicker.core.common.tutorial.domain.model.tutorial.subject.quickclickgame.QuickClickGameRules
+import com.buzbuz.smartautoclicker.core.common.tutorial.domain.model.tutorial.subject.quickclickgame.QuickClickGameTargetState
+import com.buzbuz.smartautoclicker.core.common.tutorial.domain.model.tutorial.subject.quickclickgame.QuickClickGameTargetType
internal class TwoStillTargetsPressWhenBothVisibleRules : QuickClickGameRules {
diff --git a/feature/tutorial/src/main/java/com/buzbuz/smartautoclicker/feature/tutorial/data/subjects/quickcountgame/image/TwoStillTargetsPressWhenOneVisibleRules.kt b/feature/tutorial/src/main/java/com/buzbuz/smartautoclicker/feature/tutorial/data/subjects/quickcountgame/image/TwoStillTargetsPressWhenOneVisibleRules.kt
index a82fbc509..08d4b6b12 100644
--- a/feature/tutorial/src/main/java/com/buzbuz/smartautoclicker/feature/tutorial/data/subjects/quickcountgame/image/TwoStillTargetsPressWhenOneVisibleRules.kt
+++ b/feature/tutorial/src/main/java/com/buzbuz/smartautoclicker/feature/tutorial/data/subjects/quickcountgame/image/TwoStillTargetsPressWhenOneVisibleRules.kt
@@ -17,9 +17,9 @@
package com.buzbuz.smartautoclicker.feature.tutorial.data.subjects.quickcountgame.image
import android.graphics.PointF
-import com.buzbuz.smartautoclicker.core.common.tutorial.domain.model.data.subject.quickclickgame.QuickClickGameRules
-import com.buzbuz.smartautoclicker.core.common.tutorial.domain.model.data.subject.quickclickgame.QuickClickGameTargetState
-import com.buzbuz.smartautoclicker.core.common.tutorial.domain.model.data.subject.quickclickgame.QuickClickGameTargetType
+import com.buzbuz.smartautoclicker.core.common.tutorial.domain.model.tutorial.subject.quickclickgame.QuickClickGameRules
+import com.buzbuz.smartautoclicker.core.common.tutorial.domain.model.tutorial.subject.quickclickgame.QuickClickGameTargetState
+import com.buzbuz.smartautoclicker.core.common.tutorial.domain.model.tutorial.subject.quickclickgame.QuickClickGameTargetType
internal class TwoStillTargetsPressWhenOneVisibleRules : QuickClickGameRules {
diff --git a/feature/tutorial/src/main/java/com/buzbuz/smartautoclicker/feature/tutorial/data/subjects/quickcountgame/number/OneStillChangingNumberClickWhenOverRules.kt b/feature/tutorial/src/main/java/com/buzbuz/smartautoclicker/feature/tutorial/data/subjects/quickcountgame/number/OneStillChangingNumberClickWhenOverRules.kt
index 18d0f8f2d..d5cfd8971 100644
--- a/feature/tutorial/src/main/java/com/buzbuz/smartautoclicker/feature/tutorial/data/subjects/quickcountgame/number/OneStillChangingNumberClickWhenOverRules.kt
+++ b/feature/tutorial/src/main/java/com/buzbuz/smartautoclicker/feature/tutorial/data/subjects/quickcountgame/number/OneStillChangingNumberClickWhenOverRules.kt
@@ -17,9 +17,9 @@
package com.buzbuz.smartautoclicker.feature.tutorial.data.subjects.quickcountgame.number
import android.graphics.PointF
-import com.buzbuz.smartautoclicker.core.common.tutorial.domain.model.data.subject.quickclickgame.QuickClickGameRules
-import com.buzbuz.smartautoclicker.core.common.tutorial.domain.model.data.subject.quickclickgame.QuickClickGameTargetState
-import com.buzbuz.smartautoclicker.core.common.tutorial.domain.model.data.subject.quickclickgame.QuickClickGameTargetType
+import com.buzbuz.smartautoclicker.core.common.tutorial.domain.model.tutorial.subject.quickclickgame.QuickClickGameRules
+import com.buzbuz.smartautoclicker.core.common.tutorial.domain.model.tutorial.subject.quickclickgame.QuickClickGameTargetState
+import com.buzbuz.smartautoclicker.core.common.tutorial.domain.model.tutorial.subject.quickclickgame.QuickClickGameTargetType
import kotlin.random.Random
internal class OneStillChangingNumberClickWhenOverRules(
diff --git a/feature/tutorial/src/main/java/com/buzbuz/smartautoclicker/feature/tutorial/data/subjects/quickcountgame/text/FourStillChangingTextRules.kt b/feature/tutorial/src/main/java/com/buzbuz/smartautoclicker/feature/tutorial/data/subjects/quickcountgame/text/FourStillChangingTextRules.kt
index 95afd8177..196e29418 100644
--- a/feature/tutorial/src/main/java/com/buzbuz/smartautoclicker/feature/tutorial/data/subjects/quickcountgame/text/FourStillChangingTextRules.kt
+++ b/feature/tutorial/src/main/java/com/buzbuz/smartautoclicker/feature/tutorial/data/subjects/quickcountgame/text/FourStillChangingTextRules.kt
@@ -17,9 +17,9 @@
package com.buzbuz.smartautoclicker.feature.tutorial.data.subjects.quickcountgame.text
import android.graphics.PointF
-import com.buzbuz.smartautoclicker.core.common.tutorial.domain.model.data.subject.quickclickgame.QuickClickGameRules
-import com.buzbuz.smartautoclicker.core.common.tutorial.domain.model.data.subject.quickclickgame.QuickClickGameTargetState
-import com.buzbuz.smartautoclicker.core.common.tutorial.domain.model.data.subject.quickclickgame.QuickClickGameTargetType
+import com.buzbuz.smartautoclicker.core.common.tutorial.domain.model.tutorial.subject.quickclickgame.QuickClickGameRules
+import com.buzbuz.smartautoclicker.core.common.tutorial.domain.model.tutorial.subject.quickclickgame.QuickClickGameTargetState
+import com.buzbuz.smartautoclicker.core.common.tutorial.domain.model.tutorial.subject.quickclickgame.QuickClickGameTargetType
internal class FourStillChangingTextRules : QuickClickGameRules {
diff --git a/feature/tutorial/src/main/java/com/buzbuz/smartautoclicker/feature/tutorial/data/subjects/quickcountgame/text/OneStillChangingTextRules.kt b/feature/tutorial/src/main/java/com/buzbuz/smartautoclicker/feature/tutorial/data/subjects/quickcountgame/text/OneStillChangingTextRules.kt
index d6f13e634..58063ad66 100644
--- a/feature/tutorial/src/main/java/com/buzbuz/smartautoclicker/feature/tutorial/data/subjects/quickcountgame/text/OneStillChangingTextRules.kt
+++ b/feature/tutorial/src/main/java/com/buzbuz/smartautoclicker/feature/tutorial/data/subjects/quickcountgame/text/OneStillChangingTextRules.kt
@@ -17,9 +17,9 @@
package com.buzbuz.smartautoclicker.feature.tutorial.data.subjects.quickcountgame.text
import android.graphics.PointF
-import com.buzbuz.smartautoclicker.core.common.tutorial.domain.model.data.subject.quickclickgame.QuickClickGameRules
-import com.buzbuz.smartautoclicker.core.common.tutorial.domain.model.data.subject.quickclickgame.QuickClickGameTargetState
-import com.buzbuz.smartautoclicker.core.common.tutorial.domain.model.data.subject.quickclickgame.QuickClickGameTargetType
+import com.buzbuz.smartautoclicker.core.common.tutorial.domain.model.tutorial.subject.quickclickgame.QuickClickGameRules
+import com.buzbuz.smartautoclicker.core.common.tutorial.domain.model.tutorial.subject.quickclickgame.QuickClickGameTargetState
+import com.buzbuz.smartautoclicker.core.common.tutorial.domain.model.tutorial.subject.quickclickgame.QuickClickGameTargetType
internal class OneStillChangingTextRules : QuickClickGameRules {
diff --git a/feature/tutorial/src/main/java/com/buzbuz/smartautoclicker/feature/tutorial/domain/model/TutorialItem.kt b/feature/tutorial/src/main/java/com/buzbuz/smartautoclicker/feature/tutorial/domain/model/TutorialItem.kt
index 3836c413a..51f66a641 100644
--- a/feature/tutorial/src/main/java/com/buzbuz/smartautoclicker/feature/tutorial/domain/model/TutorialItem.kt
+++ b/feature/tutorial/src/main/java/com/buzbuz/smartautoclicker/feature/tutorial/domain/model/TutorialItem.kt
@@ -16,8 +16,8 @@
*/
package com.buzbuz.smartautoclicker.feature.tutorial.domain.model
-import com.buzbuz.smartautoclicker.core.common.tutorial.domain.model.data.Tutorial
-import com.buzbuz.smartautoclicker.core.common.tutorial.domain.model.data.TutorialInfo
+import com.buzbuz.smartautoclicker.core.common.tutorial.domain.model.tutorial.Tutorial
+import com.buzbuz.smartautoclicker.core.common.tutorial.domain.model.tutorial.TutorialInfo
interface TutorialItem {
diff --git a/feature/tutorial/src/main/java/com/buzbuz/smartautoclicker/feature/tutorial/navigation/TutorialNavigatorImpl.kt b/feature/tutorial/src/main/java/com/buzbuz/smartautoclicker/feature/tutorial/navigation/TutorialNavigatorImpl.kt
index 7143bc80a..90d95eacc 100644
--- a/feature/tutorial/src/main/java/com/buzbuz/smartautoclicker/feature/tutorial/navigation/TutorialNavigatorImpl.kt
+++ b/feature/tutorial/src/main/java/com/buzbuz/smartautoclicker/feature/tutorial/navigation/TutorialNavigatorImpl.kt
@@ -22,9 +22,11 @@ import android.content.Intent
import com.buzbuz.smartautoclicker.core.common.navigation.TutorialNavigator
import com.buzbuz.smartautoclicker.core.common.overlays.manager.OverlayManager.Companion.showAsOverlay
import com.buzbuz.smartautoclicker.core.common.tutorial.domain.TutorialRepository
-import com.buzbuz.smartautoclicker.core.common.tutorial.domain.model.data.Tip
+import com.buzbuz.smartautoclicker.core.common.tutorial.domain.model.Tip
+import com.buzbuz.smartautoclicker.feature.tutorial.domain.model.TutorialSlideshow
import com.buzbuz.smartautoclicker.feature.tutorial.ui.TutorialActivity
import com.buzbuz.smartautoclicker.feature.tutorial.ui.dialogs.createStopWithVolumeDownTutorialDialog
+import com.buzbuz.smartautoclicker.feature.tutorial.ui.slideshow.createTutorialSlideshowDialog
import javax.inject.Inject
@@ -42,7 +44,27 @@ internal class TutorialNavigatorImpl @Inject constructor(
tutorialRepository = tutorialRepository,
onDismissed = onDismissed,
).showAsOverlay()
+
+ Tip.IMAGE_CAPTURE -> context.createTutorialSlideshowDialog(
+ slideshowType = TutorialSlideshow.Type.IMAGE_CONDITION_CAPTURE,
+ onDismissed = onDismissed,
+ )?.showAsOverlay()
+
+ Tip.IMAGE_DETECTION_AREA -> context.createTutorialSlideshowDialog(
+ slideshowType = TutorialSlideshow.Type.IMAGE_CONDITION_DETECTION_AREA,
+ pageIndex = 1,
+ onDismissed = onDismissed,
+ )?.showAsOverlay()
+
+ Tip.NUMBER_DETECTION_AREA -> context.createTutorialSlideshowDialog(
+ slideshowType = TutorialSlideshow.Type.NUMBER_CONDITION_DETECTION_AREA,
+ onDismissed = onDismissed,
+ )?.showAsOverlay()
+
+ Tip.TEXT_DETECTION_AREA -> context.createTutorialSlideshowDialog(
+ slideshowType = TutorialSlideshow.Type.TEXT_CONDITION_DETECTION_AREA,
+ onDismissed = onDismissed,
+ )?.showAsOverlay()
}
}
-
}
diff --git a/feature/tutorial/src/main/java/com/buzbuz/smartautoclicker/feature/tutorial/ui/dialogs/StopWithVolumeDownTipDialog.kt b/feature/tutorial/src/main/java/com/buzbuz/smartautoclicker/feature/tutorial/ui/dialogs/StopWithVolumeDownTipDialog.kt
index 2acb4661c..84be04f9f 100644
--- a/feature/tutorial/src/main/java/com/buzbuz/smartautoclicker/feature/tutorial/ui/dialogs/StopWithVolumeDownTipDialog.kt
+++ b/feature/tutorial/src/main/java/com/buzbuz/smartautoclicker/feature/tutorial/ui/dialogs/StopWithVolumeDownTipDialog.kt
@@ -21,7 +21,7 @@ import android.view.LayoutInflater
import androidx.appcompat.app.AlertDialog
import com.buzbuz.smartautoclicker.core.common.tutorial.domain.TutorialRepository
-import com.buzbuz.smartautoclicker.core.common.tutorial.domain.model.data.Tip
+import com.buzbuz.smartautoclicker.core.common.tutorial.domain.model.Tip
import com.buzbuz.smartautoclicker.core.ui.utils.getDynamicColorsContext
import com.buzbuz.smartautoclicker.feature.tutorial.R
import com.buzbuz.smartautoclicker.feature.tutorial.databinding.DialogStopWithVolumeDownBinding
diff --git a/feature/tutorial/src/main/java/com/buzbuz/smartautoclicker/feature/tutorial/ui/game/clickcount/ClickCountGameFragment.kt b/feature/tutorial/src/main/java/com/buzbuz/smartautoclicker/feature/tutorial/ui/game/clickcount/ClickCountGameFragment.kt
index 8dff76125..71884aadb 100644
--- a/feature/tutorial/src/main/java/com/buzbuz/smartautoclicker/feature/tutorial/ui/game/clickcount/ClickCountGameFragment.kt
+++ b/feature/tutorial/src/main/java/com/buzbuz/smartautoclicker/feature/tutorial/ui/game/clickcount/ClickCountGameFragment.kt
@@ -34,8 +34,8 @@ import androidx.lifecycle.repeatOnLifecycle
import androidx.navigation.fragment.findNavController
import com.buzbuz.smartautoclicker.core.common.overlays.manager.OverlayManager
-import com.buzbuz.smartautoclicker.core.common.tutorial.domain.model.data.subject.quickclickgame.QuickClickGameTargetState
-import com.buzbuz.smartautoclicker.core.common.tutorial.domain.model.data.subject.quickclickgame.QuickClickGameTargetType
+import com.buzbuz.smartautoclicker.core.common.tutorial.domain.model.tutorial.subject.quickclickgame.QuickClickGameTargetState
+import com.buzbuz.smartautoclicker.core.common.tutorial.domain.model.tutorial.subject.quickclickgame.QuickClickGameTargetType
import com.buzbuz.smartautoclicker.core.ui.utils.getDynamicColorsContext
import com.buzbuz.smartautoclicker.feature.tutorial.R
import com.buzbuz.smartautoclicker.feature.tutorial.databinding.DialogTutorialSuccessBinding
diff --git a/feature/tutorial/src/main/java/com/buzbuz/smartautoclicker/feature/tutorial/ui/game/clickcount/ClickCountGameUiState.kt b/feature/tutorial/src/main/java/com/buzbuz/smartautoclicker/feature/tutorial/ui/game/clickcount/ClickCountGameUiState.kt
index 4f409902d..c7f3fff44 100644
--- a/feature/tutorial/src/main/java/com/buzbuz/smartautoclicker/feature/tutorial/ui/game/clickcount/ClickCountGameUiState.kt
+++ b/feature/tutorial/src/main/java/com/buzbuz/smartautoclicker/feature/tutorial/ui/game/clickcount/ClickCountGameUiState.kt
@@ -17,8 +17,8 @@
package com.buzbuz.smartautoclicker.feature.tutorial.ui.game.clickcount
import androidx.annotation.StringRes
-import com.buzbuz.smartautoclicker.core.common.tutorial.domain.model.data.subject.quickclickgame.QuickClickGameTargetState
-import com.buzbuz.smartautoclicker.core.common.tutorial.domain.model.data.subject.quickclickgame.QuickClickGameTargetType
+import com.buzbuz.smartautoclicker.core.common.tutorial.domain.model.tutorial.subject.quickclickgame.QuickClickGameTargetState
+import com.buzbuz.smartautoclicker.core.common.tutorial.domain.model.tutorial.subject.quickclickgame.QuickClickGameTargetType
data class ClickCountGameUiState(
@field:StringRes val instructionsResId: Int,
diff --git a/feature/tutorial/src/main/java/com/buzbuz/smartautoclicker/feature/tutorial/ui/game/clickcount/ClickCountGameViewModel.kt b/feature/tutorial/src/main/java/com/buzbuz/smartautoclicker/feature/tutorial/ui/game/clickcount/ClickCountGameViewModel.kt
index 050cd0850..9aa354a99 100644
--- a/feature/tutorial/src/main/java/com/buzbuz/smartautoclicker/feature/tutorial/ui/game/clickcount/ClickCountGameViewModel.kt
+++ b/feature/tutorial/src/main/java/com/buzbuz/smartautoclicker/feature/tutorial/ui/game/clickcount/ClickCountGameViewModel.kt
@@ -21,8 +21,8 @@ import androidx.lifecycle.viewModelScope
import com.buzbuz.smartautoclicker.core.common.tutorial.domain.TutorialRepository
import com.buzbuz.smartautoclicker.core.common.tutorial.domain.TutorialSubjectController
-import com.buzbuz.smartautoclicker.core.common.tutorial.domain.model.data.step.TutorialStep
-import com.buzbuz.smartautoclicker.core.common.tutorial.domain.model.data.subject.quickclickgame.QuickClickGameTargetType
+import com.buzbuz.smartautoclicker.core.common.tutorial.domain.model.tutorial.step.TutorialStep
+import com.buzbuz.smartautoclicker.core.common.tutorial.domain.model.tutorial.subject.quickclickgame.QuickClickGameTargetType
import com.buzbuz.smartautoclicker.core.common.tutorial.domain.model.state.TutorialState
import com.buzbuz.smartautoclicker.core.common.tutorial.domain.model.state.TutorialSubjectState
import com.buzbuz.smartautoclicker.core.processing.domain.SmartProcessingRepository
diff --git a/feature/tutorial/src/main/java/com/buzbuz/smartautoclicker/feature/tutorial/ui/game/timing/TimingGameViewModel.kt b/feature/tutorial/src/main/java/com/buzbuz/smartautoclicker/feature/tutorial/ui/game/timing/TimingGameViewModel.kt
index fda070bbc..262cd4023 100644
--- a/feature/tutorial/src/main/java/com/buzbuz/smartautoclicker/feature/tutorial/ui/game/timing/TimingGameViewModel.kt
+++ b/feature/tutorial/src/main/java/com/buzbuz/smartautoclicker/feature/tutorial/ui/game/timing/TimingGameViewModel.kt
@@ -21,7 +21,7 @@ import androidx.lifecycle.viewModelScope
import com.buzbuz.smartautoclicker.core.common.tutorial.domain.TutorialRepository
import com.buzbuz.smartautoclicker.core.common.tutorial.domain.TutorialSubjectController
-import com.buzbuz.smartautoclicker.core.common.tutorial.domain.model.data.step.TutorialStep
+import com.buzbuz.smartautoclicker.core.common.tutorial.domain.model.tutorial.step.TutorialStep
import com.buzbuz.smartautoclicker.core.common.tutorial.domain.model.state.TutorialState
import com.buzbuz.smartautoclicker.core.common.tutorial.domain.model.state.TutorialSubjectState
import com.buzbuz.smartautoclicker.core.processing.domain.SmartProcessingRepository
diff --git a/feature/tutorial/src/main/java/com/buzbuz/smartautoclicker/feature/tutorial/ui/overlay/TutorialFullscreenViewModel.kt b/feature/tutorial/src/main/java/com/buzbuz/smartautoclicker/feature/tutorial/ui/overlay/TutorialFullscreenViewModel.kt
index 73dc021f9..97dccba48 100644
--- a/feature/tutorial/src/main/java/com/buzbuz/smartautoclicker/feature/tutorial/ui/overlay/TutorialFullscreenViewModel.kt
+++ b/feature/tutorial/src/main/java/com/buzbuz/smartautoclicker/feature/tutorial/ui/overlay/TutorialFullscreenViewModel.kt
@@ -21,8 +21,8 @@ import androidx.lifecycle.viewModelScope
import com.buzbuz.smartautoclicker.core.display.config.DisplayConfigManager
import com.buzbuz.smartautoclicker.core.common.tutorial.domain.TutorialRepository
-import com.buzbuz.smartautoclicker.core.common.tutorial.domain.model.data.step.TutorialStep
-import com.buzbuz.smartautoclicker.core.common.tutorial.domain.model.data.step.TutorialStepEndCondition
+import com.buzbuz.smartautoclicker.core.common.tutorial.domain.model.tutorial.step.TutorialStep
+import com.buzbuz.smartautoclicker.core.common.tutorial.domain.model.tutorial.step.TutorialStepEndCondition
import com.buzbuz.smartautoclicker.core.common.tutorial.domain.model.state.TutorialState
import com.buzbuz.smartautoclicker.core.common.tutorial.domain.MonitoredViewsManager
diff --git a/feature/tutorial/src/main/java/com/buzbuz/smartautoclicker/feature/tutorial/ui/slideshow/TutorialSlideshowDialog.kt b/feature/tutorial/src/main/java/com/buzbuz/smartautoclicker/feature/tutorial/ui/slideshow/TutorialSlideshowDialog.kt
new file mode 100644
index 000000000..f1de1046c
--- /dev/null
+++ b/feature/tutorial/src/main/java/com/buzbuz/smartautoclicker/feature/tutorial/ui/slideshow/TutorialSlideshowDialog.kt
@@ -0,0 +1,107 @@
+/*
+ * Copyright (C) 2026 Kevin Buzeau
+ *
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program. If not, see .
+ */
+package com.buzbuz.smartautoclicker.feature.tutorial.ui.slideshow
+
+import android.content.Context
+import android.util.Log
+import android.view.LayoutInflater
+import androidx.appcompat.app.AlertDialog
+import androidx.viewpager2.widget.ViewPager2
+
+import com.buzbuz.smartautoclicker.core.ui.utils.getDynamicColorsContext
+import com.buzbuz.smartautoclicker.feature.tutorial.R
+import com.buzbuz.smartautoclicker.feature.tutorial.data.mapping.toTutorialSlideshow
+import com.buzbuz.smartautoclicker.feature.tutorial.databinding.DialogTutorialSlideshowBinding
+import com.buzbuz.smartautoclicker.feature.tutorial.domain.model.TutorialSlideshow
+
+import com.google.android.material.dialog.MaterialAlertDialogBuilder
+
+internal fun Context.createTutorialSlideshowDialog(
+ slideshowType: TutorialSlideshow.Type,
+ pageIndex: Int,
+ onDismissed: (() -> Unit)?,
+): AlertDialog? = createDialog(slideshowType.toTutorialSlideshow(), IntRange(pageIndex, pageIndex), onDismissed)
+
+internal fun Context.createTutorialSlideshowDialog(
+ slideshowType: TutorialSlideshow.Type,
+ pageRange: IntRange? = null,
+ onDismissed: (() -> Unit)?,
+): AlertDialog? = createDialog(slideshowType.toTutorialSlideshow(), pageRange, onDismissed)
+
+private fun Context.createDialog(
+ slideshow: TutorialSlideshow,
+ pageRange: IntRange?,
+ onDismissed: (() -> Unit)?,
+): AlertDialog? {
+
+ val pages = pageRange ?: IntRange(0, slideshow.slideshowItems.lastIndex)
+ if (pageRange != null && (pageRange.first < 0 || pageRange.last > slideshow.slideshowItems.lastIndex)) {
+ Log.e(TAG, "Can't create slideshow dialog, page range is invalid: $pageRange; " +
+ "slideshowItems=${slideshow.slideshowItems.size}")
+ return null
+ }
+
+ val dialogContext = getDynamicColorsContext(R.style.AppTheme)
+ val dialogViewBinding = DialogTutorialSlideshowBinding.inflate(LayoutInflater.from(dialogContext))
+ val dialog = MaterialAlertDialogBuilder(dialogContext)
+ .setView(dialogViewBinding.root)
+ .setOnDismissListener { onDismissed?.invoke() }
+ .create()
+
+ dialogViewBinding.bind(
+ slideshow = slideshow,
+ pageRange = pages,
+ onCloseClicked = { dialog.dismiss() },
+ )
+
+ return dialog
+}
+
+private fun DialogTutorialSlideshowBinding.bind(
+ slideshow: TutorialSlideshow,
+ pageRange: IntRange,
+ onCloseClicked: () -> Unit,
+) {
+ titleSlideshow.setText(slideshow.nameRes)
+
+ val adapter = SlideshowPagerAdapter(slideshow.slideshowItems.subList(pageRange.first, pageRange.last + 1))
+ viewPager.adapter = adapter
+ viewPager.registerOnPageChangeCallback(object : ViewPager2.OnPageChangeCallback() {
+ override fun onPageSelected(position: Int) {
+ updateButtonLabel(position, adapter.itemCount)
+ }
+ })
+ updateButtonLabel(0, adapter.itemCount)
+
+ buttonNext.setOnClickListener {
+ val currentItem = viewPager.currentItem
+ if (currentItem < adapter.itemCount - 1) {
+ viewPager.currentItem = currentItem + 1
+ } else {
+ onCloseClicked()
+ }
+ }
+}
+
+private fun DialogTutorialSlideshowBinding.updateButtonLabel(currentPage: Int, pageCount: Int) {
+ val isLastPage = currentPage == pageCount - 1
+ buttonNext.setText(
+ if (isLastPage) R.string.button_text_tutorial_close else R.string.button_text_tutorial_next
+ )
+}
+
+private const val TAG = "TutorialSlideshowDialog"
\ No newline at end of file
diff --git a/feature/tutorial/src/main/res/layout/dialog_tutorial_slideshow.xml b/feature/tutorial/src/main/res/layout/dialog_tutorial_slideshow.xml
new file mode 100644
index 000000000..02461d33d
--- /dev/null
+++ b/feature/tutorial/src/main/res/layout/dialog_tutorial_slideshow.xml
@@ -0,0 +1,61 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/feature/tutorial/src/main/res/layout/item_tutorial_slideshow_page.xml b/feature/tutorial/src/main/res/layout/item_tutorial_slideshow_page.xml
index 573922b4f..9ef53845e 100644
--- a/feature/tutorial/src/main/res/layout/item_tutorial_slideshow_page.xml
+++ b/feature/tutorial/src/main/res/layout/item_tutorial_slideshow_page.xml
@@ -20,7 +20,9 @@
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
- android:layout_height="match_parent">
+ android:layout_height="match_parent"
+ android:scrollbars="vertical"
+ android:fadeScrollbars="true">