fix: fixed the gestures for the settings.

This commit is contained in:
HeCodes2Much
2024-12-01 19:39:54 +00:00
parent 5d15cbf6ed
commit 7041293152
2 changed files with 227 additions and 175 deletions

View File

@@ -1,19 +1,25 @@
package com.github.droidworksstudio.launcher.ui.settings
import android.annotation.SuppressLint
import android.content.Context
import android.os.Bundle
import android.os.Handler
import android.os.Looper
import android.view.LayoutInflater
import android.view.View
import android.view.ViewGroup
import androidx.fragment.app.Fragment
import androidx.navigation.NavController
import androidx.navigation.NavOptions
import androidx.navigation.fragment.findNavController
import com.github.droidworksstudio.launcher.R
import com.github.droidworksstudio.launcher.databinding.FragmentSettingsBinding
import com.github.droidworksstudio.launcher.helper.AppHelper
import com.github.droidworksstudio.launcher.helper.PreferenceHelper
import com.github.droidworksstudio.launcher.listener.OnSwipeTouchListener
import com.github.droidworksstudio.launcher.listener.ScrollEventListener
import com.github.droidworksstudio.launcher.repository.AppInfoRepository
import com.github.droidworksstudio.launcher.utils.Constants
import dagger.hilt.android.AndroidEntryPoint
import javax.inject.Inject
@@ -58,6 +64,7 @@ class SettingsFragment : Fragment(),
context = requireContext()
observeClickListener()
observeSwipeTouchListener()
}
private fun observeClickListener() {
@@ -70,10 +77,9 @@ class SettingsFragment : Fragment(),
navController.navigate(R.id.SettingsLookFeelFragment)
}
widgetsSettings
.setOnClickListener {
navController.navigate(R.id.SettingsWidgetFragment)
}
widgetsSettings.setOnClickListener {
navController.navigate(R.id.SettingsWidgetFragment)
}
favoriteApps.setOnClickListener {
navController.navigate(R.id.FavoriteFragment)
@@ -89,4 +95,44 @@ class SettingsFragment : Fragment(),
}
}
@SuppressLint("ClickableViewAccessibility")
private fun observeSwipeTouchListener() {
binding.apply {
nestedScrollView.setOnTouchListener(getSwipeGestureListener(context))
}
}
private fun getSwipeGestureListener(context: Context): View.OnTouchListener {
return object : OnSwipeTouchListener(context, preferenceHelper) {
override fun onSwipeLeft() {
super.onSwipeLeft()
val actionTypeNavOptions: NavOptions? =
if (preferenceHelper.disableAnimations) null
else appHelper.getActionType(Constants.Swipe.Left)
Handler(Looper.getMainLooper()).post {
findNavController().navigate(
R.id.HomeFragment,
null,
actionTypeNavOptions
)
}
}
override fun onSwipeRight() {
super.onSwipeRight()
val actionTypeNavOptions: NavOptions? =
if (preferenceHelper.disableAnimations) null
else appHelper.getActionType(Constants.Swipe.Right)
Handler(Looper.getMainLooper()).post {
findNavController().navigate(
R.id.HomeFragment,
null,
actionTypeNavOptions
)
}
}
}
}
}

View File

