diff --git a/app/src/main/java/io/nekohasekai/sfa/ui/dashboard/OverviewFragment.kt b/app/src/main/java/io/nekohasekai/sfa/ui/dashboard/OverviewFragment.kt index 86d0d6b..d32a88b 100644 --- a/app/src/main/java/io/nekohasekai/sfa/ui/dashboard/OverviewFragment.kt +++ b/app/src/main/java/io/nekohasekai/sfa/ui/dashboard/OverviewFragment.kt @@ -66,14 +66,44 @@ class OverviewFragment : Fragment() { binding.profileList.addItemDecoration(divider) activity.serviceStatus.observe(viewLifecycleOwner) { binding.statusContainer.isVisible = it == Status.Starting || it == Status.Started - if (it == Status.Stopped) { - binding.clashModeCard.isVisible = false - binding.systemProxyCard.isVisible = false + when (it) { + Status.Stopped -> { + binding.clashModeCard.isVisible = false + binding.systemProxyCard.isVisible = false + binding.fab.setImageResource(R.drawable.ic_play_arrow_24) + binding.fab.show() + } + + Status.Starting -> { + binding.fab.hide() + } + + Status.Started -> { + statusClient.connect() + clashModeClient.connect() + reloadSystemProxyStatus() + binding.fab.setImageResource(R.drawable.ic_stop_24) + binding.fab.show() + } + + Status.Stopping -> { + binding.fab.hide() + } + + else -> {} } - if (it == Status.Started) { - statusClient.connect() - clashModeClient.connect() - reloadSystemProxyStatus() + } + binding.fab.setOnClickListener { + when (activity.serviceStatus.value) { + Status.Stopped -> { + activity.startService() + } + + Status.Started -> { + BoxService.stop() + } + + else -> {} } } ProfileManager.registerCallback(this::updateProfiles) diff --git a/app/src/main/java/io/nekohasekai/sfa/ui/main/DashboardFragment.kt b/app/src/main/java/io/nekohasekai/sfa/ui/main/DashboardFragment.kt index fd336fa..376aef4 100644 --- a/app/src/main/java/io/nekohasekai/sfa/ui/main/DashboardFragment.kt +++ b/app/src/main/java/io/nekohasekai/sfa/ui/main/DashboardFragment.kt @@ -10,7 +10,6 @@ import androidx.fragment.app.Fragment import androidx.viewpager2.adapter.FragmentStateAdapter import com.google.android.material.tabs.TabLayoutMediator import io.nekohasekai.sfa.R -import io.nekohasekai.sfa.bg.BoxService import io.nekohasekai.sfa.constant.Status import io.nekohasekai.sfa.databinding.FragmentDashboardBinding import io.nekohasekai.sfa.ui.MainActivity @@ -41,39 +40,15 @@ class DashboardFragment : Fragment(R.layout.fragment_dashboard) { activity.serviceStatus.observe(viewLifecycleOwner) { when (it) { Status.Stopped -> { - binding.fab.setImageResource(R.drawable.ic_play_arrow_24) - binding.fab.show() disablePager() } - - Status.Starting -> { - binding.fab.hide() - } - Status.Started -> { - binding.fab.setImageResource(R.drawable.ic_stop_24) - binding.fab.show() enablePager() } Status.Stopping -> { - binding.fab.hide() disablePager() } - - else -> {} - } - } - binding.fab.setOnClickListener { - when (activity.serviceStatus.value) { - Status.Stopped -> { - activity.startService() - } - - Status.Started -> { - BoxService.stop() - } - else -> {} } } diff --git a/app/src/main/res/layout/fragment_dashboard.xml b/app/src/main/res/layout/fragment_dashboard.xml index 2a5f4e0..32b051c 100644 --- a/app/src/main/res/layout/fragment_dashboard.xml +++ b/app/src/main/res/layout/fragment_dashboard.xml @@ -43,15 +43,4 @@ - - - \ No newline at end of file diff --git a/app/src/main/res/layout/fragment_dashboard_overview.xml b/app/src/main/res/layout/fragment_dashboard_overview.xml index 0ca87fe..d9fde22 100644 --- a/app/src/main/res/layout/fragment_dashboard_overview.xml +++ b/app/src/main/res/layout/fragment_dashboard_overview.xml @@ -518,4 +518,14 @@ + + \ No newline at end of file