specific carplay ui

This commit is contained in:
leminlimez committed 2025-06-19 04:23:26 -04:00
1 parent 9d8aef4039
commit 069d5cf1c3
8 files changed
+306 -6

No files matched your search

@@ -0,0 +1,28 @@
//
// CPBitmapHandler.swift
// Pocket Poster
//
// Created by lemin on 6/16/25.
//
import UIKit
import Dynamic
class CPBitmapHandler {
static func resizeAndSave(image: UIImage, to url: URL, size: CGSize) throws {
UIGraphicsBeginImageContextWithOptions(size, false, 0.0)
image.draw(in: CGRect(origin: CGPoint.zero, size: size))
let resizedImage = UIGraphicsGetImageFromCurrentImageContext()!
UIGraphicsEndImageContext()
try? FileManager.default.removeItem(at: url)
resizedImage.writeToCPBitmapFile(to: url.path() as NSString)
}
}
extension UIImage {
func writeToCPBitmapFile(to path: NSString) {
Dynamic(self).writeToCPBitmapFile(path, flags: 1)
}
}
@@ -273,6 +273,32 @@ class PosterBoardManager: ObservableObject {
}
}
func applyCarPlay(appHash: String, wallpapers: [CarPlayWallpaper]) throws {
// write the image
var toRemove: [URL] = []
for wallpaper in wallpapers {
if let data = wallpaper.selectedImageDataLight, let img = UIImage(data: data) {
let imgURL = SymHandler.getDocumentsDirectory().appendingPathComponent("CAR\(wallpaper.name)Dynamic-Light-11.cpbitmap")
img.writeToCPBitmapFile(to: imgURL.path() as NSString)
toRemove.append(imgURL)
}
if let data = wallpaper.selectedImageDataDark, let img = UIImage(data: data) {
let imgURL = SymHandler.getDocumentsDirectory().appendingPathComponent("CAR\(wallpaper.name)Dynamic-Dark-11.cpbitmap")
img.writeToCPBitmapFile(to: imgURL.path() as NSString)
toRemove.append(imgURL)
}
}
// symlink and apply
let _ = try SymHandler.createAppSymlink(for: "\(appHash)/Library/Caches/MappedImageCache/com.apple.CarPlayApp.wallpaper-images")
defer {
SymHandler.cleanup()
}
for imgURL in toRemove {
try FileManager.default.trashItem(at: imgURL, resultingItemURL: nil)
}
}
static func clearCache() throws {
SymHandler.cleanup()
let docDir = SymHandler.getDocumentsDirectory()