Skip to content

New Crowdin updates#5

Open
elpaablo wants to merge 51 commits into
alpha-16.2from
l10n_alpha-16.2
Open

New Crowdin updates#5
elpaablo wants to merge 51 commits into
alpha-16.2from
l10n_alpha-16.2

Conversation

@elpaablo

Copy link
Copy Markdown
Contributor

No description provided.

elpaablo and others added 30 commits May 26, 2026 12:54
Cherry-picked from Axion frameworks/base 74f20a068afb.
Conflicts resolved: KeyguardUpdateMonitor.java (kept DozeParameters + QuickLookClient),
DefaultKeyguardBlueprint.kt / SplitShadeKeyguardBlueprint.kt (kept smartspace/weather/slice/axdynamicbar sections),
QuickLookClient.kt (used Axion's version with clock data callbacks).
the enlarge clock settings size scale was getting applied to the large clock (should not be applied)

https: //github.com/AxionAOSP/issue_tracker/issues/141 https: //github.com/AxionAOSP/issue_tracker/issues/126

Change-Id: Iaa2794523837c8184079b43e7f42ffb85d2a1abb
Signed-off-by: rmp22 <195054967+rmp22@users.noreply.github.com>
same with charging computations, this one also burns cpu outside keyguard, skip time updates since the appear animation will invalidate and update the clock anyway.

56.72%    0.00%  com.android.systemui  1913  __libc_init
         |
         -- __libc_init
            |
             -- main
                 |--0.99%-- [hit in function]
                 |
                 |--93.98%-- android.os.Handler.dispatchMessage
                 |    |
                 |    |--33.02%-- com.android.keyguard.KeyguardUpdateMonitor$14.handleMessage
                 |    |    |
                 |    |    |--58.50%-- com.android.keyguard.ClockEventController$keyguardUpdateMonitorCallback$1.onTimeChanged
                 |    |    |           com.android.keyguard.ClockEventController$keyguardUpdateMonitorCallback$1.refreshTime
                 |    |    |           com.android.systemui.shared.clocks.AxClockFaceController$events$1.onTimeTick
                 |    |    |           com.android.systemui.shared.clocks.view.AxClockView.refreshTime
                 |    |    |    |
                 |    |    |    |--75.22%-- com.android.systemui.shared.clocks.view.AxClockInteractor.refreshTime
                 |    |    |    |    |
                 |    |    |    |    |--58.85%-- androidx.compose.runtime.ParcelableSnapshotMutableState.setValue
                 |    |    |    |    |           androidx.compose.runtime.snapshots.GlobalSnapshot$$ExternalSyntheticLambda0.invoke
                 |    |    |    |    |           androidx.compose.ui.platform.GlobalSnapshotManager$ensureStarted$2.invoke
                 |    |    |    |    |           kotlinx.coroutines.channels.BufferedChannel.trySend-JP2dKIU
                 |    |    |    |    |           kotlinx.coroutines.channels.BufferedChannel.access$updateCellSend
                 |    |    |    |    |           kotlinx.coroutines.channels.BufferedChannel.tryResumeReceiver
                 |    |    |    |    |           kotlinx.coroutines.CancellableContinuationImpl.dispatchResume
                 |    |    |    |    |           androidx.compose.ui.platform.AndroidUiDispatcher.dispatch
                 |    |    |    |    |           android.view.Choreographer.postCallbackDelayedInternal
                 |    |    |    |    |           android.view.Choreographer.scheduleFrameLocked
                 |    |    |    |    |           art_jni_trampoline
                 |    |    |    |    |           android::nativeScheduleVsync(_JNIEnv*, _jclass*, long)
                 |    |    |    |    |           android::DisplayEventDispatcher::scheduleVsync()

Change-Id: I258c56a36d3d3b79e4340f0787a071e16b5090ee
Change-Id: I2229b7d79d10061269c4ffc9d942303beb60c7d1
Signed-off-by: rmp22 <195054967+rmp22@users.noreply.github.com>
Change-Id: Idb82eb87493dc8820ce0753e5d9b866c85f9a965
This catches a known race condition during rapid theme and RRO
overlay switches where the AssetManager string pool is mid-rebuild
while SystemUI tries to reinflate views.

Instead of crashing SystemUI with an InflateException, this
gracefully returns null to allow fallback to default fonts
until the next layout pass.
Some custom large clocks used `match_parent` height, causing KeyguardClockPositionAlgorithm to calculate the wrong translation offsets and pivot points. This resulted in clocks being pushed off-center or scaling incorrectly during dynamic sizing.

Changes:
- Set layout_height to wrap_content for general, bitmap_compose, and old_quick_look large clocks.
- Updated large analog and old quick look compose modifiers to measure accurately within wrapped constraints.
- Port legacy Stylish 2 and Stylish 7 clock layouts to Axion Compose framework.
- Register STYLISH_2 and STYLISH_7 clocks in AxClockProvider, AxClockType, and ClockConfigs.
- Fix compilation error due to missing `aspectRatio` import in `BitmapDigitComposeClockView.kt`.
- Fix invisible large clock rendering in `OldQuickLookClockView` by supporting colon separation for time splitting and setting correct column width constraints.
Change-Id: I1c798bb0c29558c97fcf381d973189ce30af4a1e
Change-Id: I07ffb4a8581f9d24f6ea19f9e31d32b40223acc9
https: //github.com/AxionAOSP/issue_tracker/issues/209
Change-Id: Ica094b2ee401ed37d818d986448bc676d4c87931
- Adjusted time and date alignment to perfectly match the username baseline
- Removed duplicate EnhancedDateArea from LargeContent
- Integrated WeatherRow directly into the day pill matching original XML
- Fixed depth controller issues
Lower USER_ACTIVITY_MIN_INTERVAL_MS from 500ms to 100ms so user activity
events are reported more responsively to the power manager, reducing the
window where touch input can fail to extend the screen-on timeout.
The debouncedSetFaded() helper posted setNotificationFaded() and
setLayerType() calls with a 150ms delay via a static Handler/WeakHashMap.
This caused hardware layer promotions to lag behind the animation that
needs them, producing visible compositing artifacts on notification
appear/disappear transitions.

Remove the debounce and apply layer-type changes immediately, matching
the upstream AOSP behavior.
Each onBindViewHolder() call was creating a new ValueAnimator starting
from 0, stacking multiple animators on the same ProgressBar. The
underlying LinearProgressIndicator runs its own smooth animator, so
the two clocks fought each other and produced visible jitter on rebind.

Reuse a single mProgressAnimator instance: cancel the previous one
before starting a new animation, start from the last animated value
instead of 0, skip the animation when the value is unchanged, and use
a material standard easing curve (PathInterpolator 0.4/0/0.2/1) with
a 700ms duration.
Choreographer.getLatestExpectedPresentTimeNanos():
Replace the mInDoFrameCallback gate (only set inside Trace.isTagEnabled,
making the cache a no-op outside systrace) with mLastFrameTimeNanos > 0L.
mLastFrameTimeNanos is Long.MIN_VALUE until the first doFrame populates
mLastVsyncEventData, so the cached path is only taken once the data is
valid. Same staleness contract as getFrameDeadline() / getVsyncId().
Eliminates the binder round-trip to SurfaceFlinger on every caller in
production after the first frame.

ViewRootImpl.handleWindowFocusChanged():
Make mWindowFocusChanged volatile and add a lock-free early-exit check
before the synchronized block. handleWindowFocusChanged() is called on
every input event delivery path (InputStage.deliver()), so at 240Hz
touch the synchronized block was entered on every event even when focus
had not changed. The double-check pattern is safe: the volatile read
covers the no-op path; the mutation still happens under synchronized.

NotificationStackScrollLayout.avoidNotificationOverlaps():
Debounce the O(N) sort + two-pass clipping calculation. Skip the pass
when scrollY, expansionFraction, and childCount are all unchanged and
no animation is running. Use epsilon comparisons (0.5px scroll, 1e-3
fraction) instead of exact float equality to defeat FPU jitter during
steady flings. Track childCount as a cache key to catch silent mutations
that bypass requestChildrenUpdate(). Sentinels use Float.NaN so the
first call always reaches the body.

NotificationStackScrollLayout.getRelativePosition():
Add hasIdentityMatrix() to the direct-child fast-path. Without it,
rows animated via setTranslationY() (appear/disappear, swipe-dismiss,
heads-up entry) had overlap clipping computed from the static layout
position instead of the live visual position, causing micro-flickers
mid-animation. Static rows (the common case) still take the fast-path.
…t fallback

Fixes:
- Rewrote SportsText to mirror the team-name-first logic already present
  in AxDynamicBarChip: shows [team1] score - score [team2] when both
  teams are known, or [team1] vs [team2] when no score yet
- Added SportsTeamLabel helper: team icon (14dp circular) when available,
  otherwise a 3-letter uppercase text abbreviation
- Added 'Live event' fallback (ax_dynamic_bar_sports_live_event) shown
  when neither team identifiers nor scores are present in the event
- Fixed keyguard chip fallback: score -> team1Name -> 'Live event'
  priority instead of unconditional score1-score2
- Fixed keyguard chip textKeyFor: guards against empty team names before
  building the 'Team1 vs Team2' key string
Two fixes that together restore the expected layering: a wifi or signal
overlay wins when active, but disabling it lets an active iconpack
provide its own ic_wifi_signal_* / ic_signal_cellular_* drawables
instead of skipping straight back to AOSP.

ThemeOverlayApplier
  Wifi/signal RROs declare targetPackage=android, but the category-to-
  target map pointed them at SystemUI. The disable scan therefore never
  saw them in OverlayManager listings and could not toggle them off.
  Point both categories at ANDROID_PACKAGE and add them to that
  package's category set so the disable pass works correctly.

ThemeEngineManagerService
  Register the active iconpack's resources via loadTargetArrays so the
  set of names it actually overrides is known to the lookup. Extend
  getThemePackageForResource to consult that set when no per-category
  statusbar theme (wifi/signal) is active, so ic_wifi_signal_* and
  ic_signal_cellular_* drawables resolve to the iconpack instead of
  falling all the way through to AOSP.
Reintroduces the spirit of 5c0a63d ("android.view: reduce animation
speeds") that was dropped to investigate animation jitter, but only for
the genuinely animation-timing portion of the patch and with milder
reductions that keep every duration above the per-frame floor where ease
curves still render cleanly.

  config_shortAnimTime         200 -> 150
  config_mediumAnimTime        400 -> 300
  config_longAnimTime          500 -> 350
  config_activityShortDur      150 -> 120
  config_activityDefaultDur    220 -> 170

The previous halving (200 -> 100, 220 -> 110, etc.) pushed activity and
short-anim durations into 6-7 frames at 60 Hz, which the standard
fast-out-slow-in / activity transition curves cannot compress without
front-loading nearly all of the visible motion into a single frame. That
reads as a hop rather than a slide and surfaces every existing pipeline
drop. Roughly 25-35 % reductions stay clear of that floor while still
feeling meaningfully snappier than stock.

Deliberately not picked from the original commit:

  - ViewConfiguration timing constants (long press / global actions /
    jump tap / edge slop / zoom controls). None are animation timings;
    they affect input disambiguation and accessibility behavior, and
    halving them broke long-press on lists and made accidental
    global-actions invocations more likely. Long-press snappiness, if
    desired, belongs in the Settings.Secure.LONG_PRESS_TIMEOUT user
    preference, not the framework constant.

Companion commit 2b8393d ("speedup window animation scale", which
set DEFAULT_ANIMATION_SCALE to 0.7f in WindowManagerService) is dropped
entirely: it is almost always inert because SettingsProvider populates
window/transition scales at 100 % on first boot, and where it does fire
it desyncs Developer Options from the actual scale. If a global default
of < 1.0 is wanted later, it should be done coherently across
SettingsProvider def_window_animation_scale,
def_window_transition_scale, def_animator_duration_scale, and
config_appTransitionAnimationDurationScaleDefault.

Change-Id: I7e5f5db5a3d6c8a2c1b9d4f0e6c1a2b3c4d5e6f7a
Signed-off-by: elpaablo <donopwhile1@gmail.com>
- Register icon-pack categoryThemes overlays (icon_pack.*) in ThemeEngineManagerService
  without requiring a themes.icon_pack entry
- Add mIconPackOverlayPackages set; resolve primary pack from android-suffix overlay
- registerStatusbarDrawableTargets: probe wifi/signal drawables in all overlay types
- resolveIconPackPackageForResource: fall back to icon-pack overlays for statusbar icons
- Fix getThemePackageForResource to verify resource is actually in the target set
- Add re-entrancy guard on notifyThemeChangedInternal (mBroadcasting flag)
- isTargetedResource simplified to delegate to getThemePackageForResource
- ThemeIconController: add THEME_ICON_SIZE_SCALE constant (1.1f, not yet wired)
…active

- ThemeIconController: add usesStaticQsConnectivityTileIcons(), qsTileFullWifiIconResId(),
  qsTileFullCellularIconResId() helpers for QS interactor gate
- WifiTileDataInteractor: use full-strength ic_wifi_3 for all states when pack active
  (connected, inactive, pausing, scanning, radio-off); AOSP levels/slash when no pack
- MobileDataTileDataInteractor: use ic_mobile_4_4_bar for cellular + data-off states
  when pack active; SignalDrawable / ic_signal_mobile_data_off when no pack
- InternetTileDataInteractor: use ic_mobile_4_4_bar for cellular default, ic_wifi_3 for
  wifi default when pack active; satellite and ethernet paths unchanged
- ThemeEngineManagerService: always register dedicated wifi/signal RRO categories;
  add hasDedicatedWifiOverlay/hasDedicatedSignalOverlay guards so iconpack fallback
  never overrides a dedicated statusbar RRO; consolidate alias/category lookup
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants