Skip to content

Commit

Permalink
Release 0.12.0 (#406)
Browse files Browse the repository at this point in the history
  • Loading branch information
ludovic35 authored Apr 14, 2023
1 parent 9714ed3 commit 14d91f7
Show file tree
Hide file tree
Showing 70 changed files with 2,348 additions and 439 deletions.
10 changes: 10 additions & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -3,6 +3,16 @@
All notable changes to this project will be documented in this file.
This project adheres to [Semantic Versioning](http://semver.org/).

## [0.12.0](https://github.com/Orange-OpenSource/ods-ios/compare/0.12.0...0.11.0) - 2023-04-14

- [DemoApp/SDK] Add Bottom Sheet component ([#325](https://github.com/Orange-OpenSource/ods-ios/issues/325))
- [SDK] Accessibility issues on Slider (Bug [#385](https://github.com/Orange-OpenSource/ods-ios/issues/385))
- [Build] Update Build scripts to prepare upload on internal portal ([#383](https://github.com/Orange-OpenSource/ods-ios/issues/383))
- [DemoApp] Add animation on Bottom Sheet when oppening and closing, automatically open it when appears ([#377](https://github.com/Orange-OpenSource/ods-ios/issues/377))
- [DemoApp] Customization bottom sheet title uniformity ([#378](https://github.com/Orange-OpenSource/ods-ios/issues/378))
- [DemoApp] Lists icon not displaying (Bug [#375](https://github.com/Orange-OpenSource/ods-ios/issues/375))
- [SDK] Value is not computed well if Slider configured with step less than 1 (Bug [#313](https://github.com/Orange-OpenSource/ods-ios/issues/313))
- [DemoApp] Update About module illustrations with B&W images ([#371](https://github.com/Orange-OpenSource/ods-ios/issues/371))

## [0.11.2](https://github.com/Orange-OpenSource/ods-ios/compare/0.11.2...0.10.0) - 2023-03-27

Expand Down
49 changes: 25 additions & 24 deletions Gemfile.lock
Original file line number Diff line number Diff line change
@@ -1,32 +1,32 @@
GEM
remote: https://rubygems.org/
specs:
CFPropertyList (3.0.5)
CFPropertyList (3.0.6)
rexml
activesupport (6.1.6)
concurrent-ruby (~> 1.0, >= 1.0.2)
i18n (>= 1.6, < 2)
minitest (>= 5.1)
tzinfo (~> 2.0)
zeitwerk (~> 2.3)
addressable (2.8.0)
public_suffix (>= 2.0.2, < 5.0)
addressable (2.8.4)
public_suffix (>= 2.0.2, < 6.0)
algoliasearch (1.27.5)
httpclient (~> 2.8, >= 2.8.3)
json (>= 1.5.1)
artifactory (3.0.15)
atomos (0.1.3)
aws-eventstream (1.2.0)
aws-partitions (1.687.0)
aws-sdk-core (3.168.4)
aws-partitions (1.745.0)
aws-sdk-core (3.171.0)
aws-eventstream (~> 1, >= 1.0.2)
aws-partitions (~> 1, >= 1.651.0)
aws-sigv4 (~> 1.5)
jmespath (~> 1, >= 1.6.1)
aws-sdk-kms (1.61.0)
aws-sdk-kms (1.63.0)
aws-sdk-core (~> 3, >= 3.165.0)
aws-sigv4 (~> 1.1)
aws-sdk-s3 (1.117.2)
aws-sdk-s3 (1.120.1)
aws-sdk-core (~> 3, >= 3.165.0)
aws-sdk-kms (~> 1)
aws-sigv4 (~> 1.4)
Expand Down Expand Up @@ -86,8 +86,8 @@ GEM
escape (0.0.4)
ethon (0.15.0)
ffi (>= 1.15.0)
excon (0.96.0)
faraday (1.10.2)
excon (0.99.0)
faraday (1.10.3)
faraday-em_http (~> 1.0)
faraday-em_synchrony (~> 1.0)
faraday-excon (~> 1.1)
Expand Down Expand Up @@ -160,9 +160,9 @@ GEM
fourflusher (2.3.1)
fuzzy_match (2.0.4)
gh_inspector (1.1.3)
google-apis-androidpublisher_v3 (0.32.0)
google-apis-core (>= 0.9.1, < 2.a)
google-apis-core (0.9.3)
google-apis-androidpublisher_v3 (0.38.0)
google-apis-core (>= 0.11.0, < 2.a)
google-apis-core (0.11.0)
addressable (~> 2.5, >= 2.5.1)
googleauth (>= 0.16.2, < 2.a)
httpclient (>= 2.8.1, < 3.a)
Expand All @@ -171,18 +171,18 @@ GEM
retriable (>= 2.0, < 4.a)
rexml
webrick
google-apis-iamcredentials_v1 (0.16.0)
google-apis-core (>= 0.9.1, < 2.a)
google-apis-playcustomapp_v1 (0.12.0)
google-apis-core (>= 0.9.1, < 2.a)
google-apis-iamcredentials_v1 (0.17.0)
google-apis-core (>= 0.11.0, < 2.a)
google-apis-playcustomapp_v1 (0.13.0)
google-apis-core (>= 0.11.0, < 2.a)
google-apis-storage_v1 (0.19.0)
google-apis-core (>= 0.9.0, < 2.a)
google-cloud-core (1.6.0)
google-cloud-env (~> 1.0)
google-cloud-errors (~> 1.0)
google-cloud-env (1.6.0)
faraday (>= 0.17.3, < 3.0)
google-cloud-errors (1.3.0)
google-cloud-errors (1.3.1)
google-cloud-storage (1.44.0)
addressable (~> 2.8)
digest-crc (~> 0.4)
Expand All @@ -191,7 +191,7 @@ GEM
google-cloud-core (~> 1.6)
googleauth (>= 0.16.2, < 2.a)
mini_mime (~> 1.0)
googleauth (1.3.0)
googleauth (1.5.1)
faraday (>= 0.17.3, < 3.a)
jwt (>= 1.4, < 3.0)
memoist (~> 0.16)
Expand All @@ -205,8 +205,8 @@ GEM
i18n (1.10.0)
concurrent-ruby (~> 1.0)
jmespath (1.6.2)
json (2.6.1)
jwt (2.6.0)
json (2.6.3)
jwt (2.7.0)
memoist (0.16.2)
mini_magick (4.12.0)
mini_mime (1.1.2)
Expand All @@ -220,7 +220,7 @@ GEM
netrc (0.11.0)
optparse (0.1.1)
os (1.1.4)
plist (3.6.0)
plist (3.7.0)
public_suffix (4.0.7)
rake (13.0.6)
representable (3.2.0)
Expand All @@ -239,7 +239,7 @@ GEM
faraday (>= 0.17.5, < 3.a)
jwt (>= 1.5, < 3.0)
multi_json (~> 1.10)
simctl (1.6.8)
simctl (1.6.10)
CFPropertyList
naturally
terminal-notifier (2.0.0)
Expand All @@ -259,9 +259,9 @@ GEM
unf_ext
unf_ext (0.0.8.2)
unicode-display_width (1.8.0)
webrick (1.7.0)
webrick (1.8.1)
word_wrap (1.0.0)
xcodeproj (1.21.0)
xcodeproj (1.22.0)
CFPropertyList (>= 2.3.3, < 4.0)
atomos (~> 0.1.3)
claide (>= 1.0.2, < 2.0)
Expand All @@ -278,6 +278,7 @@ PLATFORMS
arm64-darwin-21
x86_64-darwin-19
x86_64-darwin-20
x86_64-darwin-21

DEPENDENCIES
cocoapods (= 1.11.3)
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -77,6 +77,9 @@ public struct InnovationCupThemeFactory {
theme.componentColors.functionalInfo = InnovationCupThemeColors.functionalInfo.colorDecription.color
theme.componentColors.functionalAlert = InnovationCupThemeColors.functionalAlert.colorDecription.color

// Bottom sheet
theme.componentColors.bottomSheetHeaderBackground = InnovationCupThemeColors.tabBarItem.colorDecription.color

// Fonts: use the default ones
// theme.font = { style in }

Expand Down
13 changes: 6 additions & 7 deletions NOTICE.txt
Original file line number Diff line number Diff line change
Expand Up @@ -69,11 +69,10 @@ OrangeDesignSystemDemo/OrangeDesignSystemDemo/Assets.xcassets/thumbs/Orange/Tab
OrangeDesignSystemDemo/OrangeDesignSystemDemo/Assets.xcassets/thumbs/Orange/Text edit menu.imageset/Text edit menu.png
OrangeDesignSystemDemo/OrangeDesignSystemDemo/Assets.xcassets/thumbs/Orange/Typography.imageset/Typography.svg

OrangeDesignSystemDemo/OrangeDesignSystemDemo/Assets.xcassets/Recipes/iconsCommunicationDIIcIceCream.imageset/iconsCommunicationDIIcIceCream.svg
OrangeDesignSystemDemo/OrangeDesignSystemDemo/Assets.xcassets/Recipes/iconsCommunicationDIcCafe.imageset/iconsCommunicationDIcCafe.svg
OrangeDesignSystemDemo/OrangeDesignSystemDemo/Assets.xcassets/Recipes/iconsCommunicationDIcCookingPot.imageset/iconsCommunicationDIcCookingPot.svg
OrangeDesignSystemDemo/OrangeDesignSystemDemo/Assets.xcassets/Recipes/iconsCommunicationRUIcRestaurant.imageset/iconsCommunicationRUIcRestaurant.svg
OrangeDesignSystemDemo/OrangeDesignSystemDemo/Assets.xcassets/Recipes/iconsCommunicationDIIcIceCream.imageset/iconsCommunicationDIIcIceCream.svg
OrangeDesignSystemDemo/OrangeDesignSystemDemo/Assets.xcassets/Recipes/iconsCommunicationDIcCafe.imageset/iconsCommunicationDIcCafe.svg
OrangeDesignSystemDemo/OrangeDesignSystemDemo/Assets.xcassets/Recipes/IceCream.imageset/iconsCommunicationDIIcIceCream.svg
OrangeDesignSystemDemo/OrangeDesignSystemDemo/Assets.xcassets/Recipes/Cafe.imageset/iconsCommunicationDIcCafe.svg
OrangeDesignSystemDemo/OrangeDesignSystemDemo/Assets.xcassets/Recipes/CookingPot.imageset/iconsCommunicationDIcCookingPot.svg
OrangeDesignSystemDemo/OrangeDesignSystemDemo/Assets.xcassets/Recipes/Restaurant.imageset/iconsCommunicationRUIcRestaurant.svg
OrangeDesignSystemDemo/OrangeDesignSystemDemo/Assets.xcassets/Recipes/IceCream.imageset/iconsCommunicationDIIcIceCream.svg
OrangeDesignSystemDemo/OrangeDesignSystemDemo/Assets.xcassets/Recipes/Cafe.imageset/iconsCommunicationDIcCafe.svg
End of the parts list under Orange SA Copyright

Original file line number Diff line number Diff line change
@@ -0,0 +1,138 @@
//
// MIT License
// Copyright (c) 2021 Orange
// Permission is hereby granted, free of charge, to any person obtaining a copy
// of this software and associated documentation files (the Software), to deal
// in the Software without restriction, including without limitation the rights
// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
// copies of the Software, and to permit persons to whom the Software is
// furnished to do so, subject to the following conditions:
//
// The above copyright notice and this permission notice shall be included in all
// copies or substantial portions of the Software.
//
// THE SOFTWARE IS PROVIDED 'AS IS', WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
// SOFTWARE.
//

import SwiftUI

struct BottomSheedHeader: View {

// =======================
// MARK: Stored Properties
// =======================

let title: String
let subtitle: String?
let icon: Image?
let applyRotation: Bool

// ==========
// MARK: Body
// ==========

var body: some View {
VStack(spacing: 0) {
VStack(spacing: ODSSpacing.none) {
RoundedRectangle(cornerRadius: 4)
.frame(width: 55, height: 4, alignment: .center)
.padding(.top, ODSSpacing.s)
.padding(.bottom, ODSSpacing.xs)

VStack(spacing: ODSSpacing.none) {
HStack(spacing: ODSSpacing.xs) {
icon?
.foregroundColor(.primary)
.accessibility(hidden: true)
.odsFont(.headline)
.animation(.linear, value: applyRotation)
.rotationEffect(.degrees(applyRotation ? 180 : 0))

VStack(alignment: .leading, spacing: ODSSpacing.none) {
Text(title)
.odsFont(.headline)
.frame(maxWidth: .infinity, alignment: .leading)

if let subtitle = self.subtitle {
Text(subtitle)
.odsFont(.subhead)
.frame(maxWidth: .infinity, alignment: .leading)
}
}
}
.padding(.leading, ODSSpacing.s)
.padding(.trailing, ODSSpacing.m)
.padding(.bottom, ODSSpacing.s)
}
}
.background(Color(.systemGray6))
.padding(.bottom, 10)
.cornerRadius(10)
.shadow(color: Color(UIColor.systemGray), radius: 4)
.padding(.bottom, -10)
.padding(.top, 10)
.mask(Rectangle().padding(.top, -40))

Divider()
}
}
}

#if DEBUG
struct HeaderPreviewProvider_Previews: PreviewProvider {

struct AnimatinoExample: View {
@State var applyRotation = false

var body: some View {
BottomSheedHeader(title: "Rotation: \(applyRotation ? "Yes" : "No")", subtitle: nil, icon: Image(systemName: "chevron.up"), applyRotation: applyRotation)
.onTapGesture {
applyRotation.toggle()
}

ODSButton(text: LocalizedStringKey(applyRotation ? "Remove Rotation" : "Apply Rotation"), emphasis: .highest) {
applyRotation.toggle()
}
}
}

static var previews: some View {
VStack(spacing: 50) {
VStack {
Text("Title and Subtile")
.odsFont(.title2)
.frame(maxWidth: .infinity, alignment: .leading)
BottomSheedHeader(title: "Title", subtitle: "Subtitle", icon: nil, applyRotation: false)
}

VStack {
Text("Title and icon (without rotation)")
.odsFont(.title2)
.frame(maxWidth: .infinity, alignment: .leading)
BottomSheedHeader(title: "Title", subtitle: nil, icon: Image(systemName: "chevron.down"), applyRotation: false)
}

VStack {
Text("Title and icon (with rotation)")
.odsFont(.title2)
.frame(maxWidth: .infinity, alignment: .leading)
BottomSheedHeader(title: "Title", subtitle: nil, icon: Image(systemName: "chevron.down"), applyRotation: true)
}

VStack {
Text("Title and icon (animated rotation)")
.odsFont(.title2)
.frame(maxWidth: .infinity, alignment: .leading)
AnimatinoExample()
}
}
.padding(.horizontal, 16)
}
}
#endif
Loading

0 comments on commit 14d91f7

Please sign in to comment.