From 64e52873cb4d1a389db26e158fd6696b7956fddd Mon Sep 17 00:00:00 2001 From: tibbi Date: Sun, 14 Aug 2022 12:58:54 +0200 Subject: [PATCH] adding some initial gesture handling --- .../launcher/activities/MainActivity.kt | 26 +++++++++++++++++++ .../launcher/fragments/AllAppsFragment.kt | 1 + app/src/main/res/layout/activity_main.xml | 5 ++++ 3 files changed, 32 insertions(+) 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 c5e3142..0e08984 100644 --- a/app/src/main/kotlin/com/simplemobiletools/launcher/activities/MainActivity.kt +++ b/app/src/main/kotlin/com/simplemobiletools/launcher/activities/MainActivity.kt @@ -3,8 +3,10 @@ package com.simplemobiletools.launcher.activities import android.content.res.Configuration import android.graphics.Color import android.os.Bundle +import android.view.MotionEvent import android.widget.FrameLayout import com.simplemobiletools.commons.extensions.appLaunched +import com.simplemobiletools.commons.extensions.realScreenSize import com.simplemobiletools.commons.extensions.statusBarHeight import com.simplemobiletools.launcher.BuildConfig import com.simplemobiletools.launcher.R @@ -12,6 +14,10 @@ import com.simplemobiletools.launcher.fragments.AllAppsFragment import kotlinx.android.synthetic.main.activity_main.* class MainActivity : SimpleActivity() { + private var mTouchDownY = 0 + private var mScreenHeight = 0 + private var mCurrentFragmentY = 0 + override fun onCreate(savedInstanceState: Bundle?) { useDynamicTheme = false showTransparentNavigation = true @@ -21,6 +27,9 @@ class MainActivity : SimpleActivity() { appLaunched(BuildConfig.APPLICATION_ID) window.setDecorFitsSystemWindows(false) (all_apps_fragment as AllAppsFragment).setupFragment(this) + mScreenHeight = realScreenSize.y + mCurrentFragmentY = mScreenHeight + all_apps_fragment.y = mScreenHeight.toFloat() } override fun onResume() { @@ -34,4 +43,21 @@ class MainActivity : SimpleActivity() { super.onConfigurationChanged(newConfig) (all_apps_fragment as AllAppsFragment).onConfigurationChanged() } + + override fun onTouchEvent(event: MotionEvent): Boolean { + when (event.actionMasked) { + MotionEvent.ACTION_DOWN -> { + mTouchDownY = event.y.toInt() + mCurrentFragmentY = all_apps_fragment.y.toInt() + } + + MotionEvent.ACTION_MOVE -> { + val diffY = mTouchDownY - event.y + val newY = mCurrentFragmentY - diffY + all_apps_fragment.y = Math.min(Math.max(0f, newY), mScreenHeight.toFloat()) + } + } + + return true + } } diff --git a/app/src/main/kotlin/com/simplemobiletools/launcher/fragments/AllAppsFragment.kt b/app/src/main/kotlin/com/simplemobiletools/launcher/fragments/AllAppsFragment.kt index 5d5fe8d..184cdeb 100644 --- a/app/src/main/kotlin/com/simplemobiletools/launcher/fragments/AllAppsFragment.kt +++ b/app/src/main/kotlin/com/simplemobiletools/launcher/fragments/AllAppsFragment.kt @@ -28,6 +28,7 @@ class AllAppsFragment(context: Context, attributeSet: AttributeSet) : RelativeLa fun setupFragment(activity: SimpleActivity) { this.activity = activity getLaunchers() + setBackgroundColor(activity.getProperBackgroundColor()) } fun onConfigurationChanged() { diff --git a/app/src/main/res/layout/activity_main.xml b/app/src/main/res/layout/activity_main.xml index 97be365..86f4d10 100644 --- a/app/src/main/res/layout/activity_main.xml +++ b/app/src/main/res/layout/activity_main.xml @@ -8,4 +8,9 @@ android:id="@+id/all_apps_fragment" layout="@layout/all_apps_fragment" /> +