Skip to content
Draft
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
51 commits
Select commit Hold shift + click to select a range
87cd3c1
Initial commit for BackgroundTest project
neon-nyan Nov 28, 2025
78e14af
[WIP - Incomplete] Implement NewPipsPager
neon-nyan Nov 30, 2025
e4b429a
[Test Ready] Implement NewPipsPager pt. 2
neon-nyan Nov 30, 2025
5e5f092
Update NewPipsPager
neon-nyan Dec 2, 2025
ae56c01
Fix color for light theme
neon-nyan Dec 5, 2025
f9016e5
Initial property for MediaSlideshow
neon-nyan Dec 5, 2025
8332927
Merge branch 'main' into background-refactor
neon-nyan Dec 6, 2025
8769e4c
Rename MediaSlideshow -> PanelSlideshow + First test
neon-nyan Dec 6, 2025
52c91ed
Fix element animation flies out-of-bound while switching
neon-nyan Dec 7, 2025
4c11f35
Merge branch 'main' into background-refactor
neon-nyan Dec 7, 2025
ccb1dd6
Add buttons for Slideshow
neon-nyan Dec 7, 2025
8f24aae
Add countdown timer for PanelSlideshow
neon-nyan Dec 8, 2025
4fd89b2
Improve NewPipsPager + PanelSlideshow
neon-nyan Dec 11, 2025
5e1f027
Merge branch 'main' into background-refactor
neon-nyan Dec 11, 2025
7d3a1a8
Initial implementation for LayeredBackgroundImage
neon-nyan Dec 11, 2025
78d031b
Implement loader for Image type on LayeredBackgroundImage
neon-nyan Dec 12, 2025
3efdec9
Add Video Background support
neon-nyan Dec 14, 2025
b257e12
Fix video player disposed after foreground load
neon-nyan Dec 14, 2025
c3113f4
Cleanup + Fix element layout state when loaded
neon-nyan Dec 14, 2025
7387499
Fix NewPipsPager button state on selected
neon-nyan Dec 15, 2025
d9b43ee
Use Uri instead of full FileStream for cached local file
neon-nyan Dec 15, 2025
bfd5d7c
Use native ISurfaceImageSourceNativeWithD2D
neon-nyan Dec 15, 2025
79f3845
Update Hi3Helper.Win32
neon-nyan Dec 15, 2025
5a815b9
Perform full MediaPlayer disposal on pause
neon-nyan Dec 16, 2025
46656ea
Use unsafe direct call for video frame drawing's ``EndDraw()``
neon-nyan Dec 16, 2025
4b117c1
Use SwapChainPanelHelper.NativeSurfaceImageSource_BeginDrawUnsafe
neon-nyan Dec 16, 2025
60dc597
Let cache decide stream disposal
neon-nyan Dec 16, 2025
fca7fa2
CodeQA
neon-nyan Dec 16, 2025
a993922
Code migration time!
neon-nyan Dec 16, 2025
d6ec6ae
Merge branch 'main' into background-refactor
neon-nyan Dec 16, 2025
722816d
Fix compile error
neon-nyan Dec 16, 2025
96e7f71
Update LayeredBackgroundImageExtensions.cs
neon-nyan Dec 17, 2025
2caeeb5
Merge branch 'main' into background-refactor
neon-nyan Dec 19, 2025
ab9a096
Fix and use new custom elements for carousel
neon-nyan Dec 20, 2025
ab46ff9
Use UIElementExtensions.CursorType for controls
neon-nyan Dec 20, 2025
5c9d3d4
Run XamlStyler
neon-nyan Dec 20, 2025
4d879a9
Always creates new transition on swipe-based transition
neon-nyan Dec 20, 2025
fecc199
Apply slideshow carousel pause while window is minimized
neon-nyan Dec 20, 2025
316d8d1
Merge branch 'main' into background-refactor
neon-nyan Jan 4, 2026
73d38b0
Fix due to merge conflict
neon-nyan Jan 4, 2026
deb944d
Reduce Lottie animation resolution
neon-nyan Jan 4, 2026
0a408df
[skip ci] Sync translation Translate en_US.json in zh_CN
transifex-integration[bot] Jan 4, 2026
9bbd36d
Merge branch 'main' into background-refactor
neon-nyan Jan 4, 2026
df64fc4
Make background loading works (pt. 1)
neon-nyan Jan 10, 2026
5dbced3
Housekeeping
neon-nyan Jan 10, 2026
4c6d661
Merge branch 'main' into background-refactor
neon-nyan Jan 11, 2026
813b84a
Fix binding state on NativeAOT
neon-nyan Jan 11, 2026
98e744c
Fix custom background state
neon-nyan Jan 11, 2026
3049251
Avoid image change if the same background is used on region change
neon-nyan Jan 11, 2026
506e353
Make background loading works (pt. 2)
neon-nyan Jan 11, 2026
30854bc
Fix Memory Leaks, Code Clean-Up and Improvements
neon-nyan Jan 13, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
8 changes: 8 additions & 0 deletions CollapseLauncher/App.xaml
Original file line number Diff line number Diff line change
Expand Up @@ -31,6 +31,14 @@
<ResourceDictionary Source="ms-appx:///XAMLs/Theme/CustomControls/UserFeedbackDialog/UserFeedbackDialog.xaml" />
<ResourceDictionary Source="ms-appx:///XAMLs/Theme/CustomControls/SocMedIconButton/SocMedIconButton.xaml" />
<ResourceDictionary Source="ms-appx:///XAMLs/Theme/CustomControls/FullPageOverlay/FullPageOverlay.xaml" />

