Add 'Fear' UI theme, assets and launcher UI updates - #11
Conversation
|
CodeAnt AI is reviewing your PR. |
| <com.kdt.mcgui.LauncherMenuButton android:id="@+id/tab_home" style="@style/FearLeftNavButton.Selected" android:text="Home" android:drawableStart="@drawable/ic_px_home" /> | ||
| <com.kdt.mcgui.LauncherMenuButton android:id="@+id/tab_installations" style="@style/FearLeftNavButton" android:text="Instances" android:drawableStart="@drawable/ic_px_file" /> | ||
| <com.kdt.mcgui.LauncherMenuButton android:id="@+id/tab_skin" style="@style/FearLeftNavButton" android:text="Skins" android:drawableStart="@drawable/ic_px_image" /> | ||
| <com.kdt.mcgui.LauncherMenuButton android:id="@+id/tab_settings_icon" style="@style/FearLeftNavButton" android:text="Settings" android:drawableStart="@drawable/ic_px_sliders" /> |
There was a problem hiding this comment.
Suggestion: These new left-navigation tabs are never handled anywhere in Java/Kotlin (no R.id.tab_home, tab_installations, tab_skin, or tab_settings_icon listeners), so tapping them does nothing. Wire each tab to its intended navigation action (or remove them) to avoid shipping non-functional primary navigation in landscape. [incomplete implementation]
Severity Level: Critical 🚨
- ❌ Landscape launcher left navigation buttons appear but do nothing.
- ⚠️ Users cannot change instances/skins via new sidebar tabs.Steps of Reproduction ✅
1. Open
app_pojavlauncher/src/main/java/net/kdt/pojavlaunch/fragments/MainMenuFragment.java and
observe the constructor at lines ~120-130 (tool header shows lines 120-199) calling
super(R.layout.fragment_launcher), confirming fragment_launcher.xml is the layout used for
the main menu fragment.
2. Open app_pojavlauncher/src/main/res/layout-land/fragment_launcher.xml and verify that
the left navigation buttons are defined at lines 10-13 with ids @+id/tab_home,
@+id/tab_installations, @+id/tab_skin, and @+id/tab_settings_icon, using
com.kdt.mcgui.LauncherMenuButton.
3. Using the Grep tool, search the Java sources for "tab_home" (pattern "tab_home", glob
"*.java") across /workspace/FearLauncher; the search returns "No matches found",
confirming there is no code-behind reference to R.id.tab_home (or the other tab ids) in
any Java class.
4. In MainMenuFragment.onViewCreated (same file, lines ~130-180), note that only
play_button, hamburger_menu_icon, edit_profile_button_main, account_button,
notification_button, settings_button, and settings_tray are wired with findViewById and
setOnClickListener, and no handlers exist for tab_home, tab_installations, tab_skin, or
tab_settings_icon, so when the landscape main menu is displayed and a user taps any
left-nav tab, the click produces only default view feedback with no navigation or state
change.(Use Cmd/Ctrl + Click for best experience)
Prompt for AI Agent 🤖
This is a comment left during a code review.
**Path:** app_pojavlauncher/src/main/res/layout-land/fragment_launcher.xml
**Line:** 10:13
**Comment:**
*Incomplete Implementation: These new left-navigation tabs are never handled anywhere in Java/Kotlin (no `R.id.tab_home`, `tab_installations`, `tab_skin`, or `tab_settings_icon` listeners), so tapping them does nothing. Wire each tab to its intended navigation action (or remove them) to avoid shipping non-functional primary navigation in landscape.
Validate the correctness of the flagged issue. If correct, How can I resolve this? If you propose a fix, implement it and please make it concise.
Once fix is implemented, also check other comments on the same PR, and ask user if the user wants to fix the rest of the comments as well. if said yes, then fetch all the comments validate the correctness and implement a minimal fix| <TextView android:layout_width="150dp" android:layout_height="44dp" android:gravity="center" android:background="@drawable/fear_glass_chip_bg" android:text="● Online ˅" android:textColor="#FFFFFF" android:textSize="14sp"/> | ||
| <ImageButton android:id="@+id/account_button" android:layout_width="48dp" android:layout_height="48dp" android:layout_marginStart="28dp" android:background="@drawable/fear_glass_chip_bg" android:src="@drawable/ic_account_circle" android:padding="11dp" app:tint="#FFFFFF"/> | ||
| <ImageButton android:id="@+id/notification_button" android:layout_width="48dp" android:layout_height="48dp" android:layout_marginStart="12dp" android:background="@drawable/fear_glass_chip_bg" android:src="@drawable/ic_px_bell" android:padding="12dp" app:tint="#FFFFFF"/> | ||
| <com.kdt.mcgui.LauncherMenuButton android:id="@+id/hamburger_menu_icon" android:layout_width="48dp" android:layout_height="48dp" android:layout_marginStart="12dp" android:background="@drawable/fear_glass_chip_bg" android:src="@drawable/ic_three_dots" android:padding="12dp" app:tint="#FFFFFF"/> |
There was a problem hiding this comment.
Suggestion: hamburger_menu_icon is a LauncherMenuButton (button/text-based view), but it is configured with android:src/app:tint image-view style attributes; on this widget those attributes are not the correct API and the icon can fail to render as intended. Use a compatible image widget or set the icon through the button’s compound-drawable API (drawableStart/drawable*) so the menu icon reliably appears. [api mismatch]
Severity Level: Major ⚠️
- ⚠️ Hamburger menu icon invisible or inconsistent on launcher top bar.
- ⚠️ Users may miss command dashboard entrypoint, reducing discoverability.Steps of Reproduction ✅
1. Open app_pojavlauncher/src/main/res/layout-land/fragment_launcher.xml and locate the
top-bar definition around line 19; at line 24 the control with id @+id/hamburger_menu_icon
is declared as a com.kdt.mcgui.LauncherMenuButton with
android:src="@drawable/ic_three_dots" and app:tint, but no android:text or compound
drawable attributes.
2. Open app_pojavlauncher/src/main/java/com/kdt/mcgui/LauncherMenuButton.java and observe
at lines 4-12 that LauncherMenuButton extends fr.spse.extended_view.ExtendedButton and
configures text padding and compound drawable sizes in setSettings(), indicating it is a
Button/TextView-derived widget that uses compound drawables, not an ImageView-derived
widget that would honor android:src.
3. In the same LauncherMenuButton class, note there is no code reading an android:src
attribute or mapping it into a drawable, so on inflation the android:src specified in
fragment_launcher.xml has no effect and the LauncherMenuButton will only draw its
background (fear_glass_chip_bg) with no icon content.
4. Open
app_pojavlauncher/src/main/java/net/kdt/pojavlaunch/fragments/MainMenuFragment.java and
confirm in onViewCreated (lines ~120-180) that the hamburger button is retrieved with
view.findViewById(R.id.hamburger_menu_icon) and given an onClickListener that calls
openCommandDashboard(); when this fragment is shown in landscape, the user sees a blank
glass chip button without the three-dots icon, making the command dashboard entrypoint
visually ambiguous even though the click still works.(Use Cmd/Ctrl + Click for best experience)
Prompt for AI Agent 🤖
This is a comment left during a code review.
**Path:** app_pojavlauncher/src/main/res/layout-land/fragment_launcher.xml
**Line:** 24:24
**Comment:**
*Api Mismatch: `hamburger_menu_icon` is a `LauncherMenuButton` (button/text-based view), but it is configured with `android:src`/`app:tint` image-view style attributes; on this widget those attributes are not the correct API and the icon can fail to render as intended. Use a compatible image widget or set the icon through the button’s compound-drawable API (`drawableStart`/`drawable*`) so the menu icon reliably appears.
Validate the correctness of the flagged issue. If correct, How can I resolve this? If you propose a fix, implement it and please make it concise.
Once fix is implemented, also check other comments on the same PR, and ask user if the user wants to fix the rest of the comments as well. if said yes, then fetch all the comments validate the correctness and implement a minimal fix| <LinearLayout android:id="@+id/top_bar" android:layout_width="0dp" android:layout_height="74dp" android:gravity="center_vertical" android:paddingStart="36dp" android:paddingEnd="24dp" app:layout_constraintStart_toEndOf="@id/left_nav" app:layout_constraintEnd_toEndOf="parent" app:layout_constraintTop_toTopOf="parent"> | ||
| <LinearLayout android:layout_width="0dp" android:layout_height="wrap_content" android:layout_weight="1" android:orientation="vertical"><TextView android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="Welcome back," android:textColor="#18B9FF" android:textSize="15sp" android:textStyle="bold"/><TextView android:id="@+id/account_name_display" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="minetwice" android:textColor="#FFFFFF" android:textSize="34sp" android:textStyle="bold"/></LinearLayout> | ||
| <TextView android:layout_width="150dp" android:layout_height="44dp" android:gravity="center" android:background="@drawable/fear_glass_chip_bg" android:text="● Online ˅" android:textColor="#FFFFFF" android:textSize="14sp"/> | ||
| <ImageButton android:id="@+id/account_button" android:layout_width="48dp" android:layout_height="48dp" android:layout_marginStart="28dp" android:background="@drawable/fear_glass_chip_bg" android:src="@drawable/ic_account_circle" android:padding="11dp" app:tint="#FFFFFF"/> | ||
| <ImageButton android:id="@+id/notification_button" android:layout_width="48dp" android:layout_height="48dp" android:layout_marginStart="12dp" android:background="@drawable/fear_glass_chip_bg" android:src="@drawable/ic_px_bell" android:padding="12dp" app:tint="#FFFFFF"/> | ||
| <com.kdt.mcgui.LauncherMenuButton android:id="@+id/hamburger_menu_icon" android:layout_width="48dp" android:layout_height="48dp" android:layout_marginStart="12dp" android:background="@drawable/fear_glass_chip_bg" android:src="@drawable/ic_three_dots" android:padding="12dp" app:tint="#FFFFFF"/> |
There was a problem hiding this comment.
Suggestion: The top bar combines multiple fixed-width controls (status chip and icon buttons with extra start margins) inside the remaining space after the fixed left rail, so on narrower devices the row cannot fit and controls will clip or be pushed offscreen. Make this row responsive (wrap/constraint chain/compact variant) instead of relying on fixed widths and large fixed gaps. [css layout issue]
Severity Level: Critical 🚨
- ❌ Top-bar account, notification, settings icons clip offscreen.
- ⚠️ Users cannot access account manager from small devices.
- ⚠️ Online status chip partially hidden, confusing presence state.Steps of Reproduction ✅
1. Launch the app so `LauncherActivity` creates `MainMenuFragment`
(`LauncherActivity.java:153`) and the fragment inflates `R.layout.fragment_launcher`
(`MainMenuFragment.java:125`), bringing the top bar from `fragment_launcher.xml` into
view.
2. In `MainMenuFragment.onViewCreated`
(`app_pojavlauncher/src/main/java/net/kdt/pojavlaunch/fragments/MainMenuFragment.java:162-182`),
the views `R.id.account_button`, `R.id.notification_button`, and `R.id.settings_button`
are bound and given click listeners, making the corresponding top-bar controls in
`fragment_launcher.xml` critical for account, notification, and settings access.
3. On a narrow portrait phone (e.g. ~360dp wide), the `top_bar` LinearLayout (line 19) is
constrained between the fixed-width sidebar `left_nav` (`210dp` at line 5) and the right
edge with `layout_width="0dp"` (match constraints), so its total width is approximately
`deviceWidth - 210dp` (~150dp); `paddingStart="36dp"` and `paddingEnd="24dp"` further
reduce usable child width to ~90dp.
4. The children in `top_bar` include a fixed-width status chip TextView
(`layout_width="150dp"` at line 21) and three 48dp-wide icon buttons with start margins
(`lines 22–24`), whose combined required width far exceeds the ~90dp available; Android’s
LinearLayout therefore clamps or clips these controls, causing the rightmost actions
(notification, settings, and hamburger menu) to be partially or fully offscreen and
difficult or impossible to tap on small-screen devices.(Use Cmd/Ctrl + Click for best experience)
Prompt for AI Agent 🤖
This is a comment left during a code review.
**Path:** app_pojavlauncher/src/main/res/layout/fragment_launcher.xml
**Line:** 19:24
**Comment:**
*Css Layout Issue: The top bar combines multiple fixed-width controls (status chip and icon buttons with extra start margins) inside the remaining space after the fixed left rail, so on narrower devices the row cannot fit and controls will clip or be pushed offscreen. Make this row responsive (wrap/constraint chain/compact variant) instead of relying on fixed widths and large fixed gaps.
Validate the correctness of the flagged issue. If correct, How can I resolve this? If you propose a fix, implement it and please make it concise.
Once fix is implemented, also check other comments on the same PR, and ask user if the user wants to fix the rest of the comments as well. if said yes, then fetch all the comments validate the correctness and implement a minimal fix|
|
||
| <TextView android:id="@+id/subtitle" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_marginStart="36dp" android:text="Ready to play Minecraft?" android:textColor="#B7C8E8" android:textSize="14sp" app:layout_constraintStart_toEndOf="@id/left_nav" app:layout_constraintTop_toBottomOf="@id/top_bar"/> | ||
|
|
||
| <androidx.constraintlayout.widget.ConstraintLayout android:id="@+id/hero_card" android:layout_width="0dp" android:layout_height="0dp" android:layout_marginStart="36dp" android:layout_marginTop="22dp" android:layout_marginEnd="280dp" android:layout_marginBottom="104dp" android:padding="18dp" android:background="@drawable/fear_glass_panel_bg" app:layout_constraintStart_toEndOf="@id/left_nav" app:layout_constraintEnd_toEndOf="parent" app:layout_constraintTop_toBottomOf="@id/subtitle" app:layout_constraintBottom_toBottomOf="parent"> |
There was a problem hiding this comment.
Suggestion: The central hero panel is constrained with a very large fixed end margin while a fixed-width sidebar is also present, which can drive the available width to zero on common phone widths and make the main launcher content disappear. Replace hardcoded large margins with responsive constraints (percent width/guidelines or size-qualified layouts) so the card always has usable width. [css layout issue]
Severity Level: Critical 🚨
- ❌ Hero card collapses; play button becomes unusable.
- ⚠️ Active instance details hidden; users lose context.Steps of Reproduction ✅
1. Launch the Android app so `LauncherActivity` starts; on first creation it replaces
`R.id.container_fragment` with `new MainMenuFragment()`
(`app_pojavlauncher/src/main/java/net/kdt/pojavlaunch/LauncherActivity.java:153`), making
the main dashboard use `MainMenuFragment`.
2. `MainMenuFragment` constructs with `super(R.layout.fragment_launcher)`
(`app_pojavlauncher/src/main/java/net/kdt/pojavlaunch/fragments/MainMenuFragment.java:125`),
which inflates `app_pojavlauncher/src/main/res/layout/fragment_launcher.xml` as the active
layout.
3. On a typical phone-width device in portrait (e.g. ~360dp), the root `ConstraintLayout`
in `fragment_launcher.xml` (line 2) has width equal to the device; the fixed left sidebar
`@+id/left_nav` (line 5) consumes `210dp`, and the hero card `@+id/hero_card` (line 29) is
constrained between `left_nav` and the parent with `android:layout_marginStart="36dp"` and
`android:layout_marginEnd="280dp"`.
4. The effective available width for `hero_card` becomes `deviceWidth - 210dp - 36dp -
280dp`, which is zero or negative on common phone widths; because `hero_card` uses
`layout_width="0dp"` (match constraints) with those margins, ConstraintLayout resolves it
to near-zero width, causing its contents (version label and play button at line 31) to
render collapsed or offscreen, so the main launcher panel and primary play control
effectively disappear on small screens.(Use Cmd/Ctrl + Click for best experience)
Prompt for AI Agent 🤖
This is a comment left during a code review.
**Path:** app_pojavlauncher/src/main/res/layout/fragment_launcher.xml
**Line:** 29:29
**Comment:**
*Css Layout Issue: The central hero panel is constrained with a very large fixed end margin while a fixed-width sidebar is also present, which can drive the available width to zero on common phone widths and make the main launcher content disappear. Replace hardcoded large margins with responsive constraints (percent width/guidelines or size-qualified layouts) so the card always has usable width.
Validate the correctness of the flagged issue. If correct, How can I resolve this? If you propose a fix, implement it and please make it concise.
Once fix is implemented, also check other comments on the same PR, and ask user if the user wants to fix the rest of the comments as well. if said yes, then fetch all the comments validate the correctness and implement a minimal fix|
CodeAnt AI finished reviewing your PR. |
|
add mobile glues and launcher to laggy in entry level phone. |
|
Dude |
1 similar comment
|
Dude |
|
Sorry bro someone using my GitHub✌️😭 |
User description
Motivation
Description
fear_*) and new style definitions (FearLeftNavButton,FearPlayButton, etc.) and wired them intostyles.xmlto define the new theme look.fragment_launcher.xmland landscape variant), the progress/dashboard view (view_progress.xml),fragment_mod_search.xml,fragment_account_manager.xml,premium_skin_customizer_pane.xml, and skin customizer to use the new drawables, updated components and new left navigation, top bar, hero card, right cards and quick-launch areas.MainMenuFragment.javato change play button text states, add sound effects viaSoundManager.playClick()andv.playSoundEffect(), and wire new click handlers foraccount_button,notification_button, andsettings_button; the hamburger now callsopenCommandDashboard()andmPlayStateListenerdisplays updated labels/icons.Testing
./gradlew assembleDebug, which completed successfully../gradlew lint, which completed successfully.Codex Task
CodeAnt-AI Description
Redesign the launcher and related screens with the new Fear theme
What Changed
Impact
✅ Clearer launcher navigation✅ Easier account and settings access✅ More readable download progress💡 Usage Guide
Checking Your Pull Request
Every time you make a pull request, our system automatically looks through it. We check for security issues, mistakes in how you're setting up your infrastructure, and common code problems. We do this to make sure your changes are solid and won't cause any trouble later.
Talking to CodeAnt AI
Got a question or need a hand with something in your pull request? You can easily get in touch with CodeAnt AI right here. Just type the following in a comment on your pull request, and replace "Your question here" with whatever you want to ask:
This lets you have a chat with CodeAnt AI about your pull request, making it easier to understand and improve your code.
Example
Preserve Org Learnings with CodeAnt
You can record team preferences so CodeAnt AI applies them in future reviews. Reply directly to the specific CodeAnt AI suggestion (in the same thread) and replace "Your feedback here" with your input:
This helps CodeAnt AI learn and adapt to your team's coding style and standards.
Example
Retrigger review
Ask CodeAnt AI to review the PR again, by typing:
Check Your Repository Health
To analyze the health of your code repository, visit our dashboard at https://app.codeant.ai. This tool helps you identify potential issues and areas for improvement in your codebase, ensuring your repository maintains high standards of code health.