@@ -7,229 +7,235 @@
android:layout_height="match_parent"
tools:context=".ui.settings.SettingsFragment">
<androidx.appcompat.widget.LinearLayoutCompat
<androidx.core.widget.NestedScrollView
android:id="@+id/nestedScrollView"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginTop="42dp"
android:gravity="center_horizontal"
android:orientation="vertical"
android:padding="24dp">
android:layout_height="match_parent">
<ImageView
android:id="@+id/headerIcon"
android:layout_width="96dp"
android:layout_height="96dp"
android:layout_gravity="center_horizontal"
android:layout_marginBottom="16dp"
android:contentDescription="@string/app_name"
android:src="@drawable/app_launcher" />
<TextView
android:id="@+id/headerTitle"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center_horizontal"
android:layout_marginBottom="24dp"
android:text="@string/settings_name"
android:textSize="24sp"
android:textStyle="bold" />
<LinearLayout
<androidx.appcompat.widget.LinearLayoutCompat
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="vertical">
android:layout_marginTop="42dp"
android:gravity="center_horizontal"
android:orientation="vertical"
android:padding="24dp">
<ImageView
android:id="@+id/headerIcon"
android:layout_width="96dp"
android:layout_height="96dp"
android:layout_gravity="center_horizontal"
android:layout_marginBottom="16dp"
android:contentDescription="@string/app_name"
android:src="@drawable/app_launcher" />
<TextView
android:id="@+id/headerTitle"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center_horizontal"
android:layout_marginBottom="24dp"
android:text="@string/settings_name"
android:textSize="24sp"
android:textStyle="bold" />
<LinearLayout
android:id="@+id/featuresSettings"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:gravity="center_vertical"
android:orientation="horizontal"
android:paddingVertical="16dp">
<ImageView
android:layout_width="24dp"
android:layout_height="24dp"
android:layout_marginEnd="16dp"
android:contentDescription="@string/settings_features_title"
android:src="@drawable/ic_feature"
app:tint="?attr/colorPrimary" />
android:orientation="vertical">
<LinearLayout
android:id="@+id/featuresSettings"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="vertical">
android:gravity="center_vertical"
android:orientation="horizontal"
android:paddingVertical="16dp">
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@string/settings_features_title"
android:textSize="18sp" />
<ImageView
android:layout_width="24dp"
android:layout_height="24dp"
android:layout_marginEnd="16dp"
android:contentDescription="@string/settings_features_title"
android:src="@drawable/ic_feature"
app:tint="?attr/colorPrimary" />
<TextView
android:layout_width="wrap_content"
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:text="@string/settings_features_description"
android:textSize="14sp" />
android:orientation="vertical">
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@string/settings_features_title"
android:textSize="18sp" />
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@string/settings_features_description"
android:textSize="14sp" />
</LinearLayout>
</LinearLayout>
</LinearLayout>
<LinearLayout
android:id="@+id/lookFeelSettings"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:gravity="center_vertical"
android:orientation="horizontal"
android:paddingVertical="16dp">
<ImageView
android:layout_width="24dp"
android:layout_height="24dp"
android:layout_marginEnd="16dp"
android:contentDescription="@string/settings_look_feel_title"
android:src="@drawable/ic_look_feel"
app:tint="?attr/colorPrimary" />
<LinearLayout
android:id="@+id/lookFeelSettings"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="vertical">
android:gravity="center_vertical"
android:orientation="horizontal"
android:paddingVertical="16dp">
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@string/settings_look_feel_title"
android:textSize="18sp" />
<ImageView
android:layout_width="24dp"
android:layout_height="24dp"
android:layout_marginEnd="16dp"
android:contentDescription="@string/settings_look_feel_title"
android:src="@drawable/ic_look_feel"
app:tint="?attr/colorPrimary" />
<TextView
android:layout_width="wrap_content"
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:text="@string/settings_look_feel_description"
android:textSize="14sp" />
android:orientation="vertical">
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@string/settings_look_feel_title"
android:textSize="18sp" />
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@string/settings_look_feel_description"
android:textSize="14sp" />
</LinearLayout>
</LinearLayout>
</LinearLayout>
<LinearLayout
android:id="@+id/widgetsSettings"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:gravity="center_vertical"
android:orientation="horizontal"
android:paddingVertical="16dp">
<ImageView
android:layout_width="24dp"
android:layout_height="24dp"
android:layout_marginEnd="16dp"
android:contentDescription="@string/settings_widgets_title"
android:src="@drawable/ic_widgets"
app:tint="?attr/colorPrimary" />
<LinearLayout
android:id="@+id/widgetsSettings"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="vertical">
android:gravity="center_vertical"
android:orientation="horizontal"
android:paddingVertical="16dp">
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@string/settings_widgets_title"
android:textSize="18sp" />
<ImageView
android:layout_width="24dp"
android:layout_height="24dp"
android:layout_marginEnd="16dp"
android:contentDescription="@string/settings_widgets_title"
android:src="@drawable/ic_widgets"
app:tint="?attr/colorPrimary" />
<TextView
android:layout_width="wrap_content"
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:text="@string/settings_widgets_description"
android:textSize="14sp" />
android:orientation="vertical">
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@string/settings_widgets_title"
android:textSize="18sp" />
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@string/settings_widgets_description"
android:textSize="14sp" />
</LinearLayout>
</LinearLayout>
</LinearLayout>
<LinearLayout
android:id="@+id/favoriteApps"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:gravity="center_vertical"
android:orientation="horizontal"
android:paddingVertical="16dp">
<ImageView
android:layout_width="24dp"
android:layout_height="24dp"
android:layout_marginEnd="16dp"
android:contentDescription="@string/favorite_apps"
android:src="@drawable/ic_favorite"
app:tint="?attr/colorPrimary" />
<LinearLayout
android:id="@+id/favoriteApps"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="vertical">
android:gravity="center_vertical"
android:orientation="horizontal"
android:paddingVertical="16dp">
<TextView
android:layout_width="wrap_content"
<ImageView
android:layout_width="24dp"
android:layout_height="24dp"
android:layout_marginEnd="16dp"
android:contentDescription="@string/favorite_apps"
android:src="@drawable/ic_favorite"
app:tint="?attr/colorPrimary" />
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:text="@string/favorite_apps"
android:textSize="18sp" />
android:orientation="vertical">
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@string/favorite_apps"
android:textSize="18sp" />
</LinearLayout>
</LinearLayout>
</LinearLayout>
<LinearLayout
android:id="@+id/hiddenApps"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:gravity="center_vertical"
android:orientation="horizontal"
android:paddingVertical="16dp">
<ImageView
android:layout_width="24dp"
android:layout_height="24dp"
android:layout_marginEnd="16dp"
android:contentDescription="@string/hidden_apps"
android:src="@drawable/ic_hidden"
app:tint="?attr/colorPrimary" />
<LinearLayout
android:id="@+id/hiddenApps"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="vertical">
android:gravity="center_vertical"
android:orientation="horizontal"
android:paddingVertical="16dp">
<TextView
android:layout_width="wrap_content"
<ImageView
android:layout_width="24dp"
android:layout_height="24dp"
android:layout_marginEnd="16dp"
android:contentDescription="@string/hidden_apps"
android:src="@drawable/ic_hidden"
app:tint="?attr/colorPrimary" />
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:text="@string/hidden_apps"
android:textSize="18sp" />
android:orientation="vertical">
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@string/hidden_apps"
android:textSize="18sp" />
</LinearLayout>
</LinearLayout>
</LinearLayout>
<LinearLayout
android:id="@+id/advancedSettings"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:gravity="center_vertical"
android:orientation="horizontal"
android:paddingVertical="16dp">
<ImageView
android:layout_width="24dp"
android:layout_height="24dp"
android:layout_marginEnd="16dp"
android:contentDescription="@string/settings_advanced_title"
android:src="@drawable/ic_advanced"
app:tint="?attr/colorPrimary" />
<LinearLayout
android:id="@+id/advancedSettings"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="vertical">
android:gravity="center_vertical"
android:orientation="horizontal"
android:paddingVertical="16dp">
<TextView
android:layout_width="wrap_content"
<ImageView
android:layout_width="24dp"
android:layout_height="24dp"
android:layout_marginEnd="16dp"
android:contentDescription="@string/settings_advanced_title"
android:src="@drawable/ic_advanced"
app:tint="?attr/colorPrimary" />
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:text="@string/settings_advanced_title"
android:textSize="18sp" />
android:orientation="vertical">
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@string/settings_advanced_title"
android:textSize="18sp" />
</LinearLayout>
</LinearLayout>
</LinearLayout>
</LinearLayout>
</androidx.appcompat.widget.LinearLayoutCompat>
</androidx.appcompat.widget.LinearLayoutCompat>
</androidx.core.widget.NestedScrollView>
</FrameLayout>