From 85a9f217e59fae42deb9cc3746d2caef28eb9bb0 Mon Sep 17 00:00:00 2001 From: Mathias Boulay Date: Thu, 9 May 2024 22:07:30 +0200 Subject: [PATCH] Fix: QoL stuff (#5443) * Tweak: align ram selection to multiples of height * tweak: ignore the notch for portrait devices while in the launcher * tweak(colors): make colors consistent across screens * fix(ui): make click animation consistent * fix(modpack-ui): handle long titles overlapping the source icon * fix:(modrinth-api): offset call is being ignored * fix(modpack-ui): remove keyboard after search * fix(profile-editor): properly consume file selection for custom controls Based from the work of @HopiHopy --- .../main/java/net/kdt/pojavlaunch/BaseActivity.java | 7 ++++++- .../java/net/kdt/pojavlaunch/LauncherActivity.java | 6 ++++++ .../pojavlaunch/fragments/FileSelectorFragment.java | 1 + .../pojavlaunch/fragments/ProfileEditorFragment.java | 2 ++ .../kdt/pojavlaunch/fragments/SearchModFragment.java | 3 ++- .../modloaders/modpacks/api/ModrinthApi.java | 12 +++++++++++- .../prefs/screens/LauncherPreferenceFragment.java | 3 +-- .../screens/LauncherPreferenceJavaFragment.java | 2 +- .../main/res/drawable/background_line_selected.xml | 1 - .../main/res/drawable/background_line_unselected.xml | 12 +++++++++--- app_pojavlauncher/src/main/res/layout/view_mod.xml | 3 ++- .../src/main/res/values-land/styles.xml | 2 +- app_pojavlauncher/src/main/res/values/styles.xml | 2 +- app_pojavlauncher/src/main/res/xml/pref_java.xml | 2 +- 14 files changed, 44 insertions(+), 14 deletions(-) diff --git a/app_pojavlauncher/src/main/java/net/kdt/pojavlaunch/BaseActivity.java b/app_pojavlauncher/src/main/java/net/kdt/pojavlaunch/BaseActivity.java index c3bebc7ca..9fe3c0970 100644 --- a/app_pojavlauncher/src/main/java/net/kdt/pojavlaunch/BaseActivity.java +++ b/app_pojavlauncher/src/main/java/net/kdt/pojavlaunch/BaseActivity.java @@ -47,6 +47,11 @@ public abstract class BaseActivity extends AppCompatActivity { protected void onPostResume() { super.onPostResume(); Tools.setFullscreen(this, setFullscreen()); - Tools.ignoreNotch(PREF_IGNORE_NOTCH,this); + Tools.ignoreNotch(shouldIgnoreNotch(),this); + } + + /** @return Whether or not the notch should be ignored */ + protected boolean shouldIgnoreNotch(){ + return PREF_IGNORE_NOTCH; } } diff --git a/app_pojavlauncher/src/main/java/net/kdt/pojavlaunch/LauncherActivity.java b/app_pojavlauncher/src/main/java/net/kdt/pojavlaunch/LauncherActivity.java index cfa48eb3a..73bd5977d 100644 --- a/app_pojavlauncher/src/main/java/net/kdt/pojavlaunch/LauncherActivity.java +++ b/app_pojavlauncher/src/main/java/net/kdt/pojavlaunch/LauncherActivity.java @@ -1,5 +1,6 @@ package net.kdt.pojavlaunch; +import static android.content.res.Configuration.ORIENTATION_PORTRAIT; import android.Manifest; import android.app.NotificationManager; import android.content.Context; @@ -153,6 +154,11 @@ public class LauncherActivity extends BaseActivity { private ActivityResultLauncher mRequestNotificationPermissionLauncher; private WeakReference mRequestNotificationPermissionRunnable; + @Override + protected boolean shouldIgnoreNotch() { + return getResources().getConfiguration().orientation == ORIENTATION_PORTRAIT || super.shouldIgnoreNotch(); + } + @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); diff --git a/app_pojavlauncher/src/main/java/net/kdt/pojavlaunch/fragments/FileSelectorFragment.java b/app_pojavlauncher/src/main/java/net/kdt/pojavlaunch/fragments/FileSelectorFragment.java index 7cb262746..8492acf1e 100644 --- a/app_pojavlauncher/src/main/java/net/kdt/pojavlaunch/fragments/FileSelectorFragment.java +++ b/app_pojavlauncher/src/main/java/net/kdt/pojavlaunch/fragments/FileSelectorFragment.java @@ -25,6 +25,7 @@ import java.io.File; public class FileSelectorFragment extends Fragment { public static final String TAG = "FileSelectorFragment"; public static final String BUNDLE_SELECT_FOLDER = "select_folder"; + public static final String BUNDLE_SELECT_FILE = "select_file"; public static final String BUNDLE_SHOW_FILE = "show_file"; public static final String BUNDLE_SHOW_FOLDER = "show_folder"; public static final String BUNDLE_ROOT_PATH = "root_path"; diff --git a/app_pojavlauncher/src/main/java/net/kdt/pojavlaunch/fragments/ProfileEditorFragment.java b/app_pojavlauncher/src/main/java/net/kdt/pojavlaunch/fragments/ProfileEditorFragment.java index 831e8b780..d0e570962 100644 --- a/app_pojavlauncher/src/main/java/net/kdt/pojavlaunch/fragments/ProfileEditorFragment.java +++ b/app_pojavlauncher/src/main/java/net/kdt/pojavlaunch/fragments/ProfileEditorFragment.java @@ -122,6 +122,8 @@ public class ProfileEditorFragment extends Fragment implements CropperUtils.Crop Bundle bundle = new Bundle(3); bundle.putBoolean(FileSelectorFragment.BUNDLE_SELECT_FOLDER, false); bundle.putString(FileSelectorFragment.BUNDLE_ROOT_PATH, Tools.CTRLMAP_PATH); + mValueToConsume = FileSelectorFragment.BUNDLE_SELECT_FILE; + Tools.swapFragment(requireActivity(), FileSelectorFragment.class, FileSelectorFragment.TAG, bundle); }); diff --git a/app_pojavlauncher/src/main/java/net/kdt/pojavlaunch/fragments/SearchModFragment.java b/app_pojavlauncher/src/main/java/net/kdt/pojavlaunch/fragments/SearchModFragment.java index ace5d14af..a4e229317 100644 --- a/app_pojavlauncher/src/main/java/net/kdt/pojavlaunch/fragments/SearchModFragment.java +++ b/app_pojavlauncher/src/main/java/net/kdt/pojavlaunch/fragments/SearchModFragment.java @@ -89,7 +89,8 @@ public class SearchModFragment extends Fragment implements ModItemAdapter.Search mSearchProgressBar.setVisibility(View.VISIBLE); mSearchFilters.name = mSearchEditText.getText().toString(); mModItemAdapter.performSearchQuery(mSearchFilters); - return true; + mSearchEditText.clearFocus(); + return false; }); mOverlay.post(()->{ diff --git a/app_pojavlauncher/src/main/java/net/kdt/pojavlaunch/modloaders/modpacks/api/ModrinthApi.java b/app_pojavlauncher/src/main/java/net/kdt/pojavlaunch/modloaders/modpacks/api/ModrinthApi.java index be345d28f..0e76723bc 100644 --- a/app_pojavlauncher/src/main/java/net/kdt/pojavlaunch/modloaders/modpacks/api/ModrinthApi.java +++ b/app_pojavlauncher/src/main/java/net/kdt/pojavlaunch/modloaders/modpacks/api/ModrinthApi.java @@ -30,9 +30,19 @@ public class ModrinthApi implements ModpackApi{ @Override public SearchResult searchMod(SearchFilters searchFilters, SearchResult previousPageResult) { ModrinthSearchResult modrinthSearchResult = (ModrinthSearchResult) previousPageResult; - HashMap params = new HashMap<>(); + + // Fixes an issue where the offset being equal or greater than total_hits is ignored + if (modrinthSearchResult != null && modrinthSearchResult.previousOffset >= modrinthSearchResult.totalResultCount) { + ModrinthSearchResult emptyResult = new ModrinthSearchResult(); + emptyResult.results = new ModItem[0]; + emptyResult.totalResultCount = modrinthSearchResult.totalResultCount; + emptyResult.previousOffset = modrinthSearchResult.previousOffset; + return emptyResult; + } + // Build the facets filters + HashMap params = new HashMap<>(); StringBuilder facetString = new StringBuilder(); facetString.append("["); facetString.append(String.format("[\"project_type:%s\"]", searchFilters.isModpack ? "modpack" : "mod")); diff --git a/app_pojavlauncher/src/main/java/net/kdt/pojavlaunch/prefs/screens/LauncherPreferenceFragment.java b/app_pojavlauncher/src/main/java/net/kdt/pojavlaunch/prefs/screens/LauncherPreferenceFragment.java index b57eacd58..7275f8691 100644 --- a/app_pojavlauncher/src/main/java/net/kdt/pojavlaunch/prefs/screens/LauncherPreferenceFragment.java +++ b/app_pojavlauncher/src/main/java/net/kdt/pojavlaunch/prefs/screens/LauncherPreferenceFragment.java @@ -3,7 +3,6 @@ package net.kdt.pojavlaunch.prefs.screens; import android.app.Activity; import android.content.SharedPreferences; -import android.graphics.Color; import android.os.Bundle; import android.view.View; @@ -24,7 +23,7 @@ public class LauncherPreferenceFragment extends PreferenceFragmentCompat impleme @Override public void onViewCreated(@NonNull View view, @Nullable Bundle savedInstanceState) { - view.setBackgroundColor(Color.parseColor("#232323")); + view.setBackgroundColor(getResources().getColor(R.color.background_app)); super.onViewCreated(view, savedInstanceState); } diff --git a/app_pojavlauncher/src/main/java/net/kdt/pojavlaunch/prefs/screens/LauncherPreferenceJavaFragment.java b/app_pojavlauncher/src/main/java/net/kdt/pojavlaunch/prefs/screens/LauncherPreferenceJavaFragment.java index dbcf3666d..13c5b26a9 100644 --- a/app_pojavlauncher/src/main/java/net/kdt/pojavlaunch/prefs/screens/LauncherPreferenceJavaFragment.java +++ b/app_pojavlauncher/src/main/java/net/kdt/pojavlaunch/prefs/screens/LauncherPreferenceJavaFragment.java @@ -35,7 +35,7 @@ public class LauncherPreferenceJavaFragment extends LauncherPreferenceFragment { int maxRAM; int deviceRam = getTotalDeviceMemory(seek7.getContext()); - if(is32BitsDevice() || deviceRam < 2048) maxRAM = Math.min(1000, deviceRam); + if(is32BitsDevice() || deviceRam < 2048) maxRAM = Math.min(1024, deviceRam); else maxRAM = deviceRam - (deviceRam < 3064 ? 800 : 1024); //To have a minimum for the device to breathe seek7.setMin(256); diff --git a/app_pojavlauncher/src/main/res/drawable/background_line_selected.xml b/app_pojavlauncher/src/main/res/drawable/background_line_selected.xml index f962a8189..dc9926671 100644 --- a/app_pojavlauncher/src/main/res/drawable/background_line_selected.xml +++ b/app_pojavlauncher/src/main/res/drawable/background_line_selected.xml @@ -12,5 +12,4 @@ android:color="@color/minebutton_color"/> - diff --git a/app_pojavlauncher/src/main/res/drawable/background_line_unselected.xml b/app_pojavlauncher/src/main/res/drawable/background_line_unselected.xml index 1c95d5431..223fad4a1 100644 --- a/app_pojavlauncher/src/main/res/drawable/background_line_unselected.xml +++ b/app_pojavlauncher/src/main/res/drawable/background_line_unselected.xml @@ -7,9 +7,6 @@ - + + + + + + diff --git a/app_pojavlauncher/src/main/res/layout/view_mod.xml b/app_pojavlauncher/src/main/res/layout/view_mod.xml index 863ce17dc..cfca0a84a 100644 --- a/app_pojavlauncher/src/main/res/layout/view_mod.xml +++ b/app_pojavlauncher/src/main/res/layout/view_mod.xml @@ -37,8 +37,9 @@ false @null @color/background_status_bar - @android:color/transparent + @color/background_app @style/PreferenceThemeOverlay.v14.Material @dimen/_14ssp diff --git a/app_pojavlauncher/src/main/res/values/styles.xml b/app_pojavlauncher/src/main/res/values/styles.xml index 58aaeb681..8171c8814 100644 --- a/app_pojavlauncher/src/main/res/values/styles.xml +++ b/app_pojavlauncher/src/main/res/values/styles.xml @@ -6,7 +6,7 @@ false @null @color/background_status_bar - @android:color/transparent + @color/background_app @style/PreferenceThemeOverlay.v14.Material @dimen/_12ssp diff --git a/app_pojavlauncher/src/main/res/xml/pref_java.xml b/app_pojavlauncher/src/main/res/xml/pref_java.xml index 198c63f5f..46616ae4d 100644 --- a/app_pojavlauncher/src/main/res/xml/pref_java.xml +++ b/app_pojavlauncher/src/main/res/xml/pref_java.xml @@ -25,7 +25,7 @@ android:summary="@string/mcl_memory_allocation_subtitle" android:title="@string/mcl_memory_allocation" app2:showSeekBarValue="true" - app2:seekBarIncrement="10" + app2:seekBarIncrement="8" app2:selectable="false"/>