<ResourceDictionary Source="ms-appx:///XAMLs/Theme/CustomControls/NewPipsPager/NewPipsPager_themeresources.xaml" />
<ResourceDictionary Source="ms-appx:///XAMLs/Theme/CustomControls/NewPipsPager/NewPipsPager.xaml" />

<ResourceDictionary Source="ms-appx:///XAMLs/Theme/CustomControls/PanelSlideshow/PanelSlideshow_themeresources.xaml" />
<ResourceDictionary Source="ms-appx:///XAMLs/Theme/CustomControls/PanelSlideshow/PanelSlideshow.xaml" />

<ResourceDictionary Source="ms-appx:///XAMLs/Theme/CustomControls/LayeredBackgroundImage/LayeredBackgroundImage.xaml" />
<ResourceDictionary>
<ResourceDictionary.ThemeDictionaries>
<ResourceDictionary x:Key="Default">
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,28 @@
using Microsoft.UI.Xaml;
using Microsoft.UI.Xaml.Media;

#pragma warning disable IDE0130

#nullable enable
namespace CollapseLauncher.AnimatedVisuals.Lottie;

public abstract class BindableThemeChangeAnimation : DependencyObject
{
public Brush Foreground
{
get => (Brush)GetValue(ForegroundProperty);
set => SetValue(ForegroundProperty, value);
}

/// <summary>
/// Dependency property for Foreground.
/// </summary>
public static readonly DependencyProperty ForegroundProperty =
DependencyProperty.Register(nameof(Foreground), typeof(Brush), typeof(BindableThemeChangeAnimation),
new PropertyMetadata(null!, OnForegroundChanged));

protected static void OnForegroundChanged(DependencyObject d, DependencyPropertyChangedEventArgs args)
=> ((BindableThemeChangeAnimation)d).OnForegroundChanged(args.NewValue as Brush);

protected abstract void OnForegroundChanged(Brush? brush);
}
221 changes: 151 additions & 70 deletions CollapseLauncher/Classes/AnimatedVisuals/Lottie/DownloadIcon.cs

