diff --git a/app/src/main/java/de/jrpie/android/launcher/preferences/LauncherPreferences$Config.java b/app/src/main/java/de/jrpie/android/launcher/preferences/LauncherPreferences$Config.java
index c216911..19362c2 100644
--- a/app/src/main/java/de/jrpie/android/launcher/preferences/LauncherPreferences$Config.java
+++ b/app/src/main/java/de/jrpie/android/launcher/preferences/LauncherPreferences$Config.java
@@ -33,7 +33,8 @@ import eu.jonahbauer.android.preference.annotations.Preferences;
@Preference(name = "hide_private_space_apps", type = boolean.class, defaultValue = "false"),
}),
@PreferenceGroup(name = "list", prefix = "settings_list_", suffix = "_key", value = {
- @Preference(name = "layout", type = ListLayout.class, defaultValue = "DEFAULT")
+ @Preference(name = "layout", type = ListLayout.class, defaultValue = "DEFAULT"),
+ @Preference(name = "reverse_layout", type = boolean.class, defaultValue = "false")
}),
@PreferenceGroup(name = "gestures", prefix = "settings_gesture_", suffix = "_key", value = {
}),
diff --git a/app/src/main/java/de/jrpie/android/launcher/ui/list/apps/ListFragmentApps.kt b/app/src/main/java/de/jrpie/android/launcher/ui/list/apps/ListFragmentApps.kt
index 3a6e403..a02c50f 100644
--- a/app/src/main/java/de/jrpie/android/launcher/ui/list/apps/ListFragmentApps.kt
+++ b/app/src/main/java/de/jrpie/android/launcher/ui/list/apps/ListFragmentApps.kt
@@ -9,6 +9,8 @@ import android.view.View
import android.view.ViewGroup
import android.widget.Toast
import androidx.fragment.app.Fragment
+import androidx.recyclerview.widget.GridLayoutManager
+import androidx.recyclerview.widget.LinearLayoutManager
import de.jrpie.android.launcher.R
import de.jrpie.android.launcher.apps.AppFilter
import de.jrpie.android.launcher.databinding.ListAppsBinding
@@ -79,11 +81,18 @@ class ListFragmentApps : Fragment(), UIObject {
layout = LauncherPreferences.list().layout()
)
+
// set up the list / recycler
binding.listAppsRview.apply {
// improve performance (since content changes don't change the layout size)
setHasFixedSize(true)
layoutManager = LauncherPreferences.list().layout().layoutManager(context)
+ .also {
+ if (LauncherPreferences.list().reverseLayout()) {
+ (it as? LinearLayoutManager)?.reverseLayout = true
+ (it as? GridLayoutManager)?.reverseLayout = true
+ }
+ }
adapter = appsRecyclerAdapter
}
diff --git a/app/src/main/res/values/donottranslate.xml b/app/src/main/res/values/donottranslate.xml
index 6ebdf63..9dd7402 100644
--- a/app/src/main/res/values/donottranslate.xml
+++ b/app/src/main/res/values/donottranslate.xml
@@ -16,6 +16,7 @@
apps.hide_paused_apps
apps.hide_private_space_apps
list.layout
+ list.reverse_layout
general.select_launcher
diff --git a/app/src/main/res/values/strings.xml b/app/src/main/res/values/strings.xml
index 95dc9d4..fc5f883 100644
--- a/app/src/main/res/values/strings.xml
+++ b/app/src/main/res/values/strings.xml
@@ -178,6 +178,7 @@
Hide paused apps
Hide private space from app list
Layout of app list
+ Reverse app list
Default
Text
diff --git a/app/src/main/res/xml/preferences.xml b/app/src/main/res/xml/preferences.xml
index 406f81a..a90debd 100644
--- a/app/src/main/res/xml/preferences.xml
+++ b/app/src/main/res/xml/preferences.xml
@@ -164,6 +164,12 @@
android:summary="%s"
android:defaultValue="DEFAULT"/>
+
+
+