Conversation
Feature/home redesign
Feature/home redesign
Clean github build warnings
…hem out A clone only creates a local branch for the remote's default branch while every remote branch is fetched into refs/remotes/*, but getAllBranches() listed local branches only. That made a freshly cloned repository look like it had exactly one branch, and checkout of any other branch failed with "Ref <name> cannot be resolved" because JGit has no DWIM rule that maps a remote-only branch name to its remote-tracking ref. - list local and remote-tracking branches together (ListMode.ALL), deduplicated, sorted, skipping the symbolic remote HEAD ref - check out remote-only branches by creating a local tracking branch from the matching remote-tracking ref with upstream configuration set, matching native `git checkout <branch>` semantics
tasks.configureEach disabled every task whose name contains "desugar", which also matched `l8DexDesugarLib<Variant>` — the AGP task that produces the desugar_jdk_libs runtime dex which PackageAndroidArtifact packs into the APK. Debug APKs therefore shipped with no `j$` classes at all (verified: zero `Lj$/...` class definitions in every classes*.dex of run 36273739542), so any desugared JDK call died at runtime. JGit 6.8's RefDirectory.getRefsByPrefix(varargs) — the overload used only when several prefixes are passed, i.e. ListMode.ALL branch listing — calls java.util.stream.Collectors.toUnmodifiableList() (Java 10), which D8 rewrites to j$.util.stream.DesugarCollectors. Opening the Git branches screen therefore crashed with NoClassDefFoundError. Narrow the predicate to `desugar<Variant>FileDependencies` only, the task CI already works around by pre-creating its output directory.
Each GitHub Actions run generated a brand-new ~/.android/debug.keystore: AGP's SigningConfigFactory defaults the "debug" signing config to that path, the runner has no persistent copy (the workflow caches only ~/.gradle), and AGP creates the file when it is missing. Every Debug APK therefore shipped with a different signer certificate: run 36273739542 -> sha256 1e3bb6e9f39d0033b8b169b934b65eef0bee901b... run 35924946644 -> sha256 5000db600eb65c0567d012cf85a57f1b1296d71a... package (com.tom.rv2ide), versionCode (1024), versionName and the whole manifest were identical between those two builds, so the failure was not version ordering or application id: Android rejected the newer build over the installed one because the signatures did not match, and every update needed an uninstall first. Commit one stock Android debug keystore (androiddebugkey/android) and point signingConfigs.debug at it, so CI runs and developer machines all produce identically signed Debug APKs. Release signing and its credentials are untouched, and Debug builds still need no secrets.
fix(git): expose all remote branches after clone and allow checking them out
fix(build): keep desugar_jdk_libs runtime packaged in the APK
fix(core/app): sign Debug builds with a stable committed debug keystore
Presentation-only rework of the Git UI. No GitManager, GitViewModel, navigation or backend behaviour is changed. - repository status bar above the tabs (project path + current branch chip) - shared header card on Changes/History/Branches/Remotes: title, subtitle with screen-specific context, single refresh action with ic_sync - loading spinner until the first data emission, and a consistent empty state (title + subtitle) on every list screen - Branches had none - compact horizontal action rows for branch, changed-file and remote items, consistent 18sp titles / 16sp item titles / 14sp secondary type scale - remotes subtitle names the remote that push/pull/fetch act on - destructive confirmations (delete branch, discard changes, remove remote) and their row buttons now use the theme error color - operation results on the Remotes screen reported through snackbars like every other screen instead of modal dialogs; precondition dialogs kept - bottom padding so list content clears the floating action buttons
The material library does not expose R.attr.colorError; this project resolves the theme's error color through androidx.appcompat (see MainFragment). XML references to ?attr/colorError were already resolvable, only the Kotlin lookup needed the appcompat constant.
Push, Pull and Fetch become three equal-width action cells (icon above label, one shared height, radius and gap) so the row no longer clips its labels in the half-width panel and stays balanced when the panel is expanded. Branch rows lose their card and their redundant current-branch capsule: the checked out branch is now marked with a leading dot, bold primary-colored text and no actions, every other row offers Checkout and Delete through an overflow menu so the branch name keeps the width it needs. Names stay verbatim and are middle-ellipsized only when they do not fit.
The side panel stays the default. A new action in the Git repo header widens the navigation view that already hosts this fragment to the full window and collapses it back to its wrap-content width, so the fragment, the pager and the selected tab keep their state and no new navigation or state container is introduced. The panel collapses itself when another sidebar panel takes over, when the init screen is shown and when the view is destroyed.
Screen headers become plain, compact blocks instead of cards - title plus an icon-only refresh, subtitle, optional action and a divider - which gives the narrow panel back the space the card margins used to eat; list items are tightened by a couple of dp. All Git messages now go through showGitFeedback(): success is tinted with the primary container, neutral information keeps the default snackbar look and failures use the error color and stay on screen longer. Precondition notices that used to open a modal dialog are snackbars now, and nothing is ever suppressed. Destructive confirmations keep their title, short explanation and Cancel /action pair, with a readable on-error label on the filled confirm button; clearing saved credentials is styled like the other destructive dialogs.
Material 1.13.0 no longer ships com.google.android.material.menu.PopupMenu, so the branch actions menu has to come from the platform, and the fallback text color used TextView.currentTextColor.
ui(git): Git UI redesign — unified list-screen scaffold
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Homescreen redesigned
Settings redesigned
And projects git side panel redesigned
Fixed Git not cloning/showing more than 1 branch
About the build workflow idk what i just made
This fully made with ai