Large diffs are not rendered by default.

Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
{"v":"5.12.2","fr":60,"ip":0,"op":300,"w":256,"h":256,"nm":"DownloadIconMasterComp","ddd":0,"assets":[{"id":"comp_0","nm":"DownloadIcon","fr":60,"layers":[{"ddd":0,"ind":1,"ty":4,"nm":"Shape Layer 2","parent":3,"sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[50,50,0],"ix":2,"l":2},"a":{"a":0,"k":[0,0,0],"ix":1,"l":2},"s":{"a":0,"k":[100,100,100],"ix":6,"l":2}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0]],"v":[[360.517,-180.5],[0,180.017],[-360.517,-180.5]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"st","c":{"a":0,"k":[1,1,1,1],"ix":3},"o":{"a":0,"k":100,"ix":4},"w":{"a":0,"k":128,"ix":5},"lc":2,"lj":2,"bm":0,"nm":"Stroke 1","mn":"ADBE Vector Graphic - Stroke","hd":false},{"ty":"tr","p":{"a":0,"k":[0,0],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Shape 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false},{"ty":"tm","s":{"a":1,"k":[{"i":{"x":[0],"y":[1]},"o":{"x":[0.333],"y":[0]},"t":53,"s":[58.5]},{"t":83,"s":[0]}],"ix":1},"e":{"a":1,"k":[{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":53,"s":[58.5]},{"t":83,"s":[58.5]}],"ix":2},"o":{"a":1,"k":[{"i":{"x":[0],"y":[1]},"o":{"x":[0.333],"y":[0]},"t":53,"s":[-101.6]},{"t":83,"s":[0]}],"ix":3},"m":1,"ix":2,"nm":"Trim Paths 1","mn":"ADBE Vector Filter - Trim","hd":false}],"ip":0,"op":300,"st":-7,"ct":1,"bm":0},{"ddd":0,"ind":2,"ty":4,"nm":"Shape Layer 1","parent":3,"sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[50,50,0],"ix":2,"l":2},"a":{"a":0,"k":[0,0,0],"ix":1,"l":2},"s":{"a":0,"k":[100,100,100],"ix":6,"l":2}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[0,0],[0,-459.501],[-459.501,0],[0,459.501],[0,0]],"o":[[0,0],[-459.501,0],[0,459.501],[459.501,0],[0,-459.501],[0,0]],"v":[[0,116],[0,-832],[-832,0],[0,832],[832,0],[515,-688]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"st","c":{"a":0,"k":[1,1,1,1],"ix":3},"o":{"a":0,"k":100,"ix":4},"w":{"a":0,"k":128,"ix":5},"lc":2,"lj":2,"bm":0,"nm":"Stroke 1","mn":"ADBE Vector Graphic - Stroke","hd":false},{"ty":"tr","p":{"a":0,"k":[0,0],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Shape 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false},{"ty":"tm","s":{"a":1,"k":[{"i":{"x":[0],"y":[1]},"o":{"x":[0.333],"y":[0]},"t":0,"s":[85.5]},{"t":60,"s":[0]}],"ix":1},"e":{"a":1,"k":[{"i":{"x":[0],"y":[1]},"o":{"x":[0.167],"y":[0.167]},"t":0,"s":[85.5]},{"t":80,"s":[10]}],"ix":2},"o":{"a":1,"k":[{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":0,"s":[0]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":30,"s":[0]},{"t":60,"s":[0]}],"ix":3},"m":1,"ix":2,"nm":"Trim Paths 1","mn":"ADBE Vector Filter - Trim","hd":false}],"ip":0,"op":300,"st":0,"ct":1,"bm":0},{"ddd":0,"ind":3,"ty":3,"nm":"Null 1","sr":1,"ks":{"o":{"a":0,"k":0,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"s":true,"x":{"a":1,"k":[{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":50,"s":[128]},{"t":90,"s":[128]}],"ix":3},"y":{"a":1,"k":[{"i":{"x":[0],"y":[1]},"o":{"x":[0.333],"y":[0]},"t":50,"s":[128.125]},{"i":{"x":[0],"y":[1]},"o":{"x":[0.333],"y":[0]},"t":90,"s":[126.125]},{"i":{"x":[0],"y":[1]},"o":{"x":[0.333],"y":[0]},"t":165,"s":[126.125]},{"i":{"x":[0.168],"y":[1]},"o":{"x":[0.333],"y":[0]},"t":200,"s":[109.5]},{"i":{"x":[0],"y":[1]},"o":{"x":[0.333],"y":[0]},"t":210,"s":[109.5]},{"t":255,"s":[293.75]}],"ix":4}},"a":{"a":0,"k":[50,50,0],"ix":1,"l":2},"s":{"a":0,"k":[12.5,12.5,100],"ix":6,"l":2}},"ao":0,"ip":0,"op":300,"st":-10,"bm":0}]}],"layers":[{"ddd":0,"ind":1,"ty":4,"nm":"Shape Layer 3","sr":1,"ks":{"o":{"a":1,"k":[{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":260,"s":[100]},{"t":280,"s":[0]}],"ix":11},"r":{"a":1,"k":[{"i":{"x":[0],"y":[1]},"o":{"x":[0.333],"y":[0]},"t":140,"s":[0]},{"i":{"x":[0],"y":[1]},"o":{"x":[0.333],"y":[0]},"t":150,"s":[8]},{"i":{"x":[0],"y":[1]},"o":{"x":[0.333],"y":[0]},"t":167,"s":[-8]},{"t":184,"s":[0]}],"ix":10},"p":{"s":true,"x":{"a":1,"k":[{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":30,"s":[128]},{"t":70,"s":[128]}],"ix":3},"y":{"a":1,"k":[{"i":{"x":[0],"y":[1]},"o":{"x":[0.333],"y":[0]},"t":30,"s":[179.125]},{"i":{"x":[0.03],"y":[1]},"o":{"x":[0.157],"y":[0]},"t":70,"s":[179.125]},{"i":{"x":[0],"y":[1]},"o":{"x":[0.333],"y":[0]},"t":167,"s":[179.125]},{"i":{"x":[0],"y":[1]},"o":{"x":[0.333],"y":[0]},"t":188,"s":[197.125]},{"i":{"x":[0],"y":[1]},"o":{"x":[0.333],"y":[0]},"t":210,"s":[197.125]},{"t":240,"s":[179.125]}],"ix":4}},"a":{"a":0,"k":[4,344,0],"ix":1,"l":2},"s":{"a":0,"k":[12.5,12.5,100],"ix":6,"l":2}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[0,0]],"o":[[0,0],[0,0]],"v":[[-460,344],[468,344]],"c":false},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"st","c":{"a":0,"k":[1,1,1,1],"ix":3},"o":{"a":0,"k":100,"ix":4},"w":{"a":0,"k":128,"ix":5},"lc":2,"lj":2,"bm":0,"nm":"Stroke 1","mn":"ADBE Vector Graphic - Stroke","hd":false},{"ty":"tr","p":{"a":0,"k":[0,0],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Shape 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false},{"ty":"tm","s":{"a":1,"k":[{"i":{"x":[0],"y":[1]},"o":{"x":[0.333],"y":[0]},"t":30,"s":[0]},{"i":{"x":[0.586],"y":[1]},"o":{"x":[0.167],"y":[0]},"t":70,"s":[0]},{"i":{"x":[0],"y":[1]},"o":{"x":[0.333],"y":[0]},"t":260,"s":[0]},{"t":280,"s":[100]}],"ix":1},"e":{"a":1,"k":[{"i":{"x":[0],"y":[1]},"o":{"x":[0.333],"y":[0]},"t":30,"s":[0]},{"i":{"x":[0.667],"y":[1]},"o":{"x":[0.333],"y":[0]},"t":70,"s":[100]},{"i":{"x":[0],"y":[1]},"o":{"x":[0.333],"y":[0]},"t":260,"s":[100]},{"t":280,"s":[100]}],"ix":2},"o":{"a":0,"k":0,"ix":3},"m":2,"ix":2,"nm":"Trim Paths 1","mn":"ADBE Vector Filter - Trim","hd":false}],"ip":0,"op":300,"st":-15,"ct":1,"bm":0},{"ddd":0,"ind":2,"ty":0,"nm":"DownloadIcon","refId":"comp_0","sr":1,"ks":{"o":{"a":1,"k":[{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":260,"s":[100]},{"t":280,"s":[0]}],"ix":11},"r":{"a":1,"k":[{"i":{"x":[0],"y":[1]},"o":{"x":[0.333],"y":[0]},"t":140,"s":[0]},{"i":{"x":[0],"y":[1]},"o":{"x":[0.333],"y":[0]},"t":150,"s":[-9]},{"i":{"x":[0],"y":[1]},"o":{"x":[0.333],"y":[0]},"t":160,"s":[11]},{"t":179,"s":[0]}],"ix":10},"p":{"s":true,"x":{"a":0,"k":128,"ix":3},"y":{"a":0,"k":128,"ix":4}},"a":{"a":0,"k":[128,128,0],"ix":1,"l":2},"s":{"a":0,"k":[100,100,100],"ix":6,"l":2}},"ao":0,"hasMask":true,"masksProperties":[{"inv":false,"mode":"a","pt":{"a":1,"k":[{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":150,"s":[{"i":[[0,0],[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0]],"v":[[289.5,-24.5],[-42,-24.5],[-42,266.5],[289.5,266.5]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":189,"s":[{"i":[[0,0],[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0]],"v":[[289.5,-24.5],[-42,-24.5],[-42,191.5],[289.5,191.5]],"c":true}]},{"t":230,"s":[{"i":[[0,0],[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0]],"v":[[289.5,-24.5],[-42,-24.5],[-42,179],[289.5,179]],"c":true}]}],"ix":1},"o":{"a":0,"k":100,"ix":3},"x":{"a":0,"k":0,"ix":4},"nm":"Mask 1"}],"w":256,"h":256,"ip":0,"op":300,"st":0,"bm":0}],"markers":[],"props":{}}
Binary file not shown.
Loading
Loading