tvOS app icon, Proper Liquid Glass App icon

This commit is contained in:
Stossy11
2025-11-19 12:30:04 +11:00
parent a8e60f27b2
commit bdec8bfef4
36 changed files with 288 additions and 1 deletions

Binary file not shown.

View File

@@ -0,0 +1,12 @@
{
"images" : [
{
"filename" : "1280x768 copy 3.jpeg",
"idiom" : "tv"
}
],
"info" : {
"author" : "xcode",
"version" : 1
}
}

View File

@@ -0,0 +1,6 @@
{
"info" : {
"author" : "xcode",
"version" : 1
}
}

View File

@@ -0,0 +1,17 @@
{
"info" : {
"author" : "xcode",
"version" : 1
},
"layers" : [
{
"filename" : "Front.imagestacklayer"
},
{
"filename" : "Middle.imagestacklayer"
},
{
"filename" : "Back.imagestacklayer"
}
]
}

Binary file not shown.

After

Width:  |  Height:  |  Size: 156 KiB

View File

@@ -0,0 +1,12 @@
{
"images" : [
{
"filename" : "1280x768.png",
"idiom" : "tv"
}
],
"info" : {
"author" : "xcode",
"version" : 1
}
}

View File

@@ -0,0 +1,6 @@
{
"info" : {
"author" : "xcode",
"version" : 1
}
}

View File

@@ -0,0 +1,12 @@
{
"images" : [
{
"filename" : "1280x768 copy 3.jpeg",
"idiom" : "tv"
}
],
"info" : {
"author" : "xcode",
"version" : 1
}
}

View File

@@ -0,0 +1,6 @@
{
"info" : {
"author" : "xcode",
"version" : 1
}
}

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.4 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.0 KiB

View File

@@ -0,0 +1,18 @@
{
"images" : [
{
"filename" : "Content.png",
"idiom" : "tv",
"scale" : "1x"
},
{
"filename" : "Content@2x.png",
"idiom" : "tv",
"scale" : "2x"
}
],
"info" : {
"author" : "xcode",
"version" : 1
}
}

View File

@@ -0,0 +1,6 @@
{
"info" : {
"author" : "xcode",
"version" : 1
}
}

View File

@@ -0,0 +1,17 @@
{
"info" : {
"author" : "xcode",
"version" : 1
},
"layers" : [
{
"filename" : "Front.imagestacklayer"
},
{
"filename" : "Middle.imagestacklayer"
},
{
"filename" : "Back.imagestacklayer"
}
]
}

View File

@@ -0,0 +1,18 @@
{
"images" : [
{
"filename" : "cool.png",
"idiom" : "tv",
"scale" : "1x"
},
{
"filename" : "cool 1.png",
"idiom" : "tv",
"scale" : "2x"
}
],
"info" : {
"author" : "xcode",
"version" : 1
}
}

Binary file not shown.

After

Width:  |  Height:  |  Size: 27 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 27 KiB

View File

@@ -0,0 +1,6 @@
{
"info" : {
"author" : "xcode",
"version" : 1
}
}

Binary file not shown.

After

Width:  |  Height:  |  Size: 6.1 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 6.1 KiB

View File

@@ -0,0 +1,18 @@
{
"images" : [
{
"filename" : "Content.png",
"idiom" : "tv",
"scale" : "1x"
},
{
"filename" : "Content@2x.png",
"idiom" : "tv",
"scale" : "2x"
}
],
"info" : {
"author" : "xcode",
"version" : 1
}
}

View File

@@ -0,0 +1,6 @@
{
"info" : {
"author" : "xcode",
"version" : 1
}
}

View File

@@ -0,0 +1,32 @@
{
"assets" : [
{
"filename" : "App Icon - App Store.imagestack",
"idiom" : "tv",
"role" : "primary-app-icon",
"size" : "1280x768"
},
{
"filename" : "AppIcon.imagestack",
"idiom" : "tv",
"role" : "primary-app-icon",
"size" : "400x240"
},
{
"filename" : "Top Shelf Image Wide.imageset",
"idiom" : "tv",
"role" : "top-shelf-image-wide",
"size" : "2320x720"
},
{
"filename" : "Top Shelf Image.imageset",
"idiom" : "tv",
"role" : "top-shelf-image",
"size" : "1920x720"
}
],
"info" : {
"author" : "xcode",
"version" : 1
}
}

Binary file not shown.

After

Width:  |  Height:  |  Size: 198 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 73 KiB

View File

@@ -0,0 +1,18 @@
{
"images" : [
{
"filename" : "1280x768 copy 4.jpeg",
"idiom" : "tv",
"scale" : "1x"
},
{
"filename" : "1280x768 copy 4 2.jpeg",
"idiom" : "tv",
"scale" : "2x"
}
],
"info" : {
"author" : "xcode",
"version" : 1
}
}

Binary file not shown.

After

Width:  |  Height:  |  Size: 59 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 160 KiB

View File

@@ -0,0 +1,18 @@
{
"images" : [
{
"filename" : "1280x768 copy 4.jpeg",
"idiom" : "tv",
"scale" : "1x"
},
{
"filename" : "1280x768 copy 5.jpeg",
"idiom" : "tv",
"scale" : "2x"
}
],
"info" : {
"author" : "xcode",
"version" : 1
}
}

View File

@@ -118,7 +118,11 @@ class TunnelManager: ObservableObject {
DispatchQueue.main.async {
if let error = error {
VPNLogger.shared.log("Error loading preferences: \(error.localizedDescription)")
#if targetEnvironment(simulator)
self.tunnelStatus = .disconnected
#else
self.tunnelStatus = .error
#endif
self.waitingOnSettings = true
return
}
@@ -199,7 +203,7 @@ class TunnelManager: ObservableObject {
}
private func updateTunnelStatus(from connectionStatus: NEVPNStatus) {
let newStatus: TunnelStatus
var newStatus: TunnelStatus
switch connectionStatus {
case .invalid, .disconnected:
newStatus = .disconnected
@@ -215,6 +219,10 @@ class TunnelManager: ObservableObject {
newStatus = .error
}
#if targetEnvironment(simulator)
newStatus = .connected
#endif
DispatchQueue.main.async { [weak self] in
guard let self = self else { return }
if self.tunnelStatus != newStatus {