1
1
package com.github.droidworksstudio.launcher.ui.widgets
2
2
3
+ import android.annotation.SuppressLint
3
4
import android.content.BroadcastReceiver
4
5
import android.content.Context
5
6
import android.content.Intent
@@ -11,6 +12,8 @@ import android.graphics.drawable.GradientDrawable
11
12
import android.os.BatteryManager
12
13
import android.os.Build
13
14
import android.os.Bundle
15
+ import android.os.Handler
16
+ import android.os.Looper
14
17
import android.util.Log
15
18
import android.view.LayoutInflater
16
19
import android.view.View
@@ -20,6 +23,7 @@ import androidx.core.content.res.ResourcesCompat
20
23
import androidx.fragment.app.Fragment
21
24
import androidx.lifecycle.lifecycleScope
22
25
import androidx.navigation.NavController
26
+ import androidx.navigation.NavOptions
23
27
import androidx.navigation.fragment.findNavController
24
28
import com.github.droidworksstudio.common.capitalizeEachWord
25
29
import com.github.droidworksstudio.common.hasInternetPermission
@@ -29,6 +33,7 @@ import com.github.droidworksstudio.launcher.R
29
33
import com.github.droidworksstudio.launcher.databinding.FragmentWidgetsBinding
30
34
import com.github.droidworksstudio.launcher.helper.AppHelper
31
35
import com.github.droidworksstudio.launcher.helper.PreferenceHelper
36
+ import com.github.droidworksstudio.launcher.listener.OnSwipeTouchListener
32
37
import com.github.droidworksstudio.launcher.listener.ScrollEventListener
33
38
import com.github.droidworksstudio.launcher.utils.Constants
34
39
import dagger.hilt.android.AndroidEntryPoint
@@ -82,11 +87,12 @@ class WidgetFragment : Fragment(),
82
87
setupWeatherWidget()
83
88
setupBatteryWidget()
84
89
observeClickListener()
90
+ observeSwipeTouchListener()
85
91
}
86
92
87
93
private fun initializeInjectedDependencies () {
88
94
context = requireContext()
89
- binding.touchArea .hideKeyboard()
95
+ binding.mainLayout .hideKeyboard()
90
96
}
91
97
92
98
private fun orderWidgetsBySettings () {
@@ -377,6 +383,49 @@ class WidgetFragment : Fragment(),
377
383
}
378
384
}
379
385
386
+ @SuppressLint(" ClickableViewAccessibility" )
387
+ private fun observeSwipeTouchListener () {
388
+ binding.apply {
389
+ nestedScrollView.setOnTouchListener(getSwipeGestureListener(context))
390
+ }
391
+ }
392
+
393
+ private fun getSwipeGestureListener (context : Context ): View .OnTouchListener {
394
+ return object : OnSwipeTouchListener (context, preferenceHelper) {
395
+ override fun onSwipeLeft () {
396
+ println (" getSwipeGestureListener" )
397
+ super .onSwipeLeft()
398
+ val actionTypeNavOptions: NavOptions ? =
399
+ if (preferenceHelper.disableAnimations) null
400
+ else appHelper.getActionType(Constants .Swipe .Left )
401
+
402
+ Handler (Looper .getMainLooper()).post {
403
+ findNavController().navigate(
404
+ R .id.HomeFragment ,
405
+ null ,
406
+ actionTypeNavOptions
407
+ )
408
+ }
409
+ }
410
+
411
+ override fun onSwipeRight () {
412
+ println (" getSwipeGestureListener" )
413
+ super .onSwipeRight()
414
+ val actionTypeNavOptions: NavOptions ? =
415
+ if (preferenceHelper.disableAnimations) null
416
+ else appHelper.getActionType(Constants .Swipe .Right )
417
+
418
+ Handler (Looper .getMainLooper()).post {
419
+ findNavController().navigate(
420
+ R .id.HomeFragment ,
421
+ null ,
422
+ actionTypeNavOptions
423
+ )
424
+ }
425
+ }
426
+ }
427
+ }
428
+
380
429
override fun onResume () {
381
430
super .onResume()
382
431
context.registerReceiver(batteryReceiver, IntentFilter (Intent .ACTION_BATTERY_CHANGED ))
0 commit comments