This commit is contained in:
Josia Pietsch 2025-03-20 14:55:22 +01:00
parent 865cd47583
commit 54409b6312
Signed by: jrpie
GPG key ID: E70B571D66986A2D
2 changed files with 20 additions and 16 deletions

View file

@ -2,10 +2,10 @@ package de.jrpie.android.launcher.ui
import android.annotation.SuppressLint import android.annotation.SuppressLint
import android.content.SharedPreferences import android.content.SharedPreferences
import android.content.res.Configuration
import android.content.res.Resources import android.content.res.Resources
import android.os.Build import android.os.Build
import android.os.Bundle import android.os.Bundle
import android.util.DisplayMetrics
import android.view.KeyEvent import android.view.KeyEvent
import android.view.MotionEvent import android.view.MotionEvent
import android.view.View import android.view.View
@ -56,22 +56,11 @@ class HomeActivity : UIObject, AppCompatActivity() {
super<AppCompatActivity>.onCreate(savedInstanceState) super<AppCompatActivity>.onCreate(savedInstanceState)
super<UIObject>.onCreate() super<UIObject>.onCreate()
val displayMetrics = DisplayMetrics()
@Suppress("deprecation") // required to support API < 30
windowManager.defaultDisplay.getMetrics(displayMetrics)
val width = displayMetrics.widthPixels
val height = displayMetrics.heightPixels
touchGestureDetector = TouchGestureDetector( touchGestureDetector = TouchGestureDetector(
this, this, 0, 0,
width,
height,
LauncherPreferences.enabled_gestures().edgeSwipeEdgeWidth() / 100f LauncherPreferences.enabled_gestures().edgeSwipeEdgeWidth() / 100f
) )
touchGestureDetector.updateScreenSize(windowManager)
// Initialise layout // Initialise layout
binding = HomeBinding.inflate(layoutInflater) binding = HomeBinding.inflate(layoutInflater)
@ -103,6 +92,11 @@ class HomeActivity : UIObject, AppCompatActivity() {
} }
} }
override fun onConfigurationChanged(newConfig: Configuration) {
super.onConfigurationChanged(newConfig)
touchGestureDetector.updateScreenSize(windowManager)
}
override fun onStart() { override fun onStart() {
super<AppCompatActivity>.onStart() super<AppCompatActivity>.onStart()

View file

@ -5,8 +5,10 @@ import android.graphics.Insets
import android.os.Build import android.os.Build
import android.os.Handler import android.os.Handler
import android.os.Looper import android.os.Looper
import android.util.DisplayMetrics
import android.view.MotionEvent import android.view.MotionEvent
import android.view.ViewConfiguration import android.view.ViewConfiguration
import android.view.WindowManager
import androidx.annotation.RequiresApi import androidx.annotation.RequiresApi
import de.jrpie.android.launcher.actions.Gesture import de.jrpie.android.launcher.actions.Gesture
import de.jrpie.android.launcher.preferences.LauncherPreferences import de.jrpie.android.launcher.preferences.LauncherPreferences
@ -17,8 +19,8 @@ import kotlin.math.tan
class TouchGestureDetector( class TouchGestureDetector(
private val context: Context, private val context: Context,
val width: Int, var width: Int,
val height: Int, var height: Int,
var edgeWidth: Float var edgeWidth: Float
) { ) {
private val ANGULAR_THRESHOLD = tan(Math.PI / 6) private val ANGULAR_THRESHOLD = tan(Math.PI / 6)
@ -319,6 +321,14 @@ class TouchGestureDetector(
} }
} }
fun updateScreenSize(windowManager: WindowManager) {
val displayMetrics = DisplayMetrics()
@Suppress("deprecation") // required to support API < 30
windowManager.defaultDisplay.getMetrics(displayMetrics)
width = displayMetrics.widthPixels
height = displayMetrics.heightPixels
}
@RequiresApi(Build.VERSION_CODES.Q) @RequiresApi(Build.VERSION_CODES.Q)
fun setSystemGestureInsets(insets: Insets) { fun setSystemGestureInsets(insets: Insets) {
systemGestureInsetTop = insets.top systemGestureInsetTop = insets.top