diff --git a/Sora/Assets.xcassets/AppIcons/AppIcon_Default.appiconset/Contents.json b/Sora/Assets.xcassets/AppIcon.appiconset/Contents.json similarity index 100% rename from Sora/Assets.xcassets/AppIcons/AppIcon_Default.appiconset/Contents.json rename to Sora/Assets.xcassets/AppIcon.appiconset/Contents.json diff --git a/Sora/Assets.xcassets/AppIcons/AppIcon_Default.appiconset/darkmode.png b/Sora/Assets.xcassets/AppIcon.appiconset/darkmode.png similarity index 100% rename from Sora/Assets.xcassets/AppIcons/AppIcon_Default.appiconset/darkmode.png rename to Sora/Assets.xcassets/AppIcon.appiconset/darkmode.png diff --git a/Sora/Assets.xcassets/AppIcons/AppIcon_Default.appiconset/lightmode.png b/Sora/Assets.xcassets/AppIcon.appiconset/lightmode.png similarity index 100% rename from Sora/Assets.xcassets/AppIcons/AppIcon_Default.appiconset/lightmode.png rename to Sora/Assets.xcassets/AppIcon.appiconset/lightmode.png diff --git a/Sora/Assets.xcassets/AppIcons/AppIcon_Default.appiconset/tinting.png b/Sora/Assets.xcassets/AppIcon.appiconset/tinting.png similarity index 100% rename from Sora/Assets.xcassets/AppIcons/AppIcon_Default.appiconset/tinting.png rename to Sora/Assets.xcassets/AppIcon.appiconset/tinting.png diff --git a/Sora/Assets.xcassets/AppIcons/AppIcon_Default_Preview.imageset/Contents.json b/Sora/Assets.xcassets/AppIcons/AppIcon_Default_Preview.imageset/Contents.json deleted file mode 100644 index b85e601..0000000 --- a/Sora/Assets.xcassets/AppIcons/AppIcon_Default_Preview.imageset/Contents.json +++ /dev/null @@ -1,12 +0,0 @@ -{ - "images" : [ - { - "filename" : "preview.png", - "idiom" : "universal" - } - ], - "info" : { - "author" : "xcode", - "version" : 1 - } -} diff --git a/Sora/Assets.xcassets/AppIcons/AppIcon_Default_Preview.imageset/preview.png b/Sora/Assets.xcassets/AppIcons/AppIcon_Default_Preview.imageset/preview.png deleted file mode 100644 index 67ecac7..0000000 Binary files a/Sora/Assets.xcassets/AppIcons/AppIcon_Default_Preview.imageset/preview.png and /dev/null differ diff --git a/Sora/Assets.xcassets/AppIcons/AppIcon_Original.appiconset/Contents.json b/Sora/Assets.xcassets/AppIcons/AppIcon_Original.appiconset/Contents.json deleted file mode 100644 index 147bdb2..0000000 --- a/Sora/Assets.xcassets/AppIcons/AppIcon_Original.appiconset/Contents.json +++ /dev/null @@ -1,14 +0,0 @@ -{ - "images" : [ - { - "filename" : "original.png", - "idiom" : "universal", - "platform" : "ios", - "size" : "1024x1024" - } - ], - "info" : { - "author" : "xcode", - "version" : 1 - } -} \ No newline at end of file diff --git a/Sora/Assets.xcassets/AppIcons/AppIcon_Original.appiconset/original.png b/Sora/Assets.xcassets/AppIcons/AppIcon_Original.appiconset/original.png deleted file mode 100644 index 714cb39..0000000 Binary files a/Sora/Assets.xcassets/AppIcons/AppIcon_Original.appiconset/original.png and /dev/null differ diff --git a/Sora/Assets.xcassets/AppIcons/AppIcon_Original_Preview.imageset/Contents.json b/Sora/Assets.xcassets/AppIcons/AppIcon_Original_Preview.imageset/Contents.json deleted file mode 100644 index b85e601..0000000 --- a/Sora/Assets.xcassets/AppIcons/AppIcon_Original_Preview.imageset/Contents.json +++ /dev/null @@ -1,12 +0,0 @@ -{ - "images" : [ - { - "filename" : "preview.png", - "idiom" : "universal" - } - ], - "info" : { - "author" : "xcode", - "version" : 1 - } -} diff --git a/Sora/Assets.xcassets/AppIcons/AppIcon_Original_Preview.imageset/preview.png b/Sora/Assets.xcassets/AppIcons/AppIcon_Original_Preview.imageset/preview.png deleted file mode 100644 index 714cb39..0000000 Binary files a/Sora/Assets.xcassets/AppIcons/AppIcon_Original_Preview.imageset/preview.png and /dev/null differ diff --git a/Sora/Assets.xcassets/AppIcons/AppIcon_Pixel.appiconset/Contents.json b/Sora/Assets.xcassets/AppIcons/AppIcon_Pixel.appiconset/Contents.json deleted file mode 100644 index d5592ce..0000000 --- a/Sora/Assets.xcassets/AppIcons/AppIcon_Pixel.appiconset/Contents.json +++ /dev/null @@ -1,38 +0,0 @@ -{ - "images" : [ - { - "filename" : "lightmode.png", - "idiom" : "universal", - "platform" : "ios", - "size" : "1024x1024" - }, - { - "appearances" : [ - { - "appearance" : "luminosity", - "value" : "dark" - } - ], - "filename" : "darkmode.png", - "idiom" : "universal", - "platform" : "ios", - "size" : "1024x1024" - }, - { - "appearances" : [ - { - "appearance" : "luminosity", - "value" : "tinted" - } - ], - "filename" : "tinting.png", - "idiom" : "universal", - "platform" : "ios", - "size" : "1024x1024" - } - ], - "info" : { - "author" : "xcode", - "version" : 1 - } -} \ No newline at end of file diff --git a/Sora/Assets.xcassets/AppIcons/AppIcon_Pixel.appiconset/darkmode.png b/Sora/Assets.xcassets/AppIcons/AppIcon_Pixel.appiconset/darkmode.png deleted file mode 100644 index d741516..0000000 Binary files a/Sora/Assets.xcassets/AppIcons/AppIcon_Pixel.appiconset/darkmode.png and /dev/null differ diff --git a/Sora/Assets.xcassets/AppIcons/AppIcon_Pixel.appiconset/lightmode.png b/Sora/Assets.xcassets/AppIcons/AppIcon_Pixel.appiconset/lightmode.png deleted file mode 100644 index caa9146..0000000 Binary files a/Sora/Assets.xcassets/AppIcons/AppIcon_Pixel.appiconset/lightmode.png and /dev/null differ diff --git a/Sora/Assets.xcassets/AppIcons/AppIcon_Pixel.appiconset/tinting.png b/Sora/Assets.xcassets/AppIcons/AppIcon_Pixel.appiconset/tinting.png deleted file mode 100644 index 92e0799..0000000 Binary files a/Sora/Assets.xcassets/AppIcons/AppIcon_Pixel.appiconset/tinting.png and /dev/null differ diff --git a/Sora/Assets.xcassets/AppIcons/AppIcon_Pixel_Preview.imageset/Contents.json b/Sora/Assets.xcassets/AppIcons/AppIcon_Pixel_Preview.imageset/Contents.json deleted file mode 100644 index b85e601..0000000 --- a/Sora/Assets.xcassets/AppIcons/AppIcon_Pixel_Preview.imageset/Contents.json +++ /dev/null @@ -1,12 +0,0 @@ -{ - "images" : [ - { - "filename" : "preview.png", - "idiom" : "universal" - } - ], - "info" : { - "author" : "xcode", - "version" : 1 - } -} diff --git a/Sora/Assets.xcassets/AppIcons/AppIcon_Pixel_Preview.imageset/preview.png b/Sora/Assets.xcassets/AppIcons/AppIcon_Pixel_Preview.imageset/preview.png deleted file mode 100644 index 7fbab5d..0000000 Binary files a/Sora/Assets.xcassets/AppIcons/AppIcon_Pixel_Preview.imageset/preview.png and /dev/null differ diff --git a/Sora/Assets.xcassets/AppIcons/Contents.json b/Sora/Assets.xcassets/AppIcons/Contents.json deleted file mode 100644 index 73c0059..0000000 --- a/Sora/Assets.xcassets/AppIcons/Contents.json +++ /dev/null @@ -1,6 +0,0 @@ -{ - "info" : { - "author" : "xcode", - "version" : 1 - } -} diff --git a/Sora/Views/SettingsView/SettingsSubViews/SettingsViewAlternateAppIconPicker.swift b/Sora/Views/SettingsView/SettingsSubViews/SettingsViewAlternateAppIconPicker.swift deleted file mode 100644 index e0ba062..0000000 --- a/Sora/Views/SettingsView/SettingsSubViews/SettingsViewAlternateAppIconPicker.swift +++ /dev/null @@ -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 - } - }) - } - } -} diff --git a/Sora/Views/SettingsView/SettingsSubViews/SettingsViewGeneral.swift b/Sora/Views/SettingsView/SettingsSubViews/SettingsViewGeneral.swift index c91bb09..0f15f5a 100644 --- a/Sora/Views/SettingsView/SettingsSubViews/SettingsViewGeneral.swift +++ b/Sora/Views/SettingsView/SettingsSubViews/SettingsViewGeneral.swift @@ -157,7 +157,6 @@ 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"] @@ -182,28 +181,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( diff --git a/Sulfur.xcodeproj/project.pbxproj b/Sulfur.xcodeproj/project.pbxproj index 57f1021..16bbe89 100644 --- a/Sulfur.xcodeproj/project.pbxproj +++ b/Sulfur.xcodeproj/project.pbxproj @@ -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 = ""; }; 132AF1222D9995C300A0140B /* JSController-Details.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = "JSController-Details.swift"; sourceTree = ""; }; 132AF1242D9995F900A0140B /* JSController-Search.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = "JSController-Search.swift"; sourceTree = ""; }; - 132FC5B22DE31DAD009A80F7 /* SettingsViewAlternateAppIconPicker.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = SettingsViewAlternateAppIconPicker.swift; sourceTree = ""; }; 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 = ""; }; 133D7C6F2D2BE2500075467E /* ContentView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ContentView.swift; sourceTree = ""; }; @@ -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;