mirror of
				https://github.com/immich-app/immich.git
				synced 2025-11-03 19:17:11 -05:00 
			
		
		
		
	* feat: working widgets * chore/feat: cleaned up API, added album picker to random widget * album filtering for requests * check album and throw if not found * fix app IDs and project configuration * switch to repository/service model for updating widgets * fix: remove home widget import * revert info.plist formatting changes * ran swift-format on widget code * more formatting changes (this time run from xcode) * show memory on widget picker snapshot * fix: dart changes from code review * fix: swift code review changes (not including task groups) * fix: use task groups to run image retrievals concurrently, get rid of do catch in favor of if let * chore: cleanup widget service in dart app * chore: format swift * fix: remove comma why does xcode not freak out over this >:( * switch to preview size for thumbnail * chore: cropped large image * fix: properly resize widgets so we dont OOM * fix: set app group on logout happens on first install * fix: stupid app ids * fix: revert back to thumbnail we are hitting OOM exceptions due to resizing, once we have on-the-fly resizing on server this can be upgraded * fix: more memory efficient resizing method, remove extraneous resize commands from API call * fix: random widget use 12 entries instead of 24 to save memory * fix: modify duration of entries to 20 minutes and only generate 10 at a time to avoid OOM * feat: toggle to show album name on random widget * Podfile lock --------- Co-authored-by: Alex <alex.tran1502@gmail.com>
		
			
				
	
	
		
			21 lines
		
	
	
		
			678 B
		
	
	
	
		
			Swift
		
	
	
	
	
	
			
		
		
	
	
			21 lines
		
	
	
		
			678 B
		
	
	
	
		
			Swift
		
	
	
	
	
	
//
 | 
						|
//  Utils.swift
 | 
						|
//  Runner
 | 
						|
//
 | 
						|
//  Created by Alex Tran and Brandon Wees on 6/16/25.
 | 
						|
//
 | 
						|
import UIKit
 | 
						|
 | 
						|
extension UIImage {
 | 
						|
    /// Crops the image to ensure width and height do not exceed maxSize.
 | 
						|
    /// Keeps original aspect ratio and crops excess equally from edges (center crop).
 | 
						|
    func resized(toWidth width: CGFloat, isOpaque: Bool = true) -> UIImage? {
 | 
						|
      let canvas = CGSize(width: width, height: CGFloat(ceil(width/size.width * size.height)))
 | 
						|
      let format = imageRendererFormat
 | 
						|
      format.opaque = isOpaque
 | 
						|
      return UIGraphicsImageRenderer(size: canvas, format: format).image {
 | 
						|
        _ in draw(in: CGRect(origin: .zero, size: canvas))
 | 
						|
      }
 | 
						|
    }
 | 
						|
}
 |