diff --git a/app/src/main/java/com/lizongying/mytv/MainFragment.kt b/app/src/main/java/com/lizongying/mytv/MainFragment.kt index 6ad41fa7..d9f1cc15 100644 --- a/app/src/main/java/com/lizongying/mytv/MainFragment.kt +++ b/app/src/main/java/com/lizongying/mytv/MainFragment.kt @@ -2,6 +2,7 @@ package com.lizongying.mytv import android.os.Bundle import android.util.Log +import android.view.GestureDetector import android.view.KeyEvent import android.view.LayoutInflater import android.view.MotionEvent @@ -43,10 +44,13 @@ class MainFragment : Fragment(), CardAdapter.ItemListener { private lateinit var application: MyTvApplication + private lateinit var gestureDetector: GestureDetector + override fun onCreateView( inflater: LayoutInflater, container: ViewGroup?, savedInstanceState: Bundle? ): View { + var context = requireContext() _binding = MenuBinding.inflate(inflater, container, false) application = requireActivity().applicationContext as MyTvApplication @@ -58,9 +62,19 @@ class MainFragment : Fragment(), CardAdapter.ItemListener { hideSelf() } + gestureDetector = GestureDetector(context, GestureListener()) + return binding.root } + private inner class GestureListener : GestureDetector.SimpleOnGestureListener() { + override fun onSingleTapConfirmed(e: MotionEvent): Boolean { + Log.i(TAG, "onSingleTapConfirmed") + hideSelf() + return true + } + } + private fun hideSelf() { requireActivity().supportFragmentManager.beginTransaction() .hide(this) @@ -137,7 +151,7 @@ class MainFragment : Fragment(), CardAdapter.ItemListener { itemBinding.items.addOnItemTouchListener(object : RecyclerView.OnItemTouchListener { override fun onInterceptTouchEvent(rv: RecyclerView, e: MotionEvent): Boolean { - hideSelf() + gestureDetector.onTouchEvent(e) return false } diff --git a/app/src/main/java/com/lizongying/mytv/SP.kt b/app/src/main/java/com/lizongying/mytv/SP.kt index 3f16a01b..13c9361b 100644 --- a/app/src/main/java/com/lizongying/mytv/SP.kt +++ b/app/src/main/java/com/lizongying/mytv/SP.kt @@ -51,7 +51,12 @@ object SP { var time: Boolean get() = sp.getBoolean(KEY_TIME, true) - set(value) = sp.edit().putBoolean(KEY_TIME, value).apply() + set(value) { + if (value != this.time) { + sp.edit().putBoolean(KEY_TIME, value).apply() + listener?.onSharedPreferenceChanged(KEY_TIME) + } + } var bootStartup: Boolean get() = sp.getBoolean(KEY_BOOT_STARTUP, false)