From 78f2dae9ce9237524c866f1118b67e8e7d73a618 Mon Sep 17 00:00:00 2001 From: Mathias-Boulay Date: Thu, 29 Jun 2023 10:59:47 +0200 Subject: [PATCH] Feat[UX]: Make profile creation flow consistent --- .../java/com/kdt/mcgui/mcVersionSpinner.java | 16 +-- ...nt.java => ProfileTypeSelectFragment.java} | 11 ++- .../res/layout/fragment_fabric_install.xml | 43 ++++++-- .../res/layout/fragment_forge_installer.xml | 25 ++++- .../main/res/layout/fragment_mod_profile.xml | 22 ----- .../main/res/layout/fragment_profile_type.xml | 99 +++++++++++++++++++ .../src/main/res/values/dimens.xml | 14 +-- .../src/main/res/values/strings.xml | 5 +- .../src/main/res/values/styles.xml | 8 ++ 9 files changed, 184 insertions(+), 59 deletions(-) rename app_pojavlauncher/src/main/java/net/kdt/pojavlaunch/fragments/{ModdedProfileSelectFragment.java => ProfileTypeSelectFragment.java} (64%) delete mode 100644 app_pojavlauncher/src/main/res/layout/fragment_mod_profile.xml create mode 100644 app_pojavlauncher/src/main/res/layout/fragment_profile_type.xml diff --git a/app_pojavlauncher/src/main/java/com/kdt/mcgui/mcVersionSpinner.java b/app_pojavlauncher/src/main/java/com/kdt/mcgui/mcVersionSpinner.java index 178663111..d0cd464c2 100644 --- a/app_pojavlauncher/src/main/java/com/kdt/mcgui/mcVersionSpinner.java +++ b/app_pojavlauncher/src/main/java/com/kdt/mcgui/mcVersionSpinner.java @@ -6,7 +6,6 @@ import static net.kdt.pojavlaunch.fragments.ProfileEditorFragment.DELETED_PROFIL import android.annotation.SuppressLint; import android.content.Context; import android.os.Build; -import android.os.Bundle; import android.transition.Slide; import android.transition.Transition; import android.util.AttributeSet; @@ -26,8 +25,7 @@ import net.kdt.pojavlaunch.R; import net.kdt.pojavlaunch.Tools; import net.kdt.pojavlaunch.extra.ExtraConstants; import net.kdt.pojavlaunch.extra.ExtraCore; -import net.kdt.pojavlaunch.fragments.ModdedProfileSelectFragment; -import net.kdt.pojavlaunch.fragments.ProfileEditorFragment; +import net.kdt.pojavlaunch.fragments.ProfileTypeSelectFragment; import net.kdt.pojavlaunch.prefs.LauncherPreferences; import net.kdt.pojavlaunch.profiles.ProfileAdapter; import net.kdt.pojavlaunch.profiles.ProfileAdapterExtra; @@ -62,9 +60,6 @@ public class mcVersionSpinner extends ExtendedTextView { new ProfileAdapterExtra(VERSION_SPINNER_PROFILE_CREATE, R.string.create_profile, ResourcesCompat.getDrawable(getResources(), R.drawable.ic_add, null)), - new ProfileAdapterExtra(VERSION_SPINNER_PROFILE_CREATE_MODDED, - R.string.create_profile_modded, - ResourcesCompat.getDrawable(getResources(), R.drawable.ic_add_modded, null)) }); @@ -91,6 +86,7 @@ public class mcVersionSpinner extends ExtendedTextView { int endPadding = getContext().getResources().getDimensionPixelOffset(R.dimen._5sdp); setPaddingRelative(startPadding, 0, endPadding, 0); setCompoundDrawablePadding(startPadding); + int profileIndex; String extra_value = (String) ExtraCore.consumeValue(ExtraConstants.REFRESH_VERSION_SPINNER); if(extra_value != null){ @@ -134,12 +130,8 @@ public class mcVersionSpinner extends ExtendedTextView { ProfileAdapterExtra extra = (ProfileAdapterExtra) item; switch (extra.id) { case VERSION_SPINNER_PROFILE_CREATE: - Tools.swapFragment((FragmentActivity) getContext(), ProfileEditorFragment.class, - ProfileEditorFragment.TAG, true, new Bundle(1)); - break; - case VERSION_SPINNER_PROFILE_CREATE_MODDED: - Tools.swapFragment((FragmentActivity) getContext(), ModdedProfileSelectFragment.class, - ModdedProfileSelectFragment.TAG, true, null); + Tools.swapFragment((FragmentActivity) getContext(), ProfileTypeSelectFragment.class, + ProfileTypeSelectFragment.TAG, true, null); break; } } diff --git a/app_pojavlauncher/src/main/java/net/kdt/pojavlaunch/fragments/ModdedProfileSelectFragment.java b/app_pojavlauncher/src/main/java/net/kdt/pojavlaunch/fragments/ProfileTypeSelectFragment.java similarity index 64% rename from app_pojavlauncher/src/main/java/net/kdt/pojavlaunch/fragments/ModdedProfileSelectFragment.java rename to app_pojavlauncher/src/main/java/net/kdt/pojavlaunch/fragments/ProfileTypeSelectFragment.java index 1c84a670f..2c9fc8460 100644 --- a/app_pojavlauncher/src/main/java/net/kdt/pojavlaunch/fragments/ModdedProfileSelectFragment.java +++ b/app_pojavlauncher/src/main/java/net/kdt/pojavlaunch/fragments/ProfileTypeSelectFragment.java @@ -6,19 +6,22 @@ import android.view.View; import androidx.annotation.NonNull; import androidx.annotation.Nullable; import androidx.fragment.app.Fragment; +import androidx.fragment.app.FragmentActivity; import net.kdt.pojavlaunch.R; import net.kdt.pojavlaunch.Tools; -public class ModdedProfileSelectFragment extends Fragment { - public static final String TAG = "ModdedProfileSelectFragment"; - public ModdedProfileSelectFragment() { - super(R.layout.fragment_mod_profile); +public class ProfileTypeSelectFragment extends Fragment { + public static final String TAG = "ProfileTypeSelectFragment"; + public ProfileTypeSelectFragment() { + super(R.layout.fragment_profile_type); } @Override public void onViewCreated(@NonNull View view, @Nullable Bundle savedInstanceState) { super.onViewCreated(view, savedInstanceState); + view.findViewById(R.id.vanilla_profile).setOnClickListener(v -> Tools.swapFragment(requireActivity(), ProfileEditorFragment.class, + ProfileEditorFragment.TAG, false, new Bundle(1))); view.findViewById(R.id.modded_profile_fabric).setOnClickListener((v)-> Tools.swapFragment(requireActivity(), FabricInstallFragment.class, FabricInstallFragment.TAG, false, null)); view.findViewById(R.id.modded_profile_forge).setOnClickListener((v)-> diff --git a/app_pojavlauncher/src/main/res/layout/fragment_fabric_install.xml b/app_pojavlauncher/src/main/res/layout/fragment_fabric_install.xml index fa585fba0..cf75586d0 100644 --- a/app_pojavlauncher/src/main/res/layout/fragment_fabric_install.xml +++ b/app_pojavlauncher/src/main/res/layout/fragment_fabric_install.xml @@ -7,29 +7,49 @@ android:background="@color/background_app" android:paddingHorizontal="@dimen/fragment_padding_medium"> + + + + + + + app:layout_constraintStart_toStartOf="@+id/fabric_installer_loader_ver_spinner" /> + app:layout_constraintTop_toBottomOf="@id/view" /> @@ -103,8 +126,8 @@ android:id="@+id/fabric_installer_start_button" android:layout_width="0dp" android:layout_height="wrap_content" - android:layout_marginTop="8dp" - android:layout_marginBottom="8dp" + android:layout_marginTop="@dimen/padding_heavy" + android:layout_marginBottom="@dimen/padding_heavy" android:enabled="false" android:text="@string/fabric_dl_install" app:layout_constraintBottom_toTopOf="@+id/fabric_installer_progress_bar" diff --git a/app_pojavlauncher/src/main/res/layout/fragment_forge_installer.xml b/app_pojavlauncher/src/main/res/layout/fragment_forge_installer.xml index d3eedee2b..40f710ad3 100644 --- a/app_pojavlauncher/src/main/res/layout/fragment_forge_installer.xml +++ b/app_pojavlauncher/src/main/res/layout/fragment_forge_installer.xml @@ -2,17 +2,36 @@ + + + + + - - - - - - \ No newline at end of file diff --git a/app_pojavlauncher/src/main/res/layout/fragment_profile_type.xml b/app_pojavlauncher/src/main/res/layout/fragment_profile_type.xml new file mode 100644 index 000000000..ec4cd404a --- /dev/null +++ b/app_pojavlauncher/src/main/res/layout/fragment_profile_type.xml @@ -0,0 +1,99 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/app_pojavlauncher/src/main/res/values/dimens.xml b/app_pojavlauncher/src/main/res/values/dimens.xml index 220a7e23a..465a3132a 100644 --- a/app_pojavlauncher/src/main/res/values/dimens.xml +++ b/app_pojavlauncher/src/main/res/values/dimens.xml @@ -7,13 +7,13 @@ 16dp - 2dp - 3dp - 4dp - 8dp - 16dp - 24dp - 32dp + @dimen/_1sdp + @dimen/_2sdp + @dimen/_4sdp + @dimen/_12sdp + @dimen/_16sdp + @dimen/_24sdp + @dimen/_32sdp 60dp diff --git a/app_pojavlauncher/src/main/res/values/strings.xml b/app_pojavlauncher/src/main/res/values/strings.xml index 35ece2741..6c846ba00 100644 --- a/app_pojavlauncher/src/main/res/values/strings.xml +++ b/app_pojavlauncher/src/main/res/values/strings.xml @@ -385,5 +385,8 @@ Failed to read Fabric metadata. Please try again later. Create Fabric profile Create Forge profile - Create modded profile + Create vanilla profile + Vanilla-like versions + Modded versions + Select versions diff --git a/app_pojavlauncher/src/main/res/values/styles.xml b/app_pojavlauncher/src/main/res/values/styles.xml index 20c51e47a..58aaeb681 100644 --- a/app_pojavlauncher/src/main/res/values/styles.xml +++ b/app_pojavlauncher/src/main/res/values/styles.xml @@ -12,4 +12,12 @@ @dimen/_12ssp + + + +