Skip to content

UI REVAMP + NEW PING STABLIZATION TOGGLE

Choose a tag to compare

@ChimeraAnt-DEV ChimeraAnt-DEV released this 12 Sep 23:05
· 252 commits to main since this release
30f5dfa
  1. UI revamp — visual richness and motion pass

    Richer accent palette: per-section gradient drawables for the hero card, launch, versions, mods, and content cards (card_*_gradient.xml), plus dark-theme variants in values-night/colors.xml, so screens feel visually distinct rather than re-skinned copies. Section headers gain a 3dp accent bar (section_accent_bar.xml).
    Micro-interactions: DynamicAnim.applyPressScale now adds spring elevation feedback on press alongside the existing scale, and instance cards already use it recursively. Card glow/elevation is applied via applyGlowEffects (hero card) and gated by the glow toggle.
    Live/animated elements: a subtly pulsing last-played hero card, a smooth ValueAnimator progress indicator for file imports (revealed on progress, hidden on completion/error), and animated stat counters (instances/mods pop-scale).
    Toggle compliance: all motion honors isShowAnimations() (pulse is stopped/started in onResume based on the flag); glow/elevation honors isEnableGlowEffects(). Dark/light theming respected throughout.

  2. Playtime tracking on the last-played instance card

    New PlaytimeManager persists per-instance accumulated playtime (SharedPreferences, 15s heartbeat, crash/interrupted-session cleanup in Application.init()).
    Wired into MinecraftActivity.kt session lifecycle (start from EXTRA_STORAGE_PROFILE_ID, heartbeat, stop in onDestroy).
    Displayed on the last-played hero card ("Xh Ym played") and per-instance in the instances list. Time accumulates across sessions and tracks real wall time (within one heartbeat interval).

  3. "Reduce Network Latency" toggle in Settings → Basic

    Labeled honestly — a launcher can't control server distance/ISP routing.
    LowLatencyNetworkManager:
    TCP_NODELAY socket factory for the launcher's own connections (News + GitHub release updater). Note: the socket factory deliberately delegates to SocketFactory.getDefault() — the inherited abstract SocketFactory.createSocket() is not callable directly.
    Background DNS prefetch of known endpoints (triggered when the toggle is enabled).
    A game-session quiet zone: non-essential news/update polling is paused while a session runs (NewsRepository.refreshIfStale, GithubReleaseUpdater, LauncherNewsMessagingService).