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"/> + + +