Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[feature/account-wizard] Add account wizard #1274

Merged
merged 165 commits into from
Jan 29, 2024
Merged

Conversation

felix-schwarz
Copy link
Contributor

@felix-schwarz felix-schwarz commented Sep 6, 2023

Superseded by #1322

Description

Screenshots (if appropriate):

Intro Legacy Webfinger Server URL Basic Auth OIDC Infinite PROPFIND Completed
Simulator Screenshot - iPhone 14 Plus - 2023-09-11 at 12 23 04 Simulator Screenshot - iPhone 14 Plus - 2023-09-06 at 19 30 08 Simulator Screenshot - iPhone 14 Plus - 2023-09-06 at 19 31 03 Simulator Screenshot - iPhone 14 Plus - 2023-09-06 at 19 26 16 Simulator Screenshot - iPhone 14 Plus - 2023-09-06 at 19 27 35 Simulator Screenshot - iPhone 14 Plus - 2023-09-11 at 10 27 43 Simulator Screenshot - iPhone 14 Plus - 2023-09-06 at 19 26 23

Branding changes

Branding assets

Branding assets are now picked and copied dynamically based on their existence and contents:

  • ownCloud/Resources/Theming/com.owncloud.ios-app is used by default
  • ownCloud/Resources/Theming/branding-assets is used instead if there's at least one file in it matching the branding-*.png pattern

Problems solved:

  • branding assets for the pristine app and branded app versions are no longer getting mixed up
  • branding assets can now be truly optional, without requiring changes to the Xcode project to prevent build errors

Supported assets:

File name Purpose
branding-splashscreen-logo.png required Logo used in the splash screen during app launch.
branding-splashscreen-background.png required Background image used in the splash screen during app launch.
branding-logo.png required Used by BrandView in the setup wizard and sidebar branding pill.
branding-background.png optional Used by BrandView in the setup wizard and sidebar branding pill.
branding-logo-setup.png optional Variant of branding-logo.png to be used in account setup.
branding-background-setup.png optional Variant of branding-background.png to be used in account setup.
branding-logo-sidebar.png optional Variant of branding-logo.png to be used in the sidebar branding pill.
branding-background-sidebar.png optional Variant of branding-background.png to be used in the sidebar branding pill.
branding-login-logo.png legacy Replaced by branding-logo.png, supported as a fallback only.
branding-login-background.png legacy Replaced by branding-background.png, supported as a fallback only.
branding-logo.png optional Image to build the app icon from (used in fastlane/Fastfile)
branding-sidebar-link-icon.png optional Convention for naming the image to show
alongside sidebar links.For it to be used
at all, it must be referenced
in the respective branding.sidebar-links
entry/entries. There is no code referencing it.

Default Theme and customizable light/dark themes based on system colors

The default theme is no longer the first theme in the list (typically Light), but Follow System Appearance, so the app follows light and dark mode as used by the system.

If branding.theme-definitions is not used, the app now provides themes for light mode and dark mode to branded clients, with support for light customization through branding:

Option Description
branding.theme-colors Values to use in system-color-based themes for branded clients. Mutually exclusive with theme-definitions.
branding.theme-css-records CSS records to add to the CSS space of system-color-based themes for branded clients. Mutually exclusive with theme-definitions.

Both options can be used together.

Supported branding.theme-colors keys/aliases

Alias Value
tint-color Color to use as tint/accent color for controls (in hex notation). Replaces branding.theme-tint-color.
branding-background-color Color to use as background color for brand views (in hex notation).
setup-status-bar-style The status bar style in the setup wizard, affecting the status bar text color. Can be either default, black or white.
file-icon-color Color to fill file icons with (in hex notation).
folder-icon-color Color to fill folder icons with (in hex notation).

Each alias can be expanded to one or more CSS addresses internally, so that the values set here can be assigned to the right elements - even after major UI changes or refactoring.

Example:

<key>branding.theme-colors</key>
<dict>
	<key>tint-color</key>
	<string>#ff0000</string>
	<key>branding-background-color</key>
	<string>#0ff0f0</string>
	<key>setup-status-bar-style</key>
	<string>black</string>
	<key>folder-icon-color</key>
	<string>#00ff00</string>
	<key>file-icon-color</key>
	<string>#0000ff</string>
</dict>
<key>branding.theme-css-records</key>
<array>
	<string>sidebar.account.fill: #aabbcc</string>
</array>

Removal of unused branding options

branding.theme-generic-colors and branding.theme-definitions$[X].Colors.* were already ignored / no longer used. The remaining code referring to these options has now been removed as well.

Removal of duplicate branding options

The following, duplicate branding options were removed:

Removed option Was duplicate of / Use instead
🚫 account-settings.default-name branding.profile-bookmark-name
🚫 account-settings.default-url branding.profile-url
🚫 account-settings.url-editable branding.profile-allow-url-configuration

Text overrides

The title and message text of each step can be overridden by targeting special translation keys through the locale.overrides option, following the format setup-[stepName]-title and setup-[stepName]-message:

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
	<key>locale.overrides</key>
	<dict>
		<key>setup-serverURL-title</key>
		<dict>
			<key>en</key>
			<string>Enter Instance URL</string>
		</dict>
		<key>setup-serverURL-message</key>
		<dict>
			<key>en</key>
			<string>You can find the instance URL in your sign-up email.</string>
		</dict>
	</dict>
</dict>
</plist>

The possible step names are intro, enterUsername, serverURL, authenticate, chooseServer, infinitePropfind and completed.

Types of changes

  • Bug fix (non-breaking change which fixes an issue)
  • New feature (non-breaking change which adds functionality)
  • Breaking change (fix or feature that would cause existing functionality to change)

Feedback

hosy and others added 30 commits July 11, 2023 11:33
Co-authored-by: Michael Stingl <[email protected]>
* Remove old PLIST examples

* move ownCloud.online theme + assets

* move EMM assets

* Adjust Fastfile for moved themes + assets

* updated to Xcode 14.3

* move all app resources to the correct place in one copy command

* updated to 14.3.1

---------

Co-authored-by: Michael Stingl <[email protected]>
Co-authored-by: Matthias Hühne <[email protected]>
- added accessibility label to the logo image
- add support for RGBA hex values to CSS
…screen background (#1264)

* - add background image to welcome screen
- add support for RGBA hex values to CSS

* Assets.xcassets/AppIcon.appiconset generated with fastlane

* align icon name with branding

---------

Co-authored-by: Felix Schwarz <[email protected]>
Co-authored-by: Michael Stingl <[email protected]>
…cords for colors, incl. a set of system colors

- ThemeCollection: add system colors (f.ex. UIColor.systemBlue as `os.color.blue`) and theme base colors (as `theme.color.light` and `theme.color.dark`) to CSS object
	- add permanent logo branding to top of the view
	- make branding elements use same CSS selectors as welcome screen
- ComposedMessageView: make CSS selectors extension public
- RoundCornerBackgroundView: add new .fillImage property that allows filling the view with an image with "scaleAspectFill" contentMode
…lor and label was not readable, if lightBrandColor was similar to #000000
…ErrorForNonExistentItemWithIdentifier:]` for the case that iOS (illegally) passes in a nil `identifier`, leading to a crash in said NSError method
@jesmrec
Copy link
Contributor

jesmrec commented Jan 19, 2024

This is approved on my side!

Xcode version: 15.1 (15C65)

Approved commits:

app: fb39bcd
sdk: b66dc84

Devices:

iPhoneXR iOS 17.2
iPadPro iPadOS 16.6

Tests reports:

Test plan: https://github.com/owncloud/QA/blob/master/Mobile/iOS/Executions/Version%2012.1/Regression.md

vs oC 10.13.4

vs oCIS 4 (current oCIS stable)

vs oCIS 5 (new incoming oCIS version, currently in beta)

… option to allow omitting parameters from authorization requests (implements #1318)
hosy and others added 10 commits January 23, 2024 14:20
…ht and system dark. Allow theme selection for all clients.
- removed allowed authentication methods
- added more allowed hosts
- updated build number
* [tx] updated from transifex

* [tx] updated from transifex

* [tx] updated from transifex

* [tx] updated from transifex

* [tx] updated from transifex

---------

Co-authored-by: ownClouders <[email protected]>
@hosy hosy merged commit a564c43 into milestone/12.1 Jan 29, 2024
2 of 3 checks passed
@delete-merged-branch delete-merged-branch bot deleted the feature/account-wizard branch January 29, 2024 14:27
@hosy hosy restored the feature/account-wizard branch January 29, 2024 14:49
@felix-schwarz felix-schwarz deleted the feature/account-wizard branch January 29, 2024 16:56
@felix-schwarz felix-schwarz restored the feature/account-wizard branch January 29, 2024 16:57
@jesmrec jesmrec mentioned this pull request Apr 24, 2024
34 tasks
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

5 participants