From de81ae113106093f902f7c055c07679e38078385 Mon Sep 17 00:00:00 2001 From: tibbi Date: Thu, 1 Sep 2022 16:23:43 +0200 Subject: [PATCH] hide fragments on pressing Back --- .../launcher/activities/MainActivity.kt | 29 ++++++++++++------- 1 file changed, 18 insertions(+), 11 deletions(-) diff --git a/app/src/main/kotlin/com/simplemobiletools/launcher/activities/MainActivity.kt b/app/src/main/kotlin/com/simplemobiletools/launcher/activities/MainActivity.kt index f70c42e..f0209fd 100644 --- a/app/src/main/kotlin/com/simplemobiletools/launcher/activities/MainActivity.kt +++ b/app/src/main/kotlin/com/simplemobiletools/launcher/activities/MainActivity.kt @@ -4,10 +4,7 @@ import android.animation.ObjectAnimator import android.content.res.Configuration import android.graphics.Color import android.os.Bundle -import android.view.ContextThemeWrapper -import android.view.GestureDetector -import android.view.Gravity -import android.view.MotionEvent +import android.view.* import android.view.animation.DecelerateInterpolator import android.widget.PopupMenu import androidx.core.view.GestureDetectorCompat @@ -52,6 +49,16 @@ class MainActivity : SimpleActivity(), FlingListener { (all_apps_fragment as AllAppsFragment).setupViews() } + override fun onBackPressed() { + if (all_apps_fragment.y != mScreenHeight.toFloat()) { + hideFragment(all_apps_fragment) + } else if (widgets_fragment.y != mScreenHeight.toFloat()) { + hideFragment(widgets_fragment) + } else { + super.onBackPressed() + } + } + override fun onConfigurationChanged(newConfig: Configuration) { super.onConfigurationChanged(newConfig) (all_apps_fragment as AllAppsFragment).onConfigurationChanged() @@ -79,9 +86,9 @@ class MainActivity : SimpleActivity(), FlingListener { mTouchDownY = -1 if (!mIgnoreUpEvent) { if (all_apps_fragment.y < mScreenHeight * 0.7) { - showAllAppsFragment(all_apps_fragment as MyFragment) + showFragment(all_apps_fragment) } else { - hideAllAppsFragment(all_apps_fragment as MyFragment) + hideFragment(all_apps_fragment) } } } @@ -96,14 +103,14 @@ class MainActivity : SimpleActivity(), FlingListener { mIgnoreUpEvent = false } - private fun showAllAppsFragment(fragment: MyFragment) { + private fun showFragment(fragment: View) { ObjectAnimator.ofFloat(fragment, "y", 0f).apply { interpolator = DecelerateInterpolator() start() } } - private fun hideAllAppsFragment(fragment: MyFragment) { + private fun hideFragment(fragment: View) { ObjectAnimator.ofFloat(fragment, "y", mScreenHeight.toFloat()).apply { interpolator = DecelerateInterpolator() start() @@ -131,7 +138,7 @@ class MainActivity : SimpleActivity(), FlingListener { } private fun showWidgetsFragment() { - + showFragment(widgets_fragment) } private class MyGestureListener(private val flingListener: FlingListener) : GestureDetector.SimpleOnGestureListener() { @@ -151,11 +158,11 @@ class MainActivity : SimpleActivity(), FlingListener { override fun onFlingUp() { mIgnoreUpEvent = true - showAllAppsFragment(all_apps_fragment as MyFragment) + showFragment(all_apps_fragment) } override fun onFlingDown() { mIgnoreUpEvent = true - hideAllAppsFragment(all_apps_fragment as MyFragment) + hideFragment(all_apps_fragment) } }