* dwo (#132)

* bug fixes  (#127)

* yeah @realdoomsboygaming fault

* fixes

* freaky ahh update

---------

Co-authored-by: Seiike <122684677+Seeike@users.noreply.github.com>

* opds

* bug fixes around the downloads (#133) (#134)

* yeah nice xcode

* yeah fuck ts

* yeah

* ok this shit is really fucked then

---------

Co-authored-by: Seiike <122684677+Seeike@users.noreply.github.com>
This commit is contained in:
cranci 2025-06-07 15:56:19 +02:00 committed by GitHub
parent 40bf680058
commit 22685e688f
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
21 changed files with 3 additions and 300 deletions

View file

Before

Width:  |  Height:  |  Size: 88 KiB

After

Width:  |  Height:  |  Size: 88 KiB

View file

Before

Width:  |  Height:  |  Size: 88 KiB

After

Width:  |  Height:  |  Size: 88 KiB

View file

Before

Width:  |  Height:  |  Size: 77 KiB

After

Width:  |  Height:  |  Size: 77 KiB

View file

@ -1,28 +0,0 @@
{
"images" : [
{
"filename" : "darkmode.png",
"idiom" : "universal",
"platform" : "ios",
"size" : "1024x1024"
},
{
"filename" : "lightmode.png",
"idiom" : "universal",
"platform" : "ios",
"size" : "1024x1024",
"unassigned" : true
},
{
"filename" : "tinting.png",
"idiom" : "universal",
"platform" : "ios",
"size" : "1024x1024",
"unassigned" : true
}
],
"info" : {
"author" : "xcode",
"version" : 1
}
}

View file

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

Binary file not shown.

Before

Width:  |  Height:  |  Size: 82 KiB

View file

@ -1,14 +0,0 @@
{
"images" : [
{
"filename" : "original.png",
"idiom" : "universal",
"platform" : "ios",
"size" : "1024x1024"
}
],
"info" : {
"author" : "xcode",
"version" : 1
}
}

Binary file not shown.

Before

Width:  |  Height:  |  Size: 54 KiB

View file

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

Binary file not shown.

Before

Width:  |  Height:  |  Size: 54 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 106 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 106 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 75 KiB

View file

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

Binary file not shown.

Before

Width:  |  Height:  |  Size: 107 KiB

View file

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

View file

@ -6,110 +6,6 @@
<array>
<string>$(PRODUCT_BUNDLE_IDENTIFIER)</string>
</array>
<key>CFBundleIcons</key>
<dict>
<key>CFBundleAlternateIcons</key>
<dict>
<key>AppIcon_CiroChrome</key>
<dict>
<key>CFBundleIconFiles</key>
<array>
<string>AppIcon_CiroChrome</string>
</array>
</dict>
<key>AppIcon_CiroGold</key>
<dict>
<key>CFBundleIconFiles</key>
<array>
<string>AppIcon_CiroGold</string>
</array>
</dict>
<key>AppIcon_CiroGoldThree</key>
<dict>
<key>CFBundleIconFiles</key>
<array>
<string>AppIcon_CiroGoldThree</string>
</array>
</dict>
<key>AppIcon_CiroGoldTwo</key>
<dict>
<key>CFBundleIconFiles</key>
<array>
<string>AppIcon_CiroGoldTwo</string>
</array>
</dict>
<key>AppIcon_CiroPink</key>
<dict>
<key>CFBundleIconFiles</key>
<array>
<string>AppIcon_CiroPink</string>
</array>
</dict>
<key>AppIcon_CiroPurple</key>
<dict>
<key>CFBundleIconFiles</key>
<array>
<string>AppIcon_CiroPurple</string>
</array>
</dict>
<key>AppIcon_CiroRed</key>
<dict>
<key>CFBundleIconFiles</key>
<array>
<string>AppIcon_CiroRed</string>
</array>
</dict>
<key>AppIcon_CiroRoseGold</key>
<dict>
<key>CFBundleIconFiles</key>
<array>
<string>AppIcon_CiroRoseGold</string>
</array>
</dict>
<key>AppIcon_CiroSilver</key>
<dict>
<key>CFBundleIconFiles</key>
<array>
<string>AppIcon_CiroSilver</string>
</array>
</dict>
<key>AppIcon_CiroSilverTwo</key>
<dict>
<key>CFBundleIconFiles</key>
<array>
<string>AppIcon_CiroSilverTwo</string>
</array>
</dict>
<key>AppIcon_CiroYellow</key>
<dict>
<key>CFBundleIconFiles</key>
<array>
<string>AppIcon_CiroYellow</string>
</array>
</dict>
<key>AppIcon_Original</key>
<dict>
<key>CFBundleIconFiles</key>
<array>
<string>AppIcon_Original</string>
</array>
</dict>
<key>AppIcon_Pixel</key>
<dict>
<key>CFBundleIconFiles</key>
<array>
<string>AppIcon_Pixel</string>
</array>
</dict>
<key>AppIcon_SoraAlt</key>
<dict>
<key>CFBundleIconFiles</key>
<array>
<string>AppIcon_SoraAlt</string>
</array>
</dict>
</dict>
</dict>
<key>CFBundleURLTypes</key>
<array>
<dict>

View file

@ -1,69 +0,0 @@
//
// SettingsViewAlternateAppIconPicker.swift
// Sulfur
//
// Created by Dominic on 20.04.25.
//
import SwiftUI
struct SettingsViewAlternateAppIconPicker: View {
@Binding var isPresented: Bool
@AppStorage("currentAppIcon") private var currentAppIcon = "Default"
let icons: [(name: String, icon: String)] = [
("Default", "Default"),
("Original", "Original"),
("Pixel", "Pixel")
]
var body: some View {
VStack {
Text("Select an App Icon")
.font(.headline)
.padding()
ScrollView(.horizontal, showsIndicators: false) {
HStack(spacing: 20) {
ForEach(icons, id: \.name) { icon in
VStack {
Image("AppIcon_\(icon.icon)_Preview", bundle: .main)
.resizable()
.scaledToFit()
.frame(width: 60, height: 60)
.cornerRadius(10)
.shadow(radius: 6)
.padding()
.background(
currentAppIcon == icon.name ? Color.accentColor.opacity(0.3) : Color.clear
)
.cornerRadius(10)
.accessibilityLabel("Alternative App Icon")
Text(icon.name)
.font(.caption)
.foregroundColor(currentAppIcon == icon.name ? .accentColor : .primary)
}
.accessibilityAddTraits(.isButton)
.onTapGesture {
currentAppIcon = icon.name
setAppIcon(named: icon.icon)
}
}
}
.padding()
}
Spacer()
}
}
private func setAppIcon(named iconName: String) {
if UIApplication.shared.supportsAlternateIcons {
UIApplication.shared.setAlternateIconName(iconName == "Default" ? nil : "AppIcon_\(iconName)", completionHandler: { error in
if let error = error {
Logger.shared.log("Failed to set alternate icon: \(error.localizedDescription)", type: "Error")
isPresented = false
}
})
}
}
}

View file

@ -157,13 +157,11 @@ struct SettingsViewGeneral: View {
@AppStorage("tmdbImageWidth") private var TMDBimageWidht: String = "original"
@AppStorage("mediaColumnsPortrait") private var mediaColumnsPortrait: Int = 2
@AppStorage("mediaColumnsLandscape") private var mediaColumnsLandscape: Int = 4
@AppStorage("currentAppIcon") private var currentAppIcon = "Default"
private let metadataProvidersList = ["AniList", "TMDB"]
private let TMDBimageWidhtList = ["300", "500", "780", "1280", "original"]
private let sortOrderOptions = ["Ascending", "Descending"]
@EnvironmentObject var settings: Settings
@State private var showAppIconPicker = false
var body: some View {
ScrollView {
@ -182,28 +180,6 @@ struct SettingsViewGeneral: View {
},
selection: $settings.selectedAppearance
)
VStack(spacing: 0) {
HStack {
Image(systemName: "app")
.frame(width: 24, height: 24)
.foregroundStyle(.primary)
Text("App Icon")
.foregroundStyle(.primary)
Spacer()
Button(action: {
showAppIconPicker = true
}) {
Text(currentAppIcon)
.foregroundStyle(.gray)
}
}
.padding(.horizontal, 16)
.padding(.vertical, 12)
}
}
SettingsSection(
@ -304,13 +280,5 @@ struct SettingsViewGeneral: View {
}
.navigationTitle("General")
.scrollViewBottomPadding()
.sheet(isPresented: $showAppIconPicker) {
if #available(iOS 16.0, *) {
SettingsViewAlternateAppIconPicker(isPresented: $showAppIconPicker)
.presentationDetents([.height(200)])
} else {
SettingsViewAlternateAppIconPicker(isPresented: $showAppIconPicker)
}
}
}
}

View file

@ -32,7 +32,6 @@
132AF1212D99951700A0140B /* JSController-Streams.swift in Sources */ = {isa = PBXBuildFile; fileRef = 132AF1202D99951700A0140B /* JSController-Streams.swift */; };
132AF1232D9995C300A0140B /* JSController-Details.swift in Sources */ = {isa = PBXBuildFile; fileRef = 132AF1222D9995C300A0140B /* JSController-Details.swift */; };
132AF1252D9995F900A0140B /* JSController-Search.swift in Sources */ = {isa = PBXBuildFile; fileRef = 132AF1242D9995F900A0140B /* JSController-Search.swift */; };
132FC5B32DE31DAE009A80F7 /* SettingsViewAlternateAppIconPicker.swift in Sources */ = {isa = PBXBuildFile; fileRef = 132FC5B22DE31DAD009A80F7 /* SettingsViewAlternateAppIconPicker.swift */; };
133D7C6E2D2BE2500075467E /* SoraApp.swift in Sources */ = {isa = PBXBuildFile; fileRef = 133D7C6D2D2BE2500075467E /* SoraApp.swift */; };
133D7C702D2BE2500075467E /* ContentView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 133D7C6F2D2BE2500075467E /* ContentView.swift */; };
133D7C722D2BE2520075467E /* Assets.xcassets in Resources */ = {isa = PBXBuildFile; fileRef = 133D7C712D2BE2520075467E /* Assets.xcassets */; };
@ -124,7 +123,6 @@
132AF1202D99951700A0140B /* JSController-Streams.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = "JSController-Streams.swift"; sourceTree = "<group>"; };
132AF1222D9995C300A0140B /* JSController-Details.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = "JSController-Details.swift"; sourceTree = "<group>"; };
132AF1242D9995F900A0140B /* JSController-Search.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = "JSController-Search.swift"; sourceTree = "<group>"; };
132FC5B22DE31DAD009A80F7 /* SettingsViewAlternateAppIconPicker.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = SettingsViewAlternateAppIconPicker.swift; sourceTree = "<group>"; };
133D7C6A2D2BE2500075467E /* Sulfur.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = Sulfur.app; sourceTree = BUILT_PRODUCTS_DIR; };
133D7C6D2D2BE2500075467E /* SoraApp.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SoraApp.swift; sourceTree = "<group>"; };
133D7C6F2D2BE2500075467E /* ContentView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ContentView.swift; sourceTree = "<group>"; };
@ -359,7 +357,6 @@
133D7C832D2BE2630075467E /* SettingsSubViews */ = {
isa = PBXGroup;
children = (
132FC5B22DE31DAD009A80F7 /* SettingsViewAlternateAppIconPicker.swift */,
1E9FF1D22D403E42008AC100 /* SettingsViewLoggerFilter.swift */,
1399FAD32D3AB38C00E97C31 /* SettingsViewLogger.swift */,
133D7C842D2BE2630075467E /* SettingsViewModule.swift */,
@ -747,7 +744,6 @@
13EA2BD52D32D97400C1EBD7 /* CustomPlayer.swift in Sources */,
727220712DD642B100C2A4A2 /* JSController-StreamTypeDownload.swift in Sources */,
727220722DD642B100C2A4A2 /* JSController+MP4Download.swift in Sources */,
132FC5B32DE31DAE009A80F7 /* SettingsViewAlternateAppIconPicker.swift in Sources */,
0402DA132DE7B5EC003BB42C /* SearchStateView.swift in Sources */,
0402DA142DE7B5EC003BB42C /* SearchResultsGrid.swift in Sources */,
0402DA152DE7B5EC003BB42C /* SearchComponents.swift in Sources */,
@ -893,8 +889,7 @@
133D7C792D2BE2520075467E /* Debug */ = {
isa = XCBuildConfiguration;
buildSettings = {
ASSETCATALOG_COMPILER_ALTERNATE_APPICON_NAMES = "AppIcon_Original AppIcon_Pixel";
ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon_Default;
ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon;
ASSETCATALOG_COMPILER_GLOBAL_ACCENT_COLOR_NAME = AccentColor;
ASSETCATALOG_COMPILER_INCLUDE_ALL_APPICON_ASSETS = NO;
CODE_SIGN_ENTITLEMENTS = Sora/Sora.entitlements;
@ -909,7 +904,6 @@
INFOPLIST_FILE = Sora/Info.plist;
INFOPLIST_KEY_CFBundleDisplayName = Sora;
INFOPLIST_KEY_LSApplicationCategoryType = "public.app-category.entertainment";
INFOPLIST_KEY_NSCameraUsageDescription = "Sora may requires access to your device's camera.";
INFOPLIST_KEY_UIApplicationSceneManifest_Generation = YES;
INFOPLIST_KEY_UIApplicationSupportsIndirectInputEvents = YES;
INFOPLIST_KEY_UILaunchScreen_Generation = YES;
@ -937,8 +931,7 @@
133D7C7A2D2BE2520075467E /* Release */ = {
isa = XCBuildConfiguration;
buildSettings = {
ASSETCATALOG_COMPILER_ALTERNATE_APPICON_NAMES = "AppIcon_Original AppIcon_Pixel";
ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon_Default;
ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon;
ASSETCATALOG_COMPILER_GLOBAL_ACCENT_COLOR_NAME = AccentColor;
ASSETCATALOG_COMPILER_INCLUDE_ALL_APPICON_ASSETS = NO;
CODE_SIGN_ENTITLEMENTS = Sora/Sora.entitlements;
@ -953,7 +946,6 @@
INFOPLIST_FILE = Sora/Info.plist;
INFOPLIST_KEY_CFBundleDisplayName = Sora;
INFOPLIST_KEY_LSApplicationCategoryType = "public.app-category.entertainment";
INFOPLIST_KEY_NSCameraUsageDescription = "Sora may requires access to your device's camera.";
INFOPLIST_KEY_UIApplicationSceneManifest_Generation = YES;
INFOPLIST_KEY_UIApplicationSupportsIndirectInputEvents = YES;
INFOPLIST_KEY_UILaunchScreen_Generation = YES;