Skip to content

Commit

Permalink
Ship review feedback - Color + Orientation (#3715)
Browse files Browse the repository at this point in the history
Task/Issue URL:
https://app.asana.com/0/1204167627774280/1208947094200047/f

**Description**:
Remove landscape mode for iPhone
Change the background color for the AI Chat webview
  • Loading branch information
Bunn authored Dec 11, 2024
1 parent b2220e1 commit 7273be8
Show file tree
Hide file tree
Showing 7 changed files with 95 additions and 16 deletions.
3 changes: 2 additions & 1 deletion DuckDuckGo/MainViewController.swift
Original file line number Diff line number Diff line change
Expand Up @@ -1719,7 +1719,8 @@ class MainViewController: UIViewController {
let roundedPageSheet = RoundedPageSheetContainerViewController(
contentViewController: aiChatViewController,
logoImage: logoImage,
title: title)
title: title,
allowedOrientation: .portrait)

present(roundedPageSheet, animated: true, completion: nil)
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -23,6 +23,7 @@ final class RoundedPageSheetContainerViewController: UIViewController {
let contentViewController: UIViewController
private let logoImage: UIImage?
private let titleText: String
private let allowedOrientation: UIInterfaceOrientationMask

private lazy var titleBarView: TitleBarView = {
let titleBarView = TitleBarView(logoImage: logoImage, title: titleText) { [weak self] in
Expand All @@ -31,20 +32,32 @@ final class RoundedPageSheetContainerViewController: UIViewController {
return titleBarView
}()

init(contentViewController: UIViewController, logoImage: UIImage?, title: String) {
init(contentViewController: UIViewController, logoImage: UIImage?, title: String, allowedOrientation: UIInterfaceOrientationMask = .all) {
self.contentViewController = contentViewController
self.logoImage = logoImage
self.titleText = title
self.allowedOrientation = allowedOrientation
super.init(nibName: nil, bundle: nil)
modalPresentationStyle = .custom

transitioningDelegate = self
}

required init?(coder: NSCoder) {
fatalError("init(coder:) has not been implemented")
}

override var shouldAutorotate: Bool {
return false
}

override var supportedInterfaceOrientations: UIInterfaceOrientationMask {
return allowedOrientation
}

override var preferredInterfaceOrientationForPresentation: UIInterfaceOrientation {
return UIInterfaceOrientation.portrait
}

override func viewDidLoad() {
super.viewDidLoad()
view.backgroundColor = .black
Expand All @@ -53,15 +66,6 @@ final class RoundedPageSheetContainerViewController: UIViewController {
setupContentViewController()
}

override func viewWillTransition(to size: CGSize, with coordinator: UIViewControllerTransitionCoordinator) {
super.viewWillTransition(to: size, with: coordinator)

coordinator.animate(alongsideTransition: { _ in
// Update layout or constraints here
}, completion: nil)
}


private func setupTitleBar() {
view.addSubview(titleBarView)
titleBarView.translatesAutoresizingMaskIntoConstraints = false
Expand Down
10 changes: 7 additions & 3 deletions LocalPackages/AIChat/Package.swift
Original file line number Diff line number Diff line change
@@ -1,6 +1,5 @@
// swift-tools-version: 6.0
// The swift-tools-version declares the minimum version of Swift required to build this package.

import PackageDescription

let package = Package(
Expand All @@ -11,10 +10,15 @@ let package = Package(
products: [
.library(
name: "AIChat",
targets: ["AIChat"]),
targets: ["AIChat"]
),
],
targets: [
.target(
name: "AIChat"),
name: "AIChat",
resources: [
.process("Resources/Assets.xcassets")
]
),
]
)
Original file line number Diff line number Diff line change
Expand Up @@ -30,7 +30,7 @@ final class AIChatWebViewController: UIViewController {
private lazy var webView: WKWebView = {
let webView = WKWebView(frame: .zero, configuration: chatModel.webViewConfiguration)
webView.isOpaque = false /// Required to make the background color visible
webView.backgroundColor = .systemBackground
webView.backgroundColor = .webViewBackgroundColor
webView.navigationDelegate = self
webView.translatesAutoresizingMaskIntoConstraints = false
return webView
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,6 @@
{
"info" : {
"author" : "xcode",
"version" : 1
}
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,38 @@
{
"colors" : [
{
"color" : {
"color-space" : "srgb",
"components" : {
"alpha" : "1.000",
"blue" : "1.000",
"green" : "1.000",
"red" : "1.000"
}
},
"idiom" : "universal"
},
{
"appearances" : [
{
"appearance" : "luminosity",
"value" : "dark"
}
],
"color" : {
"color-space" : "srgb",
"components" : {
"alpha" : "1.000",
"blue" : "0.086",
"green" : "0.086",
"red" : "0.086"
}
},
"idiom" : "universal"
}
],
"info" : {
"author" : "xcode",
"version" : 1
}
}
26 changes: 26 additions & 0 deletions LocalPackages/AIChat/Sources/AIChat/UIColor+Extension.swift
Original file line number Diff line number Diff line change
@@ -0,0 +1,26 @@
//
// UIColor+Extension.swift
// DuckDuckGo
//
// Copyright © 2024 DuckDuckGo. All rights reserved.
//
// Licensed under the Apache License, Version 2.0 (the "License");
// you may not use this file except in compliance with the License.
// You may obtain a copy of the License at
//
// http://www.apache.org/licenses/LICENSE-2.0
//
// Unless required by applicable law or agreed to in writing, software
// distributed under the License is distributed on an "AS IS" BASIS,
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
// See the License for the specific language governing permissions and
// limitations under the License.
//

import UIKit

extension UIColor {
static var webViewBackgroundColor: UIColor {
return UIColor(named: "webViewBackgroundColor", in: Bundle.module, compatibleWith: nil) ?? UIColor.clear
}
}

0 comments on commit 7273be8

Please sign in to comment.