Skip to content

Commit

Permalink
Version 6.0.0 (#3122)
Browse files Browse the repository at this point in the history
Signed-off-by: Nextcloud bot <[email protected]>
Signed-off-by: Marino Faggiana <[email protected]>
Signed-off-by: Milen Pivchev <[email protected]>
Signed-off-by: rakekniven <[email protected]>
  • Loading branch information
marinofaggiana authored Oct 24, 2024
1 parent 64ab8f4 commit 574ab7e
Show file tree
Hide file tree
Showing 420 changed files with 17,021 additions and 8,767 deletions.
2 changes: 1 addition & 1 deletion Brand/Database.swift
Original file line number Diff line number Diff line change
Expand Up @@ -26,4 +26,4 @@ import Foundation
// Database Realm
//
let databaseName = "nextcloud.realm"
let databaseSchemaVersion: UInt64 = 354
let databaseSchemaVersion: UInt64 = 365
2 changes: 2 additions & 0 deletions Brand/File_Provider_Extension.plist
Original file line number Diff line number Diff line change
Expand Up @@ -31,6 +31,8 @@
<string>group.it.twsweb.Crypto-Cloud</string>
<key>NSExtensionFileProviderSupportsEnumeration</key>
<true/>
<key>NSExtensionFileProviderSupportsPickingFolders</key>
<true/>
<key>NSExtensionPointIdentifier</key>
<string>com.apple.fileprovider-nonui</string>
<key>NSExtensionPrincipalClass</key>
Expand Down
34 changes: 19 additions & 15 deletions Brand/Intro/NCIntroViewController.swift
Original file line number Diff line number Diff line change
Expand Up @@ -26,7 +26,6 @@
import UIKit

class NCIntroViewController: UIViewController, UICollectionViewDataSource, UICollectionViewDelegateFlowLayout {

@IBOutlet weak var buttonLogin: UIButton!
@IBOutlet weak var buttonSignUp: UIButton!
@IBOutlet weak var buttonHost: UIButton!
Expand Down Expand Up @@ -99,18 +98,23 @@ class NCIntroViewController: UIViewController, UICollectionViewDataSource, UICol
view.backgroundColor = NCBrandColor.shared.customer
timerAutoScroll = Timer.scheduledTimer(timeInterval: 5, target: self, selector: (#selector(NCIntroViewController.autoScroll)), userInfo: nil, repeats: true)

NotificationCenter.default.addObserver(forName: NSNotification.Name(rawValue: NCGlobal.shared.notificationCenterChangeUser), object: nil, queue: nil) { _ in
let window = UIApplication.shared.firstWindow
if window?.rootViewController is NCMainTabBarController {
self.dismiss(animated: true)
} else {
if let mainTabBarController = UIStoryboard(name: "Main", bundle: nil).instantiateInitialViewController() as? NCMainTabBarController {
mainTabBarController.modalPresentationStyle = .fullScreen
mainTabBarController.view.alpha = 0
window?.rootViewController = mainTabBarController
window?.makeKeyAndVisible()
UIView.animate(withDuration: 0.5) {
mainTabBarController.view.alpha = 1
NotificationCenter.default.addObserver(forName: NSNotification.Name(rawValue: NCGlobal.shared.notificationCenterChangeUser), object: nil, queue: nil) { notification in
if let userInfo = notification.userInfo,
let account = userInfo["account"] as? String {
let window = UIApplication.shared.firstWindow
if let controller = window?.rootViewController as? NCMainTabBarController {
controller.account = account
self.dismiss(animated: true)
} else {
if let controller = UIStoryboard(name: "Main", bundle: nil).instantiateInitialViewController() as? NCMainTabBarController {
controller.account = account
controller.modalPresentationStyle = .fullScreen
controller.view.alpha = 0
window?.rootViewController = controller
window?.makeKeyAndVisible()
UIView.animate(withDuration: 0.5) {
controller.view.alpha = 1
}
}
}
}
Expand Down Expand Up @@ -179,11 +183,11 @@ class NCIntroViewController: UIViewController, UICollectionViewDataSource, UICol
}

@IBAction func login(_ sender: Any) {
appDelegate.openLogin(selector: NCGlobal.shared.introLogin, openLoginWeb: false)
appDelegate.openLogin(selector: NCGlobal.shared.introLogin)
}

@IBAction func signup(_ sender: Any) {
appDelegate.openLogin(selector: NCGlobal.shared.introSignup, openLoginWeb: false)
appDelegate.openLogin(selector: NCGlobal.shared.introSignup)
}

@IBAction func host(_ sender: Any) {
Expand Down
206 changes: 121 additions & 85 deletions Brand/NCBrand.swift
Original file line number Diff line number Diff line change
Expand Up @@ -58,7 +58,7 @@ let userAgent: String = {
// BRAND ONLY
@objc public var use_AppConfig: Bool = false // Don't touch me !!

// Options
// Use server theming color
@objc public var use_themingColor: Bool = true

var disable_intro: Bool = false
Expand All @@ -71,6 +71,10 @@ let userAgent: String = {
var disable_mobileconfig: Bool = false
var disable_show_more_nextcloud_apps_in_settings: Bool = false
var doNotAskPasscodeAtStartup: Bool = false
var disable_source_code_in_settings: Bool = false

// (name: "Name 1", url: "https://cloud.nextcloud.com"),(name: "Name 2", url: "https://cloud.nextcloud.com")
var enforce_servers: [(name: String, url: String)] = []

// Internal option behaviour
var cleanUpDay: Int = 0 // Set default "Delete, in the cache, all files older than" possible days value are: 0, 1, 7, 30, 90, 180, 365
Expand Down Expand Up @@ -127,26 +131,22 @@ class NCBrandColor: NSObject {
return instance
}()

// Color
/// This is rewrited from customet theme, default is Nextcloud color
///
let customer: UIColor = UIColor(red: 0.0 / 255.0, green: 130.0 / 255.0, blue: 201.0 / 255.0, alpha: 1.0) // BLU NC : #0082c9
var customerText: UIColor = .white

var brand: UIColor // don't touch me
var brandElement: UIColor // don't touch me
var brandText: UIColor // don't touch me
// INTERNAL DEFINE COLORS
private var themingColor = ThreadSafeDictionary<String, UIColor>()
private var themingColorElement = ThreadSafeDictionary<String, UIColor>()
private var themingColorText = ThreadSafeDictionary<String, UIColor>()

var userColors: [CGColor] = []
let nextcloud: UIColor = UIColor(red: 0.0 / 255.0, green: 130.0 / 255.0, blue: 201.0 / 255.0, alpha: 1.0)
let yellowFavorite: UIColor = UIColor(red: 248.0 / 255.0, green: 205.0 / 255.0, blue: 70.0 / 255.0, alpha: 1.0)

var userColors: [CGColor] = []
var themingColor: String = ""
var themingColorElement: String = ""
var themingColorText: String = ""

let iconImageColor: UIColor = .label
let iconImageColor2: UIColor = .secondaryLabel
let iconImageMultiColors: [UIColor] = [.secondaryLabel, .label]

let textColor: UIColor = .label
let textColor2: UIColor = .secondaryLabel

Expand Down Expand Up @@ -174,126 +174,162 @@ class NCBrandColor: NSObject {
}
}

override init() {
brand = customer
brandElement = customer
brandText = customerText
}
override init() { }

/**
Generate colors from the official nextcloud color.
You can provide how many colors you want (multiplied by 3).
if `step` = 6,
3 colors \* 6 will result in 18 generated colors
*/
func createUserColors() {
func generateColors(steps: Int = 6) -> [CGColor] {
func stepCalc(steps: Int, color1: CGColor, color2: CGColor) -> [CGFloat] {
var step = [CGFloat](repeating: 0, count: 3)

step[0] = (color2.components![0] - color1.components![0]) / CGFloat(steps)
step[1] = (color2.components![1] - color1.components![1]) / CGFloat(steps)
step[2] = (color2.components![2] - color1.components![2]) / CGFloat(steps)
return step
}

func mixPalette(steps: Int, color1: CGColor, color2: CGColor) -> [CGColor] {
var palette = [color1]
let step = stepCalc(steps: steps, color1: color1, color2: color2)
let c1Components = color1.components!

for i in 1 ..< steps {
let r = c1Components[0] + step[0] * CGFloat(i)
let g = c1Components[1] + step[1] * CGFloat(i)
let b = c1Components[2] + step[2] * CGFloat(i)

palette.append(UIColor(red: r, green: g, blue: b, alpha: 1).cgColor)
}
return palette
}

let red = UIColor(red: 182 / 255, green: 70 / 255, blue: 157 / 255, alpha: 1).cgColor
let yellow = UIColor(red: 221 / 255, green: 203 / 255, blue: 85 / 255, alpha: 1).cgColor
let blue = UIColor(red: 0 / 255, green: 130 / 255, blue: 201 / 255, alpha: 1).cgColor

let palette1 = mixPalette(steps: steps, color1: red, color2: yellow)
let palette2 = mixPalette(steps: steps, color1: yellow, color2: blue)
let palette3 = mixPalette(steps: steps, color1: blue, color2: red)

return palette1 + palette2 + palette3
}

userColors = generateColors()
}

func settingThemingColor(account: String) {
@discardableResult
func settingThemingColor(account: String) -> Bool {
let darker: CGFloat = 30 // %
let lighter: CGFloat = 30 // %
var colorThemingColor: UIColor?
var colorThemingColorElement: UIColor?
var colorThemingColorText: UIColor?

if NCBrandOptions.shared.use_themingColor {
self.themingColor = NCGlobal.shared.capabilityThemingColor
self.themingColorElement = NCGlobal.shared.capabilityThemingColorElement
self.themingColorText = NCGlobal.shared.capabilityThemingColorText
let themingColor = NCCapabilities.shared.getCapabilities(account: account).capabilityThemingColor
let themingColorElement = NCCapabilities.shared.getCapabilities(account: account).capabilityThemingColorElement
let themingColorText = NCCapabilities.shared.getCapabilities(account: account).capabilityThemingColorText

// COLOR
// THEMING COLOR
if themingColor.first == "#" {
if let color = UIColor(hex: themingColor) {
brand = color
} else {
brand = customer
}
} else {
brand = customer
}

// COLOR TEXT
if themingColorText.first == "#" {
if let color = UIColor(hex: themingColorText) {
brandText = color
colorThemingColor = color
} else {
brandText = customerText
colorThemingColor = customer
}
} else {
brandText = customerText
colorThemingColor = customer
}

// COLOR ELEMENT
// THEMING COLOR ELEMENT (control isTooLight / isTooDark)
if themingColorElement.first == "#" {
if let color = UIColor(hex: themingColorElement) {
brandElement = color
if color.isTooLight() {
if let color = color.darker(by: darker) {
colorThemingColorElement = color
}
} else if color.isTooDark() {
if let color = color.lighter(by: lighter) {
colorThemingColorElement = color
}
} else {
colorThemingColorElement = color
}
} else {
brandElement = brand
colorThemingColorElement = customer
}
} else {
brandElement = brand
colorThemingColorElement = customer
}

if brandElement.isTooLight() {
if let color = brandElement.darker(by: darker) {
brandElement = color
}
} else if brandElement.isTooDark() {
if let color = brandElement.lighter(by: lighter) {
brandElement = color
// THEMING COLOR TEXT
if themingColorText.first == "#" {
if let color = UIColor(hex: themingColorText) {
colorThemingColorText = color
} else {
colorThemingColorText = .white
}
} else {
colorThemingColorText = .white
}

} else {

// THEMING COLOR
colorThemingColor = customer

// THEMING COLOR ELEMENT (control isTooLight / isTooDark)
if self.customer.isTooLight() {
if let color = customer.darker(by: darker) {
brandElement = color
colorThemingColorElement = color
}
} else if customer.isTooDark() {
if let color = customer.lighter(by: lighter) {
brandElement = color
colorThemingColorElement = color
}
} else {
brandElement = customer
colorThemingColorElement = customer
}

brand = customer
brandText = customerText
// THEMING COLOR TEXT
colorThemingColorText = customerText
}
}

private func stepCalc(steps: Int, color1: CGColor, color2: CGColor) -> [CGFloat] {
var step = [CGFloat](repeating: 0, count: 3)
if self.themingColor[account] != colorThemingColor || self.themingColorElement[account] != colorThemingColorElement || self.themingColorText[account] != colorThemingColorText {

step[0] = (color2.components![0] - color1.components![0]) / CGFloat(steps)
step[1] = (color2.components![1] - color1.components![1]) / CGFloat(steps)
step[2] = (color2.components![2] - color1.components![2]) / CGFloat(steps)
return step
}
self.themingColor[account] = colorThemingColor
self.themingColorElement[account] = colorThemingColorElement
self.themingColorText[account] = colorThemingColorText

private func mixPalette(steps: Int, color1: CGColor, color2: CGColor) -> [CGColor] {
var palette = [color1]
let step = stepCalc(steps: steps, color1: color1, color2: color2)
let c1Components = color1.components!
return true
}

for i in 1 ..< steps {
let r = c1Components[0] + step[0] * CGFloat(i)
let g = c1Components[1] + step[1] * CGFloat(i)
let b = c1Components[2] + step[2] * CGFloat(i)
return false
}

palette.append(UIColor(red: r, green: g, blue: b, alpha: 1).cgColor)
public func getTheming(account: String?) -> UIColor {
if let account, let color = self.themingColor[account] {
return color
}
return palette
return customer
}

/**
Generate colors from the official nextcloud color.
You can provide how many colors you want (multiplied by 3).
if `step` = 6,
3 colors \* 6 will result in 18 generated colors
*/
func generateColors(steps: Int = 6) -> [CGColor] {
let red = UIColor(red: 182 / 255, green: 70 / 255, blue: 157 / 255, alpha: 1).cgColor
let yellow = UIColor(red: 221 / 255, green: 203 / 255, blue: 85 / 255, alpha: 1).cgColor
let blue = UIColor(red: 0 / 255, green: 130 / 255, blue: 201 / 255, alpha: 1).cgColor

let palette1 = mixPalette(steps: steps, color1: red, color2: yellow)
let palette2 = mixPalette(steps: steps, color1: yellow, color2: blue)
let palette3 = mixPalette(steps: steps, color1: blue, color2: red)
public func getElement(account: String?) -> UIColor {
if let account, let color = self.themingColorElement[account] {
return color
}
return customer
}

return palette1 + palette2 + palette3
public func getText(account: String?) -> UIColor {
if let account, let color = self.themingColorText[account] {
return color
}
return .white
}
}
2 changes: 2 additions & 0 deletions Brand/iOSClient.plist
Original file line number Diff line number Diff line change
Expand Up @@ -9,6 +9,8 @@
</array>
<key>CFBundleAllowMixedLocalizations</key>
<true/>
<key>LSMinimumSystemVersion</key>
<string>12.3</string>
<key>CFBundleDevelopmentRegion</key>
<string>en</string>
<key>CFBundleDisplayName</key>
Expand Down
2 changes: 0 additions & 2 deletions Cartfile

This file was deleted.

2 changes: 0 additions & 2 deletions Cartfile.resolved

This file was deleted.

2 changes: 1 addition & 1 deletion ExternalResources/NCApplicationHandle.swift
Original file line number Diff line number Diff line change
Expand Up @@ -53,7 +53,7 @@ class NCApplicationHandle: NSObject {

// class: NCCollectionViewCommon (+Menu)
// func: toggleMenu(metadata: tableMetadata, imageIcon: UIImage?)
func addCollectionViewCommonMenu(metadata: tableMetadata, imageIcon: UIImage?, actions: inout [NCMenuAction]) {
func addCollectionViewCommonMenu(metadata: tableMetadata, image: UIImage?, actions: inout [NCMenuAction]) {
}

// class: NCMore
Expand Down
Loading

0 comments on commit 574ab7e

Please sign in to comment.