Skip to content

Commit 7041293

Browse files
fix: fixed the gestures for the settings.
1 parent 5d15cbf commit 7041293

File tree

2 files changed

+236
-184
lines changed

2 files changed

+236
-184
lines changed

app/src/main/java/com/github/droidworksstudio/launcher/ui/settings/SettingsFragment.kt

Lines changed: 50 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,19 +1,25 @@
11
package com.github.droidworksstudio.launcher.ui.settings
22

3+
import android.annotation.SuppressLint
34
import android.content.Context
45
import android.os.Bundle
6+
import android.os.Handler
7+
import android.os.Looper
58
import android.view.LayoutInflater
69
import android.view.View
710
import android.view.ViewGroup
811
import androidx.fragment.app.Fragment
912
import androidx.navigation.NavController
13+
import androidx.navigation.NavOptions
1014
import androidx.navigation.fragment.findNavController
1115
import com.github.droidworksstudio.launcher.R
1216
import com.github.droidworksstudio.launcher.databinding.FragmentSettingsBinding
1317
import com.github.droidworksstudio.launcher.helper.AppHelper
1418
import com.github.droidworksstudio.launcher.helper.PreferenceHelper
19+
import com.github.droidworksstudio.launcher.listener.OnSwipeTouchListener
1520
import com.github.droidworksstudio.launcher.listener.ScrollEventListener
1621
import com.github.droidworksstudio.launcher.repository.AppInfoRepository
22+
import com.github.droidworksstudio.launcher.utils.Constants
1723
import dagger.hilt.android.AndroidEntryPoint
1824
import javax.inject.Inject
1925

@@ -58,6 +64,7 @@ class SettingsFragment : Fragment(),
5864
context = requireContext()
5965

6066
observeClickListener()
67+
observeSwipeTouchListener()
6168
}
6269

6370
private fun observeClickListener() {
@@ -70,10 +77,9 @@ class SettingsFragment : Fragment(),
7077
navController.navigate(R.id.SettingsLookFeelFragment)
7178
}
7279

73-
widgetsSettings
74-
.setOnClickListener {
75-
navController.navigate(R.id.SettingsWidgetFragment)
76-
}
80+
widgetsSettings.setOnClickListener {
81+
navController.navigate(R.id.SettingsWidgetFragment)
82+
}
7783

7884
favoriteApps.setOnClickListener {
7985
navController.navigate(R.id.FavoriteFragment)
@@ -89,4 +95,44 @@ class SettingsFragment : Fragment(),
8995
}
9096
}
9197

98+
@SuppressLint("ClickableViewAccessibility")
99+
private fun observeSwipeTouchListener() {
100+
binding.apply {
101+
nestedScrollView.setOnTouchListener(getSwipeGestureListener(context))
102+
}
103+
}
104+
105+
private fun getSwipeGestureListener(context: Context): View.OnTouchListener {
106+
return object : OnSwipeTouchListener(context, preferenceHelper) {
107+
override fun onSwipeLeft() {
108+
super.onSwipeLeft()
109+
val actionTypeNavOptions: NavOptions? =
110+
if (preferenceHelper.disableAnimations) null
111+
else appHelper.getActionType(Constants.Swipe.Left)
112+
113+
Handler(Looper.getMainLooper()).post {
114+
findNavController().navigate(
115+
R.id.HomeFragment,
116+
null,
117+
actionTypeNavOptions
118+
)
119+
}
120+
}
121+
122+
override fun onSwipeRight() {
123+
super.onSwipeRight()
124+
val actionTypeNavOptions: NavOptions? =
125+
if (preferenceHelper.disableAnimations) null
126+
else appHelper.getActionType(Constants.Swipe.Right)
127+
128+
Handler(Looper.getMainLooper()).post {
129+
findNavController().navigate(
130+
R.id.HomeFragment,
131+
null,
132+
actionTypeNavOptions
133+
)
134+
}
135+
}
136+
}
137+
}
92138
}

0 commit comments

Comments
 (0)