New Crowdin updates#5
Open
elpaablo wants to merge 51 commits into
Open
Conversation
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
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.
No description provided.