diff --git a/app/build.gradle b/app/build.gradle index c280794..9c779e1 100644 --- a/app/build.gradle +++ b/app/build.gradle @@ -23,8 +23,8 @@ android { minSdkVersion 21 targetSdkVersion 35 compileSdk 35 - versionCode 43 - versionName "0.1.3" + versionCode 41 + versionName "0.1.1" testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner" } diff --git a/app/src/main/java/de/jrpie/android/launcher/ui/HomeActivity.kt b/app/src/main/java/de/jrpie/android/launcher/ui/HomeActivity.kt index 53a0876..a658cd1 100644 --- a/app/src/main/java/de/jrpie/android/launcher/ui/HomeActivity.kt +++ b/app/src/main/java/de/jrpie/android/launcher/ui/HomeActivity.kt @@ -2,10 +2,10 @@ package de.jrpie.android.launcher.ui import android.annotation.SuppressLint import android.content.SharedPreferences -import android.content.res.Configuration import android.content.res.Resources import android.os.Build import android.os.Bundle +import android.util.DisplayMetrics import android.view.KeyEvent import android.view.MotionEvent import android.view.View @@ -56,11 +56,22 @@ class HomeActivity : UIObject, AppCompatActivity() { super.onCreate(savedInstanceState) super.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( - this, 0, 0, + this, + width, + height, LauncherPreferences.enabled_gestures().edgeSwipeEdgeWidth() / 100f ) - touchGestureDetector.updateScreenSize(windowManager) + + // Initialise layout binding = HomeBinding.inflate(layoutInflater) @@ -92,11 +103,6 @@ class HomeActivity : UIObject, AppCompatActivity() { } } - override fun onConfigurationChanged(newConfig: Configuration) { - super.onConfigurationChanged(newConfig) - touchGestureDetector.updateScreenSize(windowManager) - } - override fun onStart() { super.onStart() diff --git a/app/src/main/java/de/jrpie/android/launcher/ui/TouchGestureDetector.kt b/app/src/main/java/de/jrpie/android/launcher/ui/TouchGestureDetector.kt index 8e8ed4e..9000fa8 100644 --- a/app/src/main/java/de/jrpie/android/launcher/ui/TouchGestureDetector.kt +++ b/app/src/main/java/de/jrpie/android/launcher/ui/TouchGestureDetector.kt @@ -5,10 +5,8 @@ import android.graphics.Insets import android.os.Build import android.os.Handler import android.os.Looper -import android.util.DisplayMetrics import android.view.MotionEvent import android.view.ViewConfiguration -import android.view.WindowManager import androidx.annotation.RequiresApi import de.jrpie.android.launcher.actions.Gesture import de.jrpie.android.launcher.preferences.LauncherPreferences @@ -19,8 +17,8 @@ import kotlin.math.tan class TouchGestureDetector( private val context: Context, - var width: Int, - var height: Int, + val width: Int, + val height: Int, var edgeWidth: Float ) { private val ANGULAR_THRESHOLD = tan(Math.PI / 6) @@ -321,14 +319,6 @@ 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) fun setSystemGestureInsets(insets: Insets) { systemGestureInsetTop = insets.top diff --git a/app/src/main/java/de/jrpie/android/launcher/ui/list/ListActivity.kt b/app/src/main/java/de/jrpie/android/launcher/ui/list/ListActivity.kt index fe27f0f..59d83e5 100644 --- a/app/src/main/java/de/jrpie/android/launcher/ui/list/ListActivity.kt +++ b/app/src/main/java/de/jrpie/android/launcher/ui/list/ListActivity.kt @@ -9,7 +9,8 @@ import android.window.OnBackInvokedDispatcher import androidx.appcompat.app.AppCompatActivity import androidx.appcompat.content.res.AppCompatResources import androidx.fragment.app.Fragment -import androidx.fragment.app.FragmentPagerAdapter +import androidx.viewpager2.adapter.FragmentStateAdapter +import com.google.android.material.tabs.TabLayoutMediator import de.jrpie.android.launcher.Application import de.jrpie.android.launcher.R import de.jrpie.android.launcher.actions.LauncherAction @@ -224,10 +225,13 @@ class ListActivity : AppCompatActivity(), UIObject { updateTitle() val sectionsPagerAdapter = ListSectionsPagerAdapter(this) - binding.listViewpager.let { - it.adapter = sectionsPagerAdapter - binding.listTabs.setupWithViewPager(it) + binding.listViewpager.apply { + adapter = sectionsPagerAdapter + currentItem = 0 } + TabLayoutMediator(binding.listTabs, binding.listViewpager) { tab, position -> + tab.text = sectionsPagerAdapter.getPageTitle(position) + }.attach() } } @@ -239,17 +243,11 @@ private val TAB_TITLES = arrayOf( /** * The [ListSectionsPagerAdapter] returns the fragment, * which corresponds to the selected tab in [ListActivity]. - * - * This should eventually be replaced by a [FragmentStateAdapter] - * However this keyboard does not open when using [ViewPager2] - * so currently [ViewPager] is used here. - * https://github.com/jrpie/launcher/issues/130 */ -@Suppress("deprecation") class ListSectionsPagerAdapter(private val activity: ListActivity) : - FragmentPagerAdapter(activity.supportFragmentManager) { + FragmentStateAdapter(activity) { - override fun getItem(position: Int): Fragment { + override fun createFragment(position: Int): Fragment { return when (position) { 0 -> ListFragmentApps() 1 -> ListFragmentOther() @@ -257,11 +255,11 @@ class ListSectionsPagerAdapter(private val activity: ListActivity) : } } - override fun getPageTitle(position: Int): CharSequence { + fun getPageTitle(position: Int): CharSequence { return activity.resources.getString(TAB_TITLES[position]) } - override fun getCount(): Int { + override fun getItemCount(): Int { return when (activity.intention) { ListActivity.ListActivityIntention.VIEW -> 1 else -> 2 diff --git a/app/src/main/java/de/jrpie/android/launcher/ui/settings/SettingsActivity.kt b/app/src/main/java/de/jrpie/android/launcher/ui/settings/SettingsActivity.kt index cd59726..4c464e5 100644 --- a/app/src/main/java/de/jrpie/android/launcher/ui/settings/SettingsActivity.kt +++ b/app/src/main/java/de/jrpie/android/launcher/ui/settings/SettingsActivity.kt @@ -109,7 +109,7 @@ class SettingsActivity : AppCompatActivity(), UIObject { } private val TAB_TITLES = arrayOf( - R.string.settings_tab_actions, + R.string.settings_tab_app, R.string.settings_tab_launcher, R.string.settings_tab_meta ) diff --git a/app/src/main/res/layout/list.xml b/app/src/main/res/layout/list.xml index 8a3b5d9..45bcb85 100644 --- a/app/src/main/res/layout/list.xml +++ b/app/src/main/res/layout/list.xml @@ -95,12 +95,7 @@ - - Einstellungen - Aktionen + Apps Launcher Meta Configuración + Aplicaciones Launcher Meta Réglages + Applications Launcher Meta Configurações + Apps Launcher Meta Settings - Actions + Apps Launcher Meta @@ -85,9 +85,9 @@ Λ (Reverse) Bottom right -> top mid -> bottom left - Volume Up Key + Volume Up Press the volume up button - Volume Down Key + Volume Down Press the volume down button Double Click Double click an empty area diff --git a/fastlane/metadata/android/en-US/changelogs/42.txt b/fastlane/metadata/android/en-US/changelogs/42.txt deleted file mode 100644 index 39011cf..0000000 --- a/fastlane/metadata/android/en-US/changelogs/42.txt +++ /dev/null @@ -1 +0,0 @@ -* Fixed bug where keyboard does not open automatically diff --git a/fastlane/metadata/android/en-US/changelogs/43.txt b/fastlane/metadata/android/en-US/changelogs/43.txt deleted file mode 100644 index 2bca600..0000000 --- a/fastlane/metadata/android/en-US/changelogs/43.txt +++ /dev/null @@ -1 +0,0 @@ -* Fixed gesture detection in landscape orientation