diff --git a/.github/workflows/pr-checks.yml b/.github/workflows/pr-checks.yml
index 01464f73a9..8fe88a0cb5 100644
--- a/.github/workflows/pr-checks.yml
+++ b/.github/workflows/pr-checks.yml
@@ -85,7 +85,9 @@ jobs:
uses: ./.github/workflows/run-unit-tests.yml
secrets: inherit
with:
- modules: feature:dashboard
+ modules: |
+ feature:dashboard
+ feature:troubleshooting
reportsId: dashboard
face-unit-tests:
diff --git a/feature/dashboard/build.gradle.kts b/feature/dashboard/build.gradle.kts
index 348085ce65..1eb13c18c3 100644
--- a/feature/dashboard/build.gradle.kts
+++ b/feature/dashboard/build.gradle.kts
@@ -18,12 +18,10 @@ dependencies {
implementation(project(":infra:auth-store"))
implementation(project(":infra:auth-logic"))
implementation(project(":infra:recent-user-activity"))
- implementation(project(":infra:license"))
implementation(project(":feature:consent"))
implementation(project(":feature:login"))
-
- implementation(project(":fingerprint:infra:scanner"))
+ implementation(project(":feature:troubleshooting"))
implementation(libs.fuzzywuzzy.core)
diff --git a/feature/dashboard/src/main/java/com/simprints/feature/dashboard/requestlogin/RequestLoginFragment.kt b/feature/dashboard/src/main/java/com/simprints/feature/dashboard/requestlogin/RequestLoginFragment.kt
index c2d02a7485..26f0ca0765 100644
--- a/feature/dashboard/src/main/java/com/simprints/feature/dashboard/requestlogin/RequestLoginFragment.kt
+++ b/feature/dashboard/src/main/java/com/simprints/feature/dashboard/requestlogin/RequestLoginFragment.kt
@@ -11,7 +11,7 @@ import com.simprints.core.DeviceID
import com.simprints.core.PackageVersionName
import com.simprints.feature.dashboard.R
import com.simprints.feature.dashboard.databinding.FragmentRequestLoginBinding
-import com.simprints.feature.dashboard.settings.troubleshooting.AutoResettingClickCounter
+import com.simprints.feature.troubleshooting.AutoResettingClickCounter
import com.simprints.infra.authstore.AuthStore
import com.simprints.infra.uibase.viewbinding.viewBinding
import dagger.hilt.android.AndroidEntryPoint
@@ -51,7 +51,7 @@ internal class RequestLoginFragment : Fragment(R.layout.fragment_request_login)
binding.loginImageViewLogo.setOnClickListener {
if (clickCounter.handleClick(lifecycleScope)) {
- findNavController().navigate(R.id.action_requestLoginFragment_to_troubleshootingFragment)
+ findNavController().navigate(R.id.action_aboutFragment_to_troubleshooting)
}
}
}
diff --git a/feature/dashboard/src/main/java/com/simprints/feature/dashboard/settings/about/AboutFragment.kt b/feature/dashboard/src/main/java/com/simprints/feature/dashboard/settings/about/AboutFragment.kt
index 198a194391..805c5bacb9 100644
--- a/feature/dashboard/src/main/java/com/simprints/feature/dashboard/settings/about/AboutFragment.kt
+++ b/feature/dashboard/src/main/java/com/simprints/feature/dashboard/settings/about/AboutFragment.kt
@@ -140,7 +140,7 @@ internal class AboutFragment : PreferenceFragmentCompat() {
}
private fun openTroubleshooting() {
- findNavController().navigate(R.id.action_aboutFragment_to_troubleshootingFragment)
+ findNavController().navigate(R.id.action_aboutFragment_to_troubleshooting)
}
private fun getAppVersionPreference(): Preference? =
diff --git a/feature/dashboard/src/main/java/com/simprints/feature/dashboard/settings/about/AboutViewModel.kt b/feature/dashboard/src/main/java/com/simprints/feature/dashboard/settings/about/AboutViewModel.kt
index 8b3277942d..6157bd9652 100644
--- a/feature/dashboard/src/main/java/com/simprints/feature/dashboard/settings/about/AboutViewModel.kt
+++ b/feature/dashboard/src/main/java/com/simprints/feature/dashboard/settings/about/AboutViewModel.kt
@@ -8,7 +8,7 @@ import com.simprints.core.livedata.LiveDataEvent
import com.simprints.core.livedata.LiveDataEventWithContent
import com.simprints.core.livedata.send
import com.simprints.feature.dashboard.logout.usecase.LogoutUseCase
-import com.simprints.feature.dashboard.settings.troubleshooting.AutoResettingClickCounter
+import com.simprints.feature.troubleshooting.AutoResettingClickCounter
import com.simprints.infra.config.store.models.GeneralConfiguration
import com.simprints.infra.config.store.models.SettingsPasswordConfig
import com.simprints.infra.config.store.models.canSyncDataToSimprints
diff --git a/feature/dashboard/src/main/res/layout/fragment_troubleshooting_stub.xml b/feature/dashboard/src/main/res/layout/fragment_troubleshooting_stub.xml
deleted file mode 100644
index 62a3c7a877..0000000000
--- a/feature/dashboard/src/main/res/layout/fragment_troubleshooting_stub.xml
+++ /dev/null
@@ -1,12 +0,0 @@
-
-
-
-
-
-
diff --git a/feature/dashboard/src/main/res/navigation/graph_dashboard.xml b/feature/dashboard/src/main/res/navigation/graph_dashboard.xml
index dfad2fd3de..534238df29 100644
--- a/feature/dashboard/src/main/res/navigation/graph_dashboard.xml
+++ b/feature/dashboard/src/main/res/navigation/graph_dashboard.xml
@@ -7,6 +7,7 @@
+
+ android:id="@+id/action_requestLoginFragment_to_troubleshooting"
+ app:destination="@id/graph_troubleshooting" />
-
-
-
-
-
-
+ android:id="@+id/action_aboutFragment_to_troubleshooting"
+ app:destination="@id/graph_troubleshooting" />
+
+
+
diff --git a/feature/dashboard/src/main/java/com/simprints/feature/dashboard/settings/troubleshooting/AutoResettingClickCounter.kt b/feature/troubleshooting/src/main/java/com/simprints/feature/troubleshooting/AutoResettingClickCounter.kt
similarity index 91%
rename from feature/dashboard/src/main/java/com/simprints/feature/dashboard/settings/troubleshooting/AutoResettingClickCounter.kt
rename to feature/troubleshooting/src/main/java/com/simprints/feature/troubleshooting/AutoResettingClickCounter.kt
index 472da85b8d..a3c537a713 100644
--- a/feature/dashboard/src/main/java/com/simprints/feature/dashboard/settings/troubleshooting/AutoResettingClickCounter.kt
+++ b/feature/troubleshooting/src/main/java/com/simprints/feature/troubleshooting/AutoResettingClickCounter.kt
@@ -1,4 +1,4 @@
-package com.simprints.feature.dashboard.settings.troubleshooting
+package com.simprints.feature.troubleshooting
import kotlinx.coroutines.CoroutineScope
import kotlinx.coroutines.Job
@@ -7,7 +7,7 @@ import kotlinx.coroutines.isActive
import kotlinx.coroutines.launch
import java.util.concurrent.atomic.AtomicInteger
-internal class AutoResettingClickCounter(
+class AutoResettingClickCounter(
private val requiredClicks: Int = DEFAULT_CLICKS_FOR_TROUBLESHOOTING,
private val resetDelayMs: Long = DEFAULT_CLICK_COUNTER_RESET_MS,
) {
diff --git a/feature/dashboard/src/main/java/com/simprints/feature/dashboard/settings/troubleshooting/TroubleshootingFragment.kt b/feature/troubleshooting/src/main/java/com/simprints/feature/troubleshooting/TroubleshootingFragment.kt
similarity index 85%
rename from feature/dashboard/src/main/java/com/simprints/feature/dashboard/settings/troubleshooting/TroubleshootingFragment.kt
rename to feature/troubleshooting/src/main/java/com/simprints/feature/troubleshooting/TroubleshootingFragment.kt
index ad18f5b6fd..de11fe6e70 100644
--- a/feature/dashboard/src/main/java/com/simprints/feature/dashboard/settings/troubleshooting/TroubleshootingFragment.kt
+++ b/feature/troubleshooting/src/main/java/com/simprints/feature/troubleshooting/TroubleshootingFragment.kt
@@ -1,12 +1,11 @@
-package com.simprints.feature.dashboard.settings.troubleshooting
+package com.simprints.feature.troubleshooting
import android.os.Bundle
import android.view.View
import androidx.fragment.app.Fragment
import androidx.navigation.fragment.findNavController
import com.google.android.material.tabs.TabLayoutMediator
-import com.simprints.feature.dashboard.R
-import com.simprints.feature.dashboard.databinding.FragmentTroubleshootingBinding
+import com.simprints.feature.troubleshooting.databinding.FragmentTroubleshootingBinding
import com.simprints.infra.uibase.viewbinding.viewBinding
import dagger.hilt.android.AndroidEntryPoint
diff --git a/feature/dashboard/src/main/java/com/simprints/feature/dashboard/settings/troubleshooting/TroubleshootingPagerAdapter.kt b/feature/troubleshooting/src/main/java/com/simprints/feature/troubleshooting/TroubleshootingPagerAdapter.kt
similarity index 71%
rename from feature/dashboard/src/main/java/com/simprints/feature/dashboard/settings/troubleshooting/TroubleshootingPagerAdapter.kt
rename to feature/troubleshooting/src/main/java/com/simprints/feature/troubleshooting/TroubleshootingPagerAdapter.kt
index 10c4c1b742..ee12930157 100644
--- a/feature/dashboard/src/main/java/com/simprints/feature/dashboard/settings/troubleshooting/TroubleshootingPagerAdapter.kt
+++ b/feature/troubleshooting/src/main/java/com/simprints/feature/troubleshooting/TroubleshootingPagerAdapter.kt
@@ -1,11 +1,11 @@
-package com.simprints.feature.dashboard.settings.troubleshooting
+package com.simprints.feature.troubleshooting
import androidx.fragment.app.Fragment
import androidx.fragment.app.FragmentActivity
import androidx.viewpager2.adapter.FragmentStateAdapter
-import com.simprints.feature.dashboard.settings.troubleshooting.events.EventScopeLogFragment
-import com.simprints.feature.dashboard.settings.troubleshooting.overview.OverviewFragment
-import com.simprints.feature.dashboard.settings.troubleshooting.workers.WorkerLogFragment
+import com.simprints.feature.troubleshooting.events.EventScopeLogFragment
+import com.simprints.feature.troubleshooting.overview.OverviewFragment
+import com.simprints.feature.troubleshooting.workers.WorkerLogFragment
import com.simprints.infra.uibase.annotations.ExcludedFromGeneratedTestCoverageReports
@ExcludedFromGeneratedTestCoverageReports("UI code")
diff --git a/feature/dashboard/src/main/java/com/simprints/feature/dashboard/settings/troubleshooting/adapter/TroubleshootingItemViewData.kt b/feature/troubleshooting/src/main/java/com/simprints/feature/troubleshooting/adapter/TroubleshootingItemViewData.kt
similarity index 68%
rename from feature/dashboard/src/main/java/com/simprints/feature/dashboard/settings/troubleshooting/adapter/TroubleshootingItemViewData.kt
rename to feature/troubleshooting/src/main/java/com/simprints/feature/troubleshooting/adapter/TroubleshootingItemViewData.kt
index 6ea78b8b4f..e0834926f7 100644
--- a/feature/dashboard/src/main/java/com/simprints/feature/dashboard/settings/troubleshooting/adapter/TroubleshootingItemViewData.kt
+++ b/feature/troubleshooting/src/main/java/com/simprints/feature/troubleshooting/adapter/TroubleshootingItemViewData.kt
@@ -1,4 +1,4 @@
-package com.simprints.feature.dashboard.settings.troubleshooting.adapter
+package com.simprints.feature.troubleshooting.adapter
data class TroubleshootingItemViewData(
val title: String,
diff --git a/feature/dashboard/src/main/java/com/simprints/feature/dashboard/settings/troubleshooting/adapter/TroubleshootingListAdapter.kt b/feature/troubleshooting/src/main/java/com/simprints/feature/troubleshooting/adapter/TroubleshootingListAdapter.kt
similarity index 93%
rename from feature/dashboard/src/main/java/com/simprints/feature/dashboard/settings/troubleshooting/adapter/TroubleshootingListAdapter.kt
rename to feature/troubleshooting/src/main/java/com/simprints/feature/troubleshooting/adapter/TroubleshootingListAdapter.kt
index 5a70cf8770..2c684375ab 100644
--- a/feature/dashboard/src/main/java/com/simprints/feature/dashboard/settings/troubleshooting/adapter/TroubleshootingListAdapter.kt
+++ b/feature/troubleshooting/src/main/java/com/simprints/feature/troubleshooting/adapter/TroubleshootingListAdapter.kt
@@ -1,4 +1,4 @@
-package com.simprints.feature.dashboard.settings.troubleshooting.adapter
+package com.simprints.feature.troubleshooting.adapter
import android.view.LayoutInflater
import android.view.ViewGroup
@@ -6,7 +6,7 @@ import android.widget.Toast
import androidx.core.view.isVisible
import androidx.recyclerview.widget.RecyclerView
import com.simprints.core.ExcludedFromGeneratedTestCoverageReports
-import com.simprints.feature.dashboard.databinding.ItemTroubleshootingListBinding
+import com.simprints.feature.troubleshooting.databinding.ItemTroubleshootingListBinding
import com.simprints.infra.uibase.system.Clipboard
diff --git a/feature/dashboard/src/main/java/com/simprints/feature/dashboard/settings/troubleshooting/events/EventLogFragment.kt b/feature/troubleshooting/src/main/java/com/simprints/feature/troubleshooting/events/EventLogFragment.kt
similarity index 80%
rename from feature/dashboard/src/main/java/com/simprints/feature/dashboard/settings/troubleshooting/events/EventLogFragment.kt
rename to feature/troubleshooting/src/main/java/com/simprints/feature/troubleshooting/events/EventLogFragment.kt
index d8299e444d..73d06bbe6e 100644
--- a/feature/dashboard/src/main/java/com/simprints/feature/dashboard/settings/troubleshooting/events/EventLogFragment.kt
+++ b/feature/troubleshooting/src/main/java/com/simprints/feature/troubleshooting/events/EventLogFragment.kt
@@ -1,4 +1,4 @@
-package com.simprints.feature.dashboard.settings.troubleshooting.events
+package com.simprints.feature.troubleshooting.events
import android.os.Bundle
import android.view.View
@@ -7,9 +7,9 @@ import androidx.fragment.app.Fragment
import androidx.fragment.app.viewModels
import androidx.navigation.fragment.findNavController
import androidx.navigation.fragment.navArgs
-import com.simprints.feature.dashboard.R
-import com.simprints.feature.dashboard.databinding.FragmentTroubleshootingStandaloneListBinding
-import com.simprints.feature.dashboard.settings.troubleshooting.adapter.TroubleshootingListAdapter
+import com.simprints.feature.troubleshooting.R
+import com.simprints.feature.troubleshooting.databinding.FragmentTroubleshootingStandaloneListBinding
+import com.simprints.feature.troubleshooting.adapter.TroubleshootingListAdapter
import com.simprints.infra.uibase.viewbinding.viewBinding
import dagger.hilt.android.AndroidEntryPoint
diff --git a/feature/dashboard/src/main/java/com/simprints/feature/dashboard/settings/troubleshooting/events/EventScopeLogFragment.kt b/feature/troubleshooting/src/main/java/com/simprints/feature/troubleshooting/events/EventScopeLogFragment.kt
similarity index 75%
rename from feature/dashboard/src/main/java/com/simprints/feature/dashboard/settings/troubleshooting/events/EventScopeLogFragment.kt
rename to feature/troubleshooting/src/main/java/com/simprints/feature/troubleshooting/events/EventScopeLogFragment.kt
index 917b863187..032df65101 100644
--- a/feature/dashboard/src/main/java/com/simprints/feature/dashboard/settings/troubleshooting/events/EventScopeLogFragment.kt
+++ b/feature/troubleshooting/src/main/java/com/simprints/feature/troubleshooting/events/EventScopeLogFragment.kt
@@ -1,4 +1,4 @@
-package com.simprints.feature.dashboard.settings.troubleshooting.events
+package com.simprints.feature.troubleshooting.events
import android.os.Bundle
import android.view.View
@@ -6,10 +6,10 @@ import androidx.core.view.isGone
import androidx.fragment.app.Fragment
import androidx.fragment.app.viewModels
import androidx.navigation.fragment.findNavController
-import com.simprints.feature.dashboard.R
-import com.simprints.feature.dashboard.databinding.FragmentTroubleshootingListBinding
-import com.simprints.feature.dashboard.settings.troubleshooting.TroubleshootingFragmentDirections
-import com.simprints.feature.dashboard.settings.troubleshooting.adapter.TroubleshootingListAdapter
+import com.simprints.feature.troubleshooting.R
+import com.simprints.feature.troubleshooting.databinding.FragmentTroubleshootingListBinding
+import com.simprints.feature.troubleshooting.TroubleshootingFragmentDirections
+import com.simprints.feature.troubleshooting.adapter.TroubleshootingListAdapter
import com.simprints.infra.uibase.viewbinding.viewBinding
import dagger.hilt.android.AndroidEntryPoint
diff --git a/feature/dashboard/src/main/java/com/simprints/feature/dashboard/settings/troubleshooting/events/EventsLogViewModel.kt b/feature/troubleshooting/src/main/java/com/simprints/feature/troubleshooting/events/EventsLogViewModel.kt
similarity index 94%
rename from feature/dashboard/src/main/java/com/simprints/feature/dashboard/settings/troubleshooting/events/EventsLogViewModel.kt
rename to feature/troubleshooting/src/main/java/com/simprints/feature/troubleshooting/events/EventsLogViewModel.kt
index af602dc976..3db43625b9 100644
--- a/feature/dashboard/src/main/java/com/simprints/feature/dashboard/settings/troubleshooting/events/EventsLogViewModel.kt
+++ b/feature/troubleshooting/src/main/java/com/simprints/feature/troubleshooting/events/EventsLogViewModel.kt
@@ -1,10 +1,10 @@
-package com.simprints.feature.dashboard.settings.troubleshooting.events
+package com.simprints.feature.troubleshooting.events
import androidx.lifecycle.LiveData
import androidx.lifecycle.MutableLiveData
import androidx.lifecycle.ViewModel
import androidx.lifecycle.viewModelScope
-import com.simprints.feature.dashboard.settings.troubleshooting.adapter.TroubleshootingItemViewData
+import com.simprints.feature.troubleshooting.adapter.TroubleshootingItemViewData
import com.simprints.infra.events.EventRepository
import com.simprints.infra.events.event.domain.models.Event
import com.simprints.infra.events.event.domain.models.scope.EventScope
diff --git a/feature/dashboard/src/main/java/com/simprints/feature/dashboard/settings/troubleshooting/overview/OverviewFragment.kt b/feature/troubleshooting/src/main/java/com/simprints/feature/troubleshooting/overview/OverviewFragment.kt
similarity index 85%
rename from feature/dashboard/src/main/java/com/simprints/feature/dashboard/settings/troubleshooting/overview/OverviewFragment.kt
rename to feature/troubleshooting/src/main/java/com/simprints/feature/troubleshooting/overview/OverviewFragment.kt
index 7ab6b82349..bfdbd408f9 100644
--- a/feature/dashboard/src/main/java/com/simprints/feature/dashboard/settings/troubleshooting/overview/OverviewFragment.kt
+++ b/feature/troubleshooting/src/main/java/com/simprints/feature/troubleshooting/overview/OverviewFragment.kt
@@ -1,12 +1,12 @@
-package com.simprints.feature.dashboard.settings.troubleshooting.overview
+package com.simprints.feature.troubleshooting.overview
import android.os.Bundle
import android.view.View
import androidx.fragment.app.Fragment
import androidx.fragment.app.viewModels
-import com.simprints.feature.dashboard.R
-import com.simprints.feature.dashboard.databinding.FragmentTroubleshootingOverviewBinding
-import com.simprints.feature.dashboard.settings.troubleshooting.overview.usecase.PingServerUseCase.PingResult
+import com.simprints.feature.troubleshooting.R
+import com.simprints.feature.troubleshooting.databinding.FragmentTroubleshootingOverviewBinding
+import com.simprints.feature.troubleshooting.overview.usecase.PingServerUseCase.PingResult
import com.simprints.infra.uibase.viewbinding.viewBinding
import dagger.hilt.android.AndroidEntryPoint
diff --git a/feature/dashboard/src/main/java/com/simprints/feature/dashboard/settings/troubleshooting/overview/OverviewViewModel.kt b/feature/troubleshooting/src/main/java/com/simprints/feature/troubleshooting/overview/OverviewViewModel.kt
similarity index 71%
rename from feature/dashboard/src/main/java/com/simprints/feature/dashboard/settings/troubleshooting/overview/OverviewViewModel.kt
rename to feature/troubleshooting/src/main/java/com/simprints/feature/troubleshooting/overview/OverviewViewModel.kt
index 5baa2f9129..59699670e6 100644
--- a/feature/dashboard/src/main/java/com/simprints/feature/dashboard/settings/troubleshooting/overview/OverviewViewModel.kt
+++ b/feature/troubleshooting/src/main/java/com/simprints/feature/troubleshooting/overview/OverviewViewModel.kt
@@ -1,15 +1,15 @@
-package com.simprints.feature.dashboard.settings.troubleshooting.overview
+package com.simprints.feature.troubleshooting.overview
import androidx.lifecycle.LiveData
import androidx.lifecycle.MutableLiveData
import androidx.lifecycle.ViewModel
import androidx.lifecycle.viewModelScope
-import com.simprints.feature.dashboard.settings.troubleshooting.overview.usecase.CollectIdsUseCase
-import com.simprints.feature.dashboard.settings.troubleshooting.overview.usecase.CollectLicenceStatesUseCase
-import com.simprints.feature.dashboard.settings.troubleshooting.overview.usecase.CollectNetworkInformationUseCase
-import com.simprints.feature.dashboard.settings.troubleshooting.overview.usecase.CollectScannerStateUseCase
-import com.simprints.feature.dashboard.settings.troubleshooting.overview.usecase.PingServerUseCase
-import com.simprints.feature.dashboard.settings.troubleshooting.overview.usecase.PingServerUseCase.PingResult
+import com.simprints.feature.troubleshooting.overview.usecase.CollectIdsUseCase
+import com.simprints.feature.troubleshooting.overview.usecase.CollectLicenceStatesUseCase
+import com.simprints.feature.troubleshooting.overview.usecase.CollectNetworkInformationUseCase
+import com.simprints.feature.troubleshooting.overview.usecase.CollectScannerStateUseCase
+import com.simprints.feature.troubleshooting.overview.usecase.PingServerUseCase
+import com.simprints.feature.troubleshooting.overview.usecase.PingServerUseCase.PingResult
import dagger.hilt.android.lifecycle.HiltViewModel
import kotlinx.coroutines.launch
import javax.inject.Inject
diff --git a/feature/dashboard/src/main/java/com/simprints/feature/dashboard/settings/troubleshooting/overview/usecase/CollectIdsUseCase.kt b/feature/troubleshooting/src/main/java/com/simprints/feature/troubleshooting/overview/usecase/CollectIdsUseCase.kt
similarity index 84%
rename from feature/dashboard/src/main/java/com/simprints/feature/dashboard/settings/troubleshooting/overview/usecase/CollectIdsUseCase.kt
rename to feature/troubleshooting/src/main/java/com/simprints/feature/troubleshooting/overview/usecase/CollectIdsUseCase.kt
index 9a811f0f81..86e05a97d1 100644
--- a/feature/dashboard/src/main/java/com/simprints/feature/dashboard/settings/troubleshooting/overview/usecase/CollectIdsUseCase.kt
+++ b/feature/troubleshooting/src/main/java/com/simprints/feature/troubleshooting/overview/usecase/CollectIdsUseCase.kt
@@ -1,4 +1,4 @@
-package com.simprints.feature.dashboard.settings.troubleshooting.overview.usecase
+package com.simprints.feature.troubleshooting.overview.usecase
import com.simprints.core.DeviceID
import com.simprints.infra.authstore.AuthStore
diff --git a/feature/dashboard/src/main/java/com/simprints/feature/dashboard/settings/troubleshooting/overview/usecase/CollectLicenceStatesUseCase.kt b/feature/troubleshooting/src/main/java/com/simprints/feature/troubleshooting/overview/usecase/CollectLicenceStatesUseCase.kt
similarity index 87%
rename from feature/dashboard/src/main/java/com/simprints/feature/dashboard/settings/troubleshooting/overview/usecase/CollectLicenceStatesUseCase.kt
rename to feature/troubleshooting/src/main/java/com/simprints/feature/troubleshooting/overview/usecase/CollectLicenceStatesUseCase.kt
index cb1f84ab86..59e9aa3c75 100644
--- a/feature/dashboard/src/main/java/com/simprints/feature/dashboard/settings/troubleshooting/overview/usecase/CollectLicenceStatesUseCase.kt
+++ b/feature/troubleshooting/src/main/java/com/simprints/feature/troubleshooting/overview/usecase/CollectLicenceStatesUseCase.kt
@@ -1,4 +1,4 @@
-package com.simprints.feature.dashboard.settings.troubleshooting.overview.usecase
+package com.simprints.feature.troubleshooting.overview.usecase
import com.simprints.infra.license.LicenseRepository
import com.simprints.infra.license.models.Vendor
diff --git a/feature/dashboard/src/main/java/com/simprints/feature/dashboard/settings/troubleshooting/overview/usecase/CollectNetworkInformationUseCase.kt b/feature/troubleshooting/src/main/java/com/simprints/feature/troubleshooting/overview/usecase/CollectNetworkInformationUseCase.kt
similarity index 96%
rename from feature/dashboard/src/main/java/com/simprints/feature/dashboard/settings/troubleshooting/overview/usecase/CollectNetworkInformationUseCase.kt
rename to feature/troubleshooting/src/main/java/com/simprints/feature/troubleshooting/overview/usecase/CollectNetworkInformationUseCase.kt
index 605a6aaa62..b1f2517133 100644
--- a/feature/dashboard/src/main/java/com/simprints/feature/dashboard/settings/troubleshooting/overview/usecase/CollectNetworkInformationUseCase.kt
+++ b/feature/troubleshooting/src/main/java/com/simprints/feature/troubleshooting/overview/usecase/CollectNetworkInformationUseCase.kt
@@ -1,4 +1,4 @@
-package com.simprints.feature.dashboard.settings.troubleshooting.overview.usecase
+package com.simprints.feature.troubleshooting.overview.usecase
import android.content.Context
import android.net.ConnectivityManager
diff --git a/feature/dashboard/src/main/java/com/simprints/feature/dashboard/settings/troubleshooting/overview/usecase/CollectScannerStateUseCase.kt b/feature/troubleshooting/src/main/java/com/simprints/feature/troubleshooting/overview/usecase/CollectScannerStateUseCase.kt
similarity index 95%
rename from feature/dashboard/src/main/java/com/simprints/feature/dashboard/settings/troubleshooting/overview/usecase/CollectScannerStateUseCase.kt
rename to feature/troubleshooting/src/main/java/com/simprints/feature/troubleshooting/overview/usecase/CollectScannerStateUseCase.kt
index a584971190..a6208a1dc5 100644
--- a/feature/dashboard/src/main/java/com/simprints/feature/dashboard/settings/troubleshooting/overview/usecase/CollectScannerStateUseCase.kt
+++ b/feature/troubleshooting/src/main/java/com/simprints/feature/troubleshooting/overview/usecase/CollectScannerStateUseCase.kt
@@ -1,4 +1,4 @@
-package com.simprints.feature.dashboard.settings.troubleshooting.overview.usecase
+package com.simprints.feature.troubleshooting.overview.usecase
import com.simprints.fingerprint.infra.scanner.ScannerManager
import com.simprints.infra.config.store.ConfigRepository
diff --git a/feature/dashboard/src/main/java/com/simprints/feature/dashboard/settings/troubleshooting/overview/usecase/PingServerUseCase.kt b/feature/troubleshooting/src/main/java/com/simprints/feature/troubleshooting/overview/usecase/PingServerUseCase.kt
similarity index 96%
rename from feature/dashboard/src/main/java/com/simprints/feature/dashboard/settings/troubleshooting/overview/usecase/PingServerUseCase.kt
rename to feature/troubleshooting/src/main/java/com/simprints/feature/troubleshooting/overview/usecase/PingServerUseCase.kt
index 30cebd3e7a..d76604d0f4 100644
--- a/feature/dashboard/src/main/java/com/simprints/feature/dashboard/settings/troubleshooting/overview/usecase/PingServerUseCase.kt
+++ b/feature/troubleshooting/src/main/java/com/simprints/feature/troubleshooting/overview/usecase/PingServerUseCase.kt
@@ -1,4 +1,4 @@
-package com.simprints.feature.dashboard.settings.troubleshooting.overview.usecase
+package com.simprints.feature.troubleshooting.overview.usecase
import com.simprints.core.DispatcherIO
import com.simprints.infra.network.url.BaseUrlProvider
diff --git a/feature/dashboard/src/main/java/com/simprints/feature/dashboard/settings/troubleshooting/workers/WorkerLogFragment.kt b/feature/troubleshooting/src/main/java/com/simprints/feature/troubleshooting/workers/WorkerLogFragment.kt
similarity index 75%
rename from feature/dashboard/src/main/java/com/simprints/feature/dashboard/settings/troubleshooting/workers/WorkerLogFragment.kt
rename to feature/troubleshooting/src/main/java/com/simprints/feature/troubleshooting/workers/WorkerLogFragment.kt
index 4599eefe20..6279ebf69f 100644
--- a/feature/dashboard/src/main/java/com/simprints/feature/dashboard/settings/troubleshooting/workers/WorkerLogFragment.kt
+++ b/feature/troubleshooting/src/main/java/com/simprints/feature/troubleshooting/workers/WorkerLogFragment.kt
@@ -1,13 +1,13 @@
-package com.simprints.feature.dashboard.settings.troubleshooting.workers
+package com.simprints.feature.troubleshooting.workers
import android.os.Bundle
import android.view.View
import androidx.core.view.isGone
import androidx.fragment.app.Fragment
import androidx.fragment.app.viewModels
-import com.simprints.feature.dashboard.R
-import com.simprints.feature.dashboard.databinding.FragmentTroubleshootingListBinding
-import com.simprints.feature.dashboard.settings.troubleshooting.adapter.TroubleshootingListAdapter
+import com.simprints.feature.troubleshooting.R
+import com.simprints.feature.troubleshooting.databinding.FragmentTroubleshootingListBinding
+import com.simprints.feature.troubleshooting.adapter.TroubleshootingListAdapter
import com.simprints.infra.uibase.viewbinding.viewBinding
import dagger.hilt.android.AndroidEntryPoint
import kotlin.getValue
diff --git a/feature/dashboard/src/main/java/com/simprints/feature/dashboard/settings/troubleshooting/workers/WorkerLogViewModel.kt b/feature/troubleshooting/src/main/java/com/simprints/feature/troubleshooting/workers/WorkerLogViewModel.kt
similarity index 90%
rename from feature/dashboard/src/main/java/com/simprints/feature/dashboard/settings/troubleshooting/workers/WorkerLogViewModel.kt
rename to feature/troubleshooting/src/main/java/com/simprints/feature/troubleshooting/workers/WorkerLogViewModel.kt
index 14db2716ce..14243d417a 100644
--- a/feature/dashboard/src/main/java/com/simprints/feature/dashboard/settings/troubleshooting/workers/WorkerLogViewModel.kt
+++ b/feature/troubleshooting/src/main/java/com/simprints/feature/troubleshooting/workers/WorkerLogViewModel.kt
@@ -1,4 +1,4 @@
-package com.simprints.feature.dashboard.settings.troubleshooting.workers
+package com.simprints.feature.troubleshooting.workers
import androidx.lifecycle.LiveData
import androidx.lifecycle.MutableLiveData
@@ -7,7 +7,7 @@ import androidx.lifecycle.viewModelScope
import androidx.work.WorkInfo
import androidx.work.WorkManager
import androidx.work.WorkQuery
-import com.simprints.feature.dashboard.settings.troubleshooting.adapter.TroubleshootingItemViewData
+import com.simprints.feature.troubleshooting.adapter.TroubleshootingItemViewData
import dagger.hilt.android.lifecycle.HiltViewModel
import kotlinx.coroutines.launch
import java.util.Date
diff --git a/feature/dashboard/src/main/res/layout/fragment_troubleshooting.xml b/feature/troubleshooting/src/main/res/layout/fragment_troubleshooting.xml
similarity index 100%
rename from feature/dashboard/src/main/res/layout/fragment_troubleshooting.xml
rename to feature/troubleshooting/src/main/res/layout/fragment_troubleshooting.xml
diff --git a/feature/dashboard/src/main/res/layout/fragment_troubleshooting_list.xml b/feature/troubleshooting/src/main/res/layout/fragment_troubleshooting_list.xml
similarity index 100%
rename from feature/dashboard/src/main/res/layout/fragment_troubleshooting_list.xml
rename to feature/troubleshooting/src/main/res/layout/fragment_troubleshooting_list.xml
diff --git a/feature/dashboard/src/main/res/layout/fragment_troubleshooting_overview.xml b/feature/troubleshooting/src/main/res/layout/fragment_troubleshooting_overview.xml
similarity index 100%
rename from feature/dashboard/src/main/res/layout/fragment_troubleshooting_overview.xml
rename to feature/troubleshooting/src/main/res/layout/fragment_troubleshooting_overview.xml
diff --git a/feature/dashboard/src/main/res/layout/fragment_troubleshooting_standalone_list.xml b/feature/troubleshooting/src/main/res/layout/fragment_troubleshooting_standalone_list.xml
similarity index 100%
rename from feature/dashboard/src/main/res/layout/fragment_troubleshooting_standalone_list.xml
rename to feature/troubleshooting/src/main/res/layout/fragment_troubleshooting_standalone_list.xml
diff --git a/feature/dashboard/src/main/res/layout/item_troubleshooting_list.xml b/feature/troubleshooting/src/main/res/layout/item_troubleshooting_list.xml
similarity index 100%
rename from feature/dashboard/src/main/res/layout/item_troubleshooting_list.xml
rename to feature/troubleshooting/src/main/res/layout/item_troubleshooting_list.xml
diff --git a/feature/troubleshooting/src/main/res/navigation/graph_troubleshooting.xml b/feature/troubleshooting/src/main/res/navigation/graph_troubleshooting.xml
new file mode 100644
index 0000000000..d557d72088
--- /dev/null
+++ b/feature/troubleshooting/src/main/res/navigation/graph_troubleshooting.xml
@@ -0,0 +1,28 @@
+
+
+
+
+
+
+
+
+
+
+
diff --git a/feature/dashboard/src/test/java/com/simprints/feature/dashboard/settings/troubleshooting/AutoResettingClickCounterTest.kt b/feature/troubleshooting/src/test/java/com/simprints/feature/troubleshooting/AutoResettingClickCounterTest.kt
similarity index 95%
rename from feature/dashboard/src/test/java/com/simprints/feature/dashboard/settings/troubleshooting/AutoResettingClickCounterTest.kt
rename to feature/troubleshooting/src/test/java/com/simprints/feature/troubleshooting/AutoResettingClickCounterTest.kt
index 6393625362..b8efcb09fb 100644
--- a/feature/dashboard/src/test/java/com/simprints/feature/dashboard/settings/troubleshooting/AutoResettingClickCounterTest.kt
+++ b/feature/troubleshooting/src/test/java/com/simprints/feature/troubleshooting/AutoResettingClickCounterTest.kt
@@ -1,4 +1,4 @@
-package com.simprints.feature.dashboard.settings.troubleshooting
+package com.simprints.feature.troubleshooting
import androidx.arch.core.executor.testing.InstantTaskExecutorRule
import com.google.common.truth.Truth.assertThat
diff --git a/feature/dashboard/src/test/java/com/simprints/feature/dashboard/settings/troubleshooting/events/EventsLogViewModelTest.kt b/feature/troubleshooting/src/test/java/com/simprints/feature/troubleshooting/events/EventsLogViewModelTest.kt
similarity index 96%
rename from feature/dashboard/src/test/java/com/simprints/feature/dashboard/settings/troubleshooting/events/EventsLogViewModelTest.kt
rename to feature/troubleshooting/src/test/java/com/simprints/feature/troubleshooting/events/EventsLogViewModelTest.kt
index 3c1958c9a8..e55eaea8ad 100644
--- a/feature/dashboard/src/test/java/com/simprints/feature/dashboard/settings/troubleshooting/events/EventsLogViewModelTest.kt
+++ b/feature/troubleshooting/src/test/java/com/simprints/feature/troubleshooting/events/EventsLogViewModelTest.kt
@@ -1,4 +1,4 @@
-package com.simprints.feature.dashboard.settings.troubleshooting.events
+package com.simprints.feature.troubleshooting.events
import androidx.arch.core.executor.testing.InstantTaskExecutorRule
import com.google.common.truth.Truth.assertThat
diff --git a/feature/dashboard/src/test/java/com/simprints/feature/dashboard/settings/troubleshooting/overview/OverviewViewModelTest.kt b/feature/troubleshooting/src/test/java/com/simprints/feature/troubleshooting/overview/OverviewViewModelTest.kt
similarity index 79%
rename from feature/dashboard/src/test/java/com/simprints/feature/dashboard/settings/troubleshooting/overview/OverviewViewModelTest.kt
rename to feature/troubleshooting/src/test/java/com/simprints/feature/troubleshooting/overview/OverviewViewModelTest.kt
index bb3d58eb83..cde38658f3 100644
--- a/feature/dashboard/src/test/java/com/simprints/feature/dashboard/settings/troubleshooting/overview/OverviewViewModelTest.kt
+++ b/feature/troubleshooting/src/test/java/com/simprints/feature/troubleshooting/overview/OverviewViewModelTest.kt
@@ -1,14 +1,14 @@
-package com.simprints.feature.dashboard.settings.troubleshooting.overview
+package com.simprints.feature.troubleshooting.overview
import androidx.arch.core.executor.testing.InstantTaskExecutorRule
import com.google.common.truth.Truth.assertThat
import com.jraska.livedata.test
-import com.simprints.feature.dashboard.settings.troubleshooting.overview.usecase.CollectIdsUseCase
-import com.simprints.feature.dashboard.settings.troubleshooting.overview.usecase.CollectLicenceStatesUseCase
-import com.simprints.feature.dashboard.settings.troubleshooting.overview.usecase.CollectNetworkInformationUseCase
-import com.simprints.feature.dashboard.settings.troubleshooting.overview.usecase.CollectScannerStateUseCase
-import com.simprints.feature.dashboard.settings.troubleshooting.overview.usecase.PingServerUseCase
-import com.simprints.feature.dashboard.settings.troubleshooting.overview.usecase.PingServerUseCase.PingResult
+import com.simprints.feature.troubleshooting.overview.usecase.CollectIdsUseCase
+import com.simprints.feature.troubleshooting.overview.usecase.CollectLicenceStatesUseCase
+import com.simprints.feature.troubleshooting.overview.usecase.CollectNetworkInformationUseCase
+import com.simprints.feature.troubleshooting.overview.usecase.CollectScannerStateUseCase
+import com.simprints.feature.troubleshooting.overview.usecase.PingServerUseCase
+import com.simprints.feature.troubleshooting.overview.usecase.PingServerUseCase.PingResult
import com.simprints.testtools.common.coroutines.TestCoroutineRule
import io.mockk.MockKAnnotations
import io.mockk.coEvery
diff --git a/feature/dashboard/src/test/java/com/simprints/feature/dashboard/settings/troubleshooting/overview/usecase/CollectIdsUseCaseTest.kt b/feature/troubleshooting/src/test/java/com/simprints/feature/troubleshooting/overview/usecase/CollectIdsUseCaseTest.kt
similarity index 93%
rename from feature/dashboard/src/test/java/com/simprints/feature/dashboard/settings/troubleshooting/overview/usecase/CollectIdsUseCaseTest.kt
rename to feature/troubleshooting/src/test/java/com/simprints/feature/troubleshooting/overview/usecase/CollectIdsUseCaseTest.kt
index f49cac6b6e..768d9f9432 100644
--- a/feature/dashboard/src/test/java/com/simprints/feature/dashboard/settings/troubleshooting/overview/usecase/CollectIdsUseCaseTest.kt
+++ b/feature/troubleshooting/src/test/java/com/simprints/feature/troubleshooting/overview/usecase/CollectIdsUseCaseTest.kt
@@ -1,4 +1,4 @@
-package com.simprints.feature.dashboard.settings.troubleshooting.overview.usecase
+package com.simprints.feature.troubleshooting.overview.usecase
import com.google.common.truth.Truth.assertThat
import com.simprints.core.domain.tokenization.TokenizableString
diff --git a/feature/dashboard/src/test/java/com/simprints/feature/dashboard/settings/troubleshooting/overview/usecase/CollectLicenceStatesUseCaseTest.kt b/feature/troubleshooting/src/test/java/com/simprints/feature/troubleshooting/overview/usecase/CollectLicenceStatesUseCaseTest.kt
similarity index 95%
rename from feature/dashboard/src/test/java/com/simprints/feature/dashboard/settings/troubleshooting/overview/usecase/CollectLicenceStatesUseCaseTest.kt
rename to feature/troubleshooting/src/test/java/com/simprints/feature/troubleshooting/overview/usecase/CollectLicenceStatesUseCaseTest.kt
index b54d5d43d6..7b86d8df9a 100644
--- a/feature/dashboard/src/test/java/com/simprints/feature/dashboard/settings/troubleshooting/overview/usecase/CollectLicenceStatesUseCaseTest.kt
+++ b/feature/troubleshooting/src/test/java/com/simprints/feature/troubleshooting/overview/usecase/CollectLicenceStatesUseCaseTest.kt
@@ -1,4 +1,4 @@
-package com.simprints.feature.dashboard.settings.troubleshooting.overview.usecase
+package com.simprints.feature.troubleshooting.overview.usecase
import com.google.common.truth.Truth.assertThat
import com.simprints.infra.license.LicenseRepository
diff --git a/feature/dashboard/src/test/java/com/simprints/feature/dashboard/settings/troubleshooting/overview/usecase/CollectScannerStateUseCaseTest.kt b/feature/troubleshooting/src/test/java/com/simprints/feature/troubleshooting/overview/usecase/CollectScannerStateUseCaseTest.kt
similarity index 96%
rename from feature/dashboard/src/test/java/com/simprints/feature/dashboard/settings/troubleshooting/overview/usecase/CollectScannerStateUseCaseTest.kt
rename to feature/troubleshooting/src/test/java/com/simprints/feature/troubleshooting/overview/usecase/CollectScannerStateUseCaseTest.kt
index cfe4d81381..09583b1fed 100644
--- a/feature/dashboard/src/test/java/com/simprints/feature/dashboard/settings/troubleshooting/overview/usecase/CollectScannerStateUseCaseTest.kt
+++ b/feature/troubleshooting/src/test/java/com/simprints/feature/troubleshooting/overview/usecase/CollectScannerStateUseCaseTest.kt
@@ -1,4 +1,4 @@
-package com.simprints.feature.dashboard.settings.troubleshooting.overview.usecase
+package com.simprints.feature.troubleshooting.overview.usecase
import com.google.common.truth.Truth.assertThat
import com.simprints.fingerprint.infra.scanner.ScannerManager
diff --git a/feature/dashboard/src/test/java/com/simprints/feature/dashboard/settings/troubleshooting/overview/usecase/PingServerUseCaseTest.kt b/feature/troubleshooting/src/test/java/com/simprints/feature/troubleshooting/overview/usecase/PingServerUseCaseTest.kt
similarity index 92%
rename from feature/dashboard/src/test/java/com/simprints/feature/dashboard/settings/troubleshooting/overview/usecase/PingServerUseCaseTest.kt
rename to feature/troubleshooting/src/test/java/com/simprints/feature/troubleshooting/overview/usecase/PingServerUseCaseTest.kt
index 4e470b7eff..ffd5c13356 100644
--- a/feature/dashboard/src/test/java/com/simprints/feature/dashboard/settings/troubleshooting/overview/usecase/PingServerUseCaseTest.kt
+++ b/feature/troubleshooting/src/test/java/com/simprints/feature/troubleshooting/overview/usecase/PingServerUseCaseTest.kt
@@ -1,8 +1,8 @@
-package com.simprints.feature.dashboard.settings.troubleshooting.overview.usecase
+package com.simprints.feature.troubleshooting.overview.usecase
import androidx.arch.core.executor.testing.InstantTaskExecutorRule
import com.google.common.truth.Truth.assertThat
-import com.simprints.feature.dashboard.settings.troubleshooting.overview.usecase.PingServerUseCase.PingResult
+import com.simprints.feature.troubleshooting.overview.usecase.PingServerUseCase.PingResult
import com.simprints.infra.network.url.BaseUrlProvider
import com.simprints.testtools.common.coroutines.TestCoroutineRule
import io.mockk.MockKAnnotations
diff --git a/feature/dashboard/src/test/java/com/simprints/feature/dashboard/settings/troubleshooting/workers/WorkerLogViewModelTest.kt b/feature/troubleshooting/src/test/java/com/simprints/feature/troubleshooting/workers/WorkerLogViewModelTest.kt
similarity index 97%
rename from feature/dashboard/src/test/java/com/simprints/feature/dashboard/settings/troubleshooting/workers/WorkerLogViewModelTest.kt
rename to feature/troubleshooting/src/test/java/com/simprints/feature/troubleshooting/workers/WorkerLogViewModelTest.kt
index 39b8c92939..2620d8396b 100644
--- a/feature/dashboard/src/test/java/com/simprints/feature/dashboard/settings/troubleshooting/workers/WorkerLogViewModelTest.kt
+++ b/feature/troubleshooting/src/test/java/com/simprints/feature/troubleshooting/workers/WorkerLogViewModelTest.kt
@@ -1,4 +1,4 @@
-package com.simprints.feature.dashboard.settings.troubleshooting.workers
+package com.simprints.feature.troubleshooting.workers
import androidx.arch.core.executor.testing.InstantTaskExecutorRule
import androidx.work.WorkInfo
diff --git a/settings.gradle.kts b/settings.gradle.kts
index d7d1566436..a446c556f5 100644
--- a/settings.gradle.kts
+++ b/settings.gradle.kts
@@ -107,6 +107,7 @@ include(
":feature:select-subject",
":feature:enrol-last-biometric",
":feature:dashboard",
+ ":feature:troubleshooting",
":feature:alert",
":feature:exit-form",
":feature:consent",