Commit 6001030e authored by Quentin Muret's avatar Quentin Muret Committed by Kateryna Kostiuk

transition to Jami

- change the Ring app icon to Jami app icon
- change app colors
- rename all colors with jami
- change all Ring occurrences to Jami for English and French localizables
  strings
- change the size and police of all pages titles
- make the QR code icons change dynamically according to
  the colors of the app

Change-Id: If415fdf30232b3fe5d5e272546a24ab32fc54464
Reviewed-by: Kateryna Kostiuk<kateryna.kostiuk@savoirfairelinux.com>
parent e208253a
......@@ -2,6 +2,7 @@
* Copyright (C) 2017 Savoir-faire Linux Inc.
*
* Author: Romain Bertozzi <romain.bertozzi@savoirfairelinux.com>
* Author: Quentin Muret <quentin.muret@gmail.com>
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
......
/*
* Copyright (C) 2017 Savoir-faire Linux Inc.
* Copyright (C) 2017-2018 Savoir-faire Linux Inc.
*
* Author: Edric Ladent-Milaret <edric.ladent-milaret@savoirfairelinux.com>
* Author: Romain Bertozzi <romain.bertozzi@savoirfairelinux.com>
* Author: Thibault Wittemberg <thibault.wittemberg@savoirfairelinux.com>
* Author: Quentin Muret <quentin.muret@gmail.com>
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
......@@ -114,7 +115,7 @@ class AppDelegate: UIResponder, UIApplicationDelegate, UNUserNotificationCenterD
.disposed(by: self.disposeBag)
// themetize the app
Chameleon.setRingThemeUsingPrimaryColor(UIColor.ringMain, withSecondaryColor: UIColor.ringSecondary, andContentStyle: .light)
Chameleon.setRingThemeUsingPrimaryColor(UIColor.jamiMain, withSecondaryColor: UIColor.jamiSecondary, andContentStyle: .light)
UIApplication.shared.statusBarStyle = .default
......
/*
* Copyright (C) 2016 Savoir-faire Linux Inc.
* Copyright (C) 2016-2018 Savoir-faire Linux Inc.
*
* Author: Edric Ladent-Milaret <edric.ladent-milaret@savoirfairelinux.com>
* Author: Romain Bertozzi <romain.bertozzi@savoirfairelinux.com>
* Author: Quentin Muret <quentin.muret@gmail.com>
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
......
/*
* Copyright (C) 2017 Savoir-faire Linux Inc.
* Copyright (C) 2017-2018 Savoir-faire Linux Inc.
*
* Author: Kateryna Kostiuk <kateryna.kostiuk@savoirfairelinux.com>
* Author: Quentin Muret <quentin.muret@gmail.com>
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
......
/*
* Copyright (C) 2017 Savoir-faire Linux Inc.
* Copyright (C) 2017-2018 Savoir-faire Linux Inc.
*
* Author: Kateryna Kostiuk <kateryna.kostiuk@savoirfairelinux.com>
* Author: Quentin Muret <quentin.muret@gmail.com>
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
......
......@@ -32,8 +32,8 @@
<view opaque="NO" clipsSubviews="YES" multipleTouchEnabled="YES" contentMode="center" translatesAutoresizingMaskIntoConstraints="NO" id="Zmp-OX-Cez" userLabel="Spinner View">
<rect key="frame" x="0.0" y="0.0" width="375" height="812"/>
<subviews>
<activityIndicatorView opaque="NO" contentMode="scaleToFill" horizontalHuggingPriority="750" verticalHuggingPriority="750" misplaced="YES" hidesWhenStopped="YES" animating="YES" style="whiteLarge" translatesAutoresizingMaskIntoConstraints="NO" id="nwA-ao-thv" userLabel="Spinner">
<rect key="frame" x="159" y="304" width="37" height="37"/>
<activityIndicatorView opaque="NO" contentMode="scaleToFill" horizontalHuggingPriority="750" verticalHuggingPriority="750" hidesWhenStopped="YES" animating="YES" style="whiteLarge" translatesAutoresizingMaskIntoConstraints="NO" id="nwA-ao-thv" userLabel="Spinner">
<rect key="frame" x="157.66666666666666" y="376" width="60" height="60"/>
<constraints>
<constraint firstAttribute="height" constant="60" id="L0P-eF-lwK"/>
<constraint firstAttribute="width" constant="60" id="WUu-r6-CgN"/>
......@@ -140,8 +140,8 @@
<color key="backgroundColor" red="0.99999600649999998" green="1" blue="1" alpha="0.17999999999999999" colorSpace="custom" customColorSpace="sRGB"/>
<blurEffect style="light"/>
</visualEffectView>
<imageView userInteractionEnabled="NO" alpha="0.0" contentMode="scaleToFill" horizontalHuggingPriority="251" verticalHuggingPriority="251" misplaced="YES" image="left_arrow" translatesAutoresizingMaskIntoConstraints="NO" id="gWE-IS-b5p">
<rect key="frame" x="67" y="364" width="240" height="128"/>
<imageView userInteractionEnabled="NO" alpha="0.0" contentMode="scaleToFill" horizontalHuggingPriority="251" verticalHuggingPriority="251" image="left_arrow" translatesAutoresizingMaskIntoConstraints="NO" id="gWE-IS-b5p">
<rect key="frame" x="-17" y="393.66666666666669" width="60" height="70"/>
<color key="tintColor" red="0.0" green="0.0" blue="0.0" alpha="0.5" colorSpace="custom" customColorSpace="sRGB"/>
<constraints>
<constraint firstAttribute="width" constant="60" id="ATJ-SU-7iG"/>
......@@ -200,14 +200,26 @@
<blurEffect style="light"/>
</visualEffectView>
<view contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="Dj8-CK-PQm" userLabel="Call Pulse">
<rect key="frame" x="112.66666666666669" y="120" width="150" height="150"/>
<rect key="frame" x="122.66666666666669" y="135" width="130" height="130"/>
<color key="backgroundColor" white="1" alpha="1" colorSpace="custom" customColorSpace="genericGamma22GrayColorSpace"/>
</view>
<view contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="qNx-tt-eZo" userLabel="Background Image View">
<rect key="frame" x="137.66666666666666" y="150" width="100" height="100"/>
<color key="backgroundColor" white="1" alpha="1" colorSpace="custom" customColorSpace="genericGamma22GrayColorSpace"/>
<constraints>
<constraint firstAttribute="width" secondItem="qNx-tt-eZo" secondAttribute="height" id="uMJ-Cg-b1r"/>
</constraints>
<userDefinedRuntimeAttributes>
<userDefinedRuntimeAttribute type="number" keyPath="cornerRadius">
<real key="value" value="30"/>
</userDefinedRuntimeAttribute>
</userDefinedRuntimeAttributes>
</view>
<imageView userInteractionEnabled="NO" contentMode="scaleToFill" horizontalHuggingPriority="251" verticalHuggingPriority="251" image="ic_contact_picture" translatesAutoresizingMaskIntoConstraints="NO" id="fnt-PQ-Q6P">
<rect key="frame" x="112.66666666666669" y="120" width="150" height="150"/>
<rect key="frame" x="107.66666666666669" y="120" width="160" height="160"/>
<constraints>
<constraint firstAttribute="width" constant="150" id="Miw-Nd-4Fa"/>
<constraint firstAttribute="height" constant="150" id="V9c-7W-Frv"/>
<constraint firstAttribute="width" constant="160" id="Miw-Nd-4Fa"/>
<constraint firstAttribute="height" constant="160" id="V9c-7W-Frv"/>
</constraints>
<userDefinedRuntimeAttributes>
<userDefinedRuntimeAttribute type="number" keyPath="cornerRadius">
......@@ -215,20 +227,20 @@
</userDefinedRuntimeAttribute>
</userDefinedRuntimeAttributes>
</imageView>
<label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" misplaced="YES" text="" textAlignment="natural" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="73Y-N1-Yga">
<rect key="frame" x="187" y="333" width="0.0" height="0.0"/>
<label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="" textAlignment="natural" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="73Y-N1-Yga">
<rect key="frame" x="187.66666666666666" y="325" width="0.0" height="0.0"/>
<fontDescription key="fontDescription" type="system" pointSize="26"/>
<color key="textColor" red="0.0" green="0.0" blue="0.0" alpha="0.5" colorSpace="custom" customColorSpace="sRGB"/>
<nil key="highlightedColor"/>
</label>
<label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" misplaced="YES" text="" textAlignment="natural" lineBreakMode="tailTruncation" numberOfLines="0" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="zMN-6z-uXT">
<rect key="frame" x="187" y="333" width="0.0" height="0.0"/>
<label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="" textAlignment="natural" lineBreakMode="tailTruncation" numberOfLines="0" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="zMN-6z-uXT">
<rect key="frame" x="187.66666666666666" y="360" width="0.0" height="0.0"/>
<fontDescription key="fontDescription" type="system" pointSize="20"/>
<color key="textColor" red="0.0" green="0.0" blue="0.0" alpha="0.5" colorSpace="custom" customColorSpace="sRGB"/>
<nil key="highlightedColor"/>
</label>
<label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" misplaced="YES" text="" textAlignment="natural" lineBreakMode="tailTruncation" numberOfLines="0" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="SdV-jx-Mla">
<rect key="frame" x="187" y="333" width="0.0" height="0.0"/>
<label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="" textAlignment="natural" lineBreakMode="tailTruncation" numberOfLines="0" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="SdV-jx-Mla">
<rect key="frame" x="187.66666666666666" y="658" width="0.0" height="0.0"/>
<fontDescription key="fontDescription" type="system" pointSize="20"/>
<color key="textColor" red="0.0" green="0.0" blue="0.0" alpha="0.5" colorSpace="custom" customColorSpace="sRGB"/>
<nil key="highlightedColor"/>
......@@ -237,18 +249,21 @@
<color key="backgroundColor" white="1" alpha="0.0" colorSpace="custom" customColorSpace="genericGamma22GrayColorSpace"/>
<constraints>
<constraint firstItem="uC8-vY-dHO" firstAttribute="centerY" secondItem="5E0-lB-SkS" secondAttribute="centerY" id="4Mf-hA-tZO"/>
<constraint firstItem="Dj8-CK-PQm" firstAttribute="centerY" secondItem="qNx-tt-eZo" secondAttribute="centerY" id="6Aj-So-yZp"/>
<constraint firstItem="fnt-PQ-Q6P" firstAttribute="top" secondItem="5E0-lB-SkS" secondAttribute="top" constant="120" id="82d-fj-m0F"/>
<constraint firstItem="Dj8-CK-PQm" firstAttribute="width" secondItem="fnt-PQ-Q6P" secondAttribute="width" id="CUd-sE-c9g"/>
<constraint firstItem="Dj8-CK-PQm" firstAttribute="width" secondItem="fnt-PQ-Q6P" secondAttribute="width" constant="-30" id="CUd-sE-c9g"/>
<constraint firstAttribute="trailing" relation="greaterThanOrEqual" secondItem="73Y-N1-Yga" secondAttribute="trailing" constant="20" id="E64-Eo-ffn"/>
<constraint firstItem="73Y-N1-Yga" firstAttribute="bottom" secondItem="fnt-PQ-Q6P" secondAttribute="bottom" constant="45" id="ExS-S7-RrD"/>
<constraint firstItem="73Y-N1-Yga" firstAttribute="centerX" secondItem="fnt-PQ-Q6P" secondAttribute="centerX" id="HBR-dG-PgV"/>
<constraint firstItem="Dj8-CK-PQm" firstAttribute="height" secondItem="fnt-PQ-Q6P" secondAttribute="height" id="JQ8-d6-nUa"/>
<constraint firstItem="Dj8-CK-PQm" firstAttribute="height" secondItem="fnt-PQ-Q6P" secondAttribute="height" constant="-30" id="JQ8-d6-nUa"/>
<constraint firstItem="qNx-tt-eZo" firstAttribute="centerX" secondItem="fnt-PQ-Q6P" secondAttribute="centerX" id="MJR-K4-qEg"/>
<constraint firstItem="fnt-PQ-Q6P" firstAttribute="centerX" secondItem="5E0-lB-SkS" secondAttribute="centerX" id="Me2-uR-EQh"/>
<constraint firstItem="uC8-vY-dHO" firstAttribute="centerX" secondItem="5E0-lB-SkS" secondAttribute="centerX" id="TJC-Hb-JIm"/>
<constraint firstItem="Dj8-CK-PQm" firstAttribute="top" secondItem="fnt-PQ-Q6P" secondAttribute="top" id="W5C-IT-OVb"/>
<constraint firstItem="Dj8-CK-PQm" firstAttribute="centerY" secondItem="fnt-PQ-Q6P" secondAttribute="centerY" id="W5C-IT-OVb"/>
<constraint firstItem="zMN-6z-uXT" firstAttribute="bottom" secondItem="fnt-PQ-Q6P" secondAttribute="bottom" constant="80" id="ecZ-zH-cYs"/>
<constraint firstItem="uC8-vY-dHO" firstAttribute="height" secondItem="5E0-lB-SkS" secondAttribute="height" id="hfH-qy-12N"/>
<constraint firstItem="Dj8-CK-PQm" firstAttribute="centerX" secondItem="5E0-lB-SkS" secondAttribute="centerX" id="izi-2p-nAy"/>
<constraint firstItem="Dj8-CK-PQm" firstAttribute="width" secondItem="qNx-tt-eZo" secondAttribute="width" multiplier="1.3" id="kjC-Tu-oKb"/>
<constraint firstItem="uC8-vY-dHO" firstAttribute="width" secondItem="5E0-lB-SkS" secondAttribute="width" id="pAd-aZ-0Mj"/>
<constraint firstItem="zMN-6z-uXT" firstAttribute="centerX" secondItem="fnt-PQ-Q6P" secondAttribute="centerX" id="w8O-3h-Axl"/>
<constraint firstItem="73Y-N1-Yga" firstAttribute="leading" relation="greaterThanOrEqual" secondItem="5E0-lB-SkS" secondAttribute="leading" constant="20" id="yRj-S6-9PE"/>
......
/*
* Copyright (C) 2017 Savoir-faire Linux Inc.
* Copyright (C) 2017-2018 Savoir-faire Linux Inc.
*
* Author: Silbino Gonçalves Matado <silbino.gmatado@savoirfairelinux.com>
* Author: Kateryna Kostiuk <kateryna.kostiuk@savoirfairelinux.com>
* Author: Quentin Muret <quentin.muret@gmail.com>
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
......@@ -99,6 +100,7 @@ class CallViewController: UIViewController, StoryboardBased, ViewModelBased {
self.setUpCallButtons()
self.setupBindings()
let device = UIDevice.modelName
self.profileImageView.tintColor = UIColor.jamiDefaultAvatar
switch device {
case "iPhone X", "iPhone XS", "iPhone XS Max", "iPhone XR" :
//keep the 4:3 format of the captured video on iPhone X and later when display it in full screen
......@@ -148,7 +150,7 @@ class CallViewController: UIViewController, StoryboardBased, ViewModelBased {
func setWhiteAvatarView() {
UIApplication.shared.statusBarStyle = .default
self.callPulse.backgroundColor = UIColor.ringCallPulse
self.callPulse.backgroundColor = UIColor.jamiCallPulse
self.avatarView.backgroundColor = UIColor.white
}
......
/*
* Copyright (C) 2017 Savoir-faire Linux Inc.
* Copyright (C) 2017-2018 Savoir-faire Linux Inc.
*
* Author: Silbino Gonçalves Matado <silbino.gmatado@savoirfairelinux.com>
* Author: Kateryna Kostiuk <kateryna.kostiuk@savoirfairelinux.com>
* Author: Quentin Muret <quentin.muret@gmail.com>
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
......
......@@ -48,7 +48,6 @@ internal enum Asset {
internal static let pauseCall = ImageAsset(name: "pause_call")
internal static let qrCode = ImageAsset(name: "qr_code")
internal static let qrCodeScan = ImageAsset(name: "qr_code_scan")
internal static let ringIcon = ImageAsset(name: "ringIcon")
internal static let ringLogo = ImageAsset(name: "ring_logo")
internal static let scan = ImageAsset(name: "scan")
internal static let sendButton = ImageAsset(name: "send_button")
......
......@@ -57,7 +57,7 @@ internal enum L10n {
internal enum Alerts {
/// Account Added
internal static let accountAddedTitle = L10n.tr("Localizable", "alerts.accountAddedTitle")
/// Account couldn't be found on the Ring network. Make sure it was exported on Ring from an existing device, and that provided credentials are correct.
/// Account couldn't be found on the Jami network. Make sure it was exported on Jami from an existing device, and that provided credentials are correct.
internal static let accountCannotBeFoundMessage = L10n.tr("Localizable", "alerts.accountCannotBeFoundMessage")
/// Can't find account
internal static let accountCannotBeFoundTitle = L10n.tr("Localizable", "alerts.accountCannotBeFoundTitle")
......@@ -67,7 +67,7 @@ internal enum L10n {
internal static let accountDefaultErrorTitle = L10n.tr("Localizable", "alerts.accountDefaultErrorTitle")
/// Linking account
internal static let accountLinkedTitle = L10n.tr("Localizable", "alerts.accountLinkedTitle")
/// Could not add account because Ring couldn't connect to the distributed network. Check your device connectivity.
/// Could not add account because Jami couldn't connect to the distributed network. Check your device connectivity.
internal static let accountNoNetworkMessage = L10n.tr("Localizable", "alerts.accountNoNetworkMessage")
/// Can't connect to the network
internal static let accountNoNetworkTitle = L10n.tr("Localizable", "alerts.accountNoNetworkTitle")
......@@ -83,7 +83,7 @@ internal enum L10n {
internal static let confirmDeleteConversationTitle = L10n.tr("Localizable", "alerts.confirmDeleteConversationTitle")
/// Please close application and try to open it again
internal static let dbFailedMessage = L10n.tr("Localizable", "alerts.dbFailedMessage")
/// An error happned when launching Ring
/// An error happned when launching Jami
internal static let dbFailedTitle = L10n.tr("Localizable", "alerts.dbFailedTitle")
/// Incoming call from
internal static let incomingCallAllertTitle = L10n.tr("Localizable", "alerts.incomingCallAllertTitle")
......@@ -130,7 +130,7 @@ internal enum L10n {
internal enum CreateAccount {
/// Encrypt my account
internal static let chooseAPassword = L10n.tr("Localizable", "createAccount.ChooseAPassword")
/// Choose strong password you will remember to protect your Ring account.
/// Choose strong password you will remember to protect your Jami account.
internal static let chooseStrongPassword = L10n.tr("Localizable", "createAccount.chooseStrongPassword")
/// Create your account
internal static let createAccountFormTitle = L10n.tr("Localizable", "createAccount.createAccountFormTitle")
......@@ -216,7 +216,7 @@ internal enum L10n {
internal enum LinkDevice {
/// An error occured during the export
internal static let defaultError = L10n.tr("Localizable", "linkDevice.defaultError")
/// To complete the process, you need to open Ring on the new device and choose the option "Link this device to an account." Your pin is valid for 10 minutes
/// To complete the process, you need to open Jami on the new device and choose the option "Link this device to an account." Your pin is valid for 10 minutes
internal static let explanationMessage = L10n.tr("Localizable", "linkDevice.explanationMessage")
/// Verifying
internal static let hudMessage = L10n.tr("Localizable", "linkDevice.hudMessage")
......@@ -274,7 +274,7 @@ internal enum L10n {
internal static let createAccount = L10n.tr("Localizable", "welcome.createAccount")
/// Link this device to an account
internal static let linkDevice = L10n.tr("Localizable", "welcome.linkDevice")
/// Ring is a free and universal communication platform which preserves the users' privacy and freedoms
/// Jami is a free and universal communication platform which preserves the users' privacy and freedoms
internal static let text = L10n.tr("Localizable", "welcome.text")
/// Welcome to Jami !
internal static let title = L10n.tr("Localizable", "welcome.title")
......
......@@ -2,6 +2,7 @@
* Copyright (C) 2018 Savoir-faire Linux Inc.
*
* Author: Kateryna Kostiuk <kateryna.kostiuk@savoirfairelinux.com>
* Author: Quentin Muret <quentin.muret@gmail.com>
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
......@@ -113,7 +114,7 @@ class ContactViewController: UIViewController, StoryboardBased, ViewModelBased {
let image = UIImage(asset: conversationItem.image)
let tintedImage = image?.withRenderingMode(.alwaysTemplate)
cell?.imageView?.image = tintedImage
cell?.imageView?.tintColor = UIColor.ringSecondary
cell?.imageView?.tintColor = UIColor.jamiSecondary
cell?.textLabel?.text = conversationItem.title
return cell!
}
......
......@@ -2,6 +2,7 @@
* Copyright (C) 2018 Savoir-faire Linux Inc.
*
* Author: Kateryna Kostiuk <kateryna.kostiuk@savoirfairelinux.com>
* Author: Quentin Muret <quentin.muret@gmail.com>
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
......@@ -56,7 +57,7 @@ final class TitleView: UIView {
addSubview(containerView)
containerView.addSubview(avatarView)
containerView.addSubview(label)
label.textColor = UIColor.ringSecondary
label.textColor = UIColor.jamiSecondary
label.font = UIFont.systemFont(ofSize: 17.0, weight: .regular)
clipsToBounds = true
isUserInteractionEnabled = false
......
/*
* Copyright (C) 2017 Savoir-faire Linux Inc.
* Copyright (C) 2017-2018 Savoir-faire Linux Inc.
*
* Author: Thibault Wittemberg <thibault.wittemberg@savoirfairelinux.com>
* Author: Romain Bertozzi <romain.bertozzi@savoirfairelinux.com>
* Author: Quentin Muret <quentin.muret@gmail.com>
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
......@@ -155,7 +156,7 @@ final class AppCoordinator: Coordinator, StateableResponsive {
let conversationsCoordinator = ConversationsCoordinator(with: self.injectionBag)
let contactRequestsCoordinator = ContactRequestsCoordinator(with: self.injectionBag)
let meCoordinator = MeCoordinator(with: self.injectionBag)
self.tabBarViewController.tabBar.tintColor = UIColor.ringMain
self.tabBarViewController.tabBar.tintColor = UIColor.jamiMain
self.tabBarViewController.viewControllers = [conversationsCoordinator.rootViewController,
contactRequestsCoordinator.rootViewController,
......
/*
* Copyright (C) 2017 Savoir-faire Linux Inc.
* Copyright (C) 2017-2018 Savoir-faire Linux Inc.
*
* Author: Kateryna Kostiuk <kateryna.kostiuk@savoirfairelinux.com>
* Author: Quentin Muret <quentin.muret@gmail.com>
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
......
/*
* Copyright (C) 2017 Savoir-faire Linux Inc.
* Copyright (C) 2017-2018 Savoir-faire Linux Inc.
*
* Author: Thibault Wittemberg <thibault.wittemberg@savoirfairelinux.com>
* Author: Quentin Muret <quentin.muret@gmail.com>
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
......@@ -42,12 +43,12 @@ extension Chameleon {
MessageBubble.appearance().backgroundColor = secondaryColor
MessageBubble.appearance(whenContainedInInstancesOf: [MessageCellSent.self]).tintColor = contentColor
MessageBubble.appearance(whenContainedInInstancesOf: [MessageCellSent.self]).backgroundColor = UIColor.ringMsgCellSent
UILabel.appearance(whenContainedInInstancesOf: [MessageBubble.self, MessageCellSent.self]).textColor = UIColor.ringMsgCellSentText
MessageBubble.appearance(whenContainedInInstancesOf: [MessageCellSent.self]).backgroundColor = UIColor.jamiMsgCellSent
UILabel.appearance(whenContainedInInstancesOf: [MessageBubble.self, MessageCellSent.self]).textColor = UIColor.jamiMsgCellSentText
MessageBubble.appearance(whenContainedInInstancesOf: [MessageCellReceived.self]).tintColor = secondaryContentColor
MessageBubble.appearance(whenContainedInInstancesOf: [MessageCellReceived.self]).backgroundColor = UIColor.ringMsgCellReceived
UILabel.appearance(whenContainedInInstancesOf: [MessageBubble.self, MessageCellReceived.self]).textColor = UIColor.ringMsgCellReceivedText
MessageBubble.appearance(whenContainedInInstancesOf: [MessageCellReceived.self]).backgroundColor = UIColor.jamiMsgCellReceived
UILabel.appearance(whenContainedInInstancesOf: [MessageBubble.self, MessageCellReceived.self]).textColor = UIColor.jamiMsgCellReceivedText
MessageBubble.appearance(whenContainedInInstancesOf: [MessageCellGenerated.self]).tintColor = UIColor.clear
MessageBubble.appearance(whenContainedInInstancesOf: [MessageCellGenerated.self]).backgroundColor = UIColor.clear
......
/*
* Copyright (C) 2017 Savoir-faire Linux Inc.
* Copyright (C) 2018 Savoir-faire Linux Inc.
*
* Author: Quentin Muret <quentin.muret@savoirfairelinux.com>
* Author: Quentin Muret <quentin.muret@gmail.com>
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
......
/*
* Copyright (C) 2016 Savoir-faire Linux Inc.
* Copyright (C) 2016-2018 Savoir-faire Linux Inc.
*
* Author: Edric Ladent-Milaret <edric.ladent-milaret@savoirfairelinux.com>
* Author: Andreas Traczyk <andreas.traczyk@savoirfairelinux.com>
* Author: Quentin Muret <quentin.muret@gmail.com>
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
......
/*
* Copyright (C) 2017 Savoir-faire Linux Inc.
* Copyright (C) 2017-2018 Savoir-faire Linux Inc.
*
* Author: Thibault Wittemberg <thibault.wittemberg@savoirfairelinux.com>
* Author: Quentin Muret <quentin.muret@gmail.com>
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
......@@ -34,25 +35,24 @@ extension UIColor {
self.init(red: (hex >> 16) & 0xff, green: (hex >> 8) & 0xff, blue: hex & 0xff, alpha: alpha)
}
static let ringMain = UIColor(hex: 0x3F6DA7, alpha: 1.0) // jami style
static let ringSecondary = UIColor(hex: 0x1F4971, alpha: 1.0) // jami style
static let ringMainLight = UIColor(red: 0, green: 76, blue: 96, alpha: 1.0)
static let ringMsgCellEmoji = UIColor(red: 0, green: 0, blue: 0, alpha: 0)
static let ringMsgCellSent = UIColor(red: 58, green: 192, blue: 210, alpha: 1.0)
static let ringMsgCellSentText = UIColor(red: 255, green: 255, blue: 255, alpha: 1.0)
static let ringMsgCellReceived = UIColor(red: 231, green: 235, blue: 235, alpha: 1.0)
static let ringMsgCellReceivedText = UIColor(red: 48, green: 48, blue: 48, alpha: 1.0)
static let ringMsgCellTimeText = UIColor(red: 128, green: 128, blue: 128, alpha: 1.0)
static let ringMsgBackground = UIColor(red: 252, green: 252, blue: 252, alpha: 1.0)
static let ringMsgTextFieldBackground = UIColor(red: 252, green: 252, blue: 252, alpha: 0)
static let ringMsgTextFieldBorder = UIColor(red: 220, green: 220, blue: 220, alpha: 1.0)
static let ringUITableViewCellSelection = UIColor(red: 209, green: 210, blue: 210, alpha: 1.0)
static let ringNavigationBar = UIColor(red: 235, green: 235, blue: 235, alpha: 1.0)
static let ringCallPulse = UIColor(red: 99, green: 191, blue: 208, alpha: 1.0)
static let ringSuccess = UIColor(hex: 0x00b20b, alpha: 1.0)
static let ringFailure = UIColor(hex: 0xf00000, alpha: 1.0)
static let ringWarning = UIColor.orange
static let jamiMain = UIColor(hex: 0x3F6DA7, alpha: 1.0)
static let jamiSecondary = UIColor(hex: 0x1F4971, alpha: 1.0)
static let jamiButtonLight = UIColor(hex: 0x285F97, alpha: 1.0)
static let jamiButtonDark = UIColor(hex: 0x0F2643, alpha: 1.0)
static let jamiMsgCellEmoji = UIColor(red: 0, green: 0, blue: 0, alpha: 0)
static let jamiMsgCellSent = UIColor(hex: 0x367BC1, alpha: 1.0)
static let jamiMsgCellSentText = UIColor(red: 255, green: 255, blue: 255, alpha: 1.0)
static let jamiMsgCellReceived = UIColor(red: 231, green: 235, blue: 235, alpha: 1.0)
static let jamiMsgCellReceivedText = UIColor(red: 48, green: 48, blue: 48, alpha: 1.0)
static let jamiMsgCellTimeText = UIColor(red: 128, green: 128, blue: 128, alpha: 1.0)
static let jamiMsgBackground = UIColor(red: 252, green: 252, blue: 252, alpha: 1.0)
static let jamiMsgTextFieldBackground = UIColor(red: 252, green: 252, blue: 252, alpha: 0)
static let jamiMsgTextFieldBorder = UIColor(red: 220, green: 220, blue: 220, alpha: 1.0)
static let jamiUITableViewCellSelection = UIColor(red: 209, green: 210, blue: 210, alpha: 1.0)
static let jamiNavigationBar = UIColor(red: 235, green: 235, blue: 235, alpha: 1.0)
static let jamiCallPulse = UIColor(hex: 0x039FDF, alpha: 1.0)
static let jamiDefaultAvatar = UIColor(hex: 0x039FDF, alpha: 1.0)
static let jamiSuccess = UIColor(hex: 0x00b20b, alpha: 1.0)
static let jamiFailure = UIColor(hex: 0xf00000, alpha: 1.0)
static let jamiWarning = UIColor.orange
}
/*
* Copyright (C) 2017 Savoir-faire Linux Inc.
* Copyright (C) 2017-2018 Savoir-faire Linux Inc.
*
* Author: Hadrien De Sousa <hadrien.desousa@savoirfairelinux.com>
* Author: Kateryna Kostiuk <kateryna.kostiuk@savoirfairelinux.com>
* Author: Quentin Muret <quentin.muret@gmail.com>
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
......@@ -60,7 +61,7 @@ extension UIImage {
context?.saveGState()
path.addClip()
self.draw(in: bounds)
UIColor.ringMsgBackground.setStroke()
UIColor.jamiMsgBackground.setStroke()
path.lineWidth = offset * 2
path.stroke()
let roundedImage = UIGraphicsGetImageFromCurrentImageContext()
......
/*
* Copyright (C) 2016 Savoir-faire Linux Inc.
* Copyright (C) 2016-2018 Savoir-faire Linux Inc.
*
* Author: Thibault Wittemberg <thibault.wittemberg@savoirfairelinux.com>
* Author: Quentin Muret <quentin.muret@gmail.com>
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
......
/*
* Copyright (C) 2017 Savoir-faire Linux Inc.
* Copyright (C) 2017-2018 Savoir-faire Linux Inc.
*
* Author: Thibault Wittemberg <thibault.wittemberg@savoirfairelinux.com>
* Author: Quentin Muret <quentin.muret@gmail.com>
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
......@@ -126,7 +127,7 @@ extension UIViewController {
}
func configureRingNavigationBar() {
self.navigationController?.navigationBar.barTintColor = UIColor.ringNavigationBar
self.navigationController?.navigationBar.barTintColor = UIColor.jamiNavigationBar
self.navigationController?.navigationBar.layer.shadowColor = UIColor.black.cgColor
self.navigationController?.navigationBar.layer.shadowOffset = CGSize(width: 0.0, height: 2.5)
self.navigationController?.navigationBar.layer.shadowOpacity = 0.2
......@@ -134,8 +135,8 @@ extension UIViewController {
self.navigationController?.navigationBar.layer.masksToBounds = false
self.navigationController?.navigationBar.setBackgroundImage(UIImage(), for: UIBarMetrics.default)
self.navigationController?.navigationBar.shadowImage = UIImage()
let textAttributes = [NSAttributedStringKey.foregroundColor: UIColor.ringMain]
let textAttributes = [NSAttributedStringKey.foregroundColor: UIColor.jamiMain]
self.navigationController?.navigationBar.titleTextAttributes = textAttributes
self.navigationController?.navigationBar.tintColor = UIColor.ringMain
self.navigationController?.navigationBar.tintColor = UIColor.jamiMain
}
}
/*
* Copyright (C) 2017 Savoir-faire Linux Inc.
* Copyright (C) 2017-2018 Savoir-faire Linux Inc.
*
* Author: Silbino Gonçalves Matado <silbino.gmatado@savoirfairelinux.com>
* Author: Andreas Traczyk <andreas.traczyk@savoirfairelinux.com>
* Author: Quentin Muret <quentin.muret@gmail.com>
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
......@@ -32,15 +33,15 @@ class ContactRequestCell: UITableViewCell, NibReusable {
@IBOutlet weak var banButton: UIButton!
override func setSelected(_ selected: Bool, animated: Bool) {
self.backgroundColor = UIColor.ringUITableViewCellSelection
self.backgroundColor = UIColor.jamiUITableViewCellSelection
UIView.animate(withDuration: 0.35, animations: {
self.backgroundColor = UIColor.ringUITableViewCellSelection.lighten(byPercentage: 5.0)
self.backgroundColor = UIColor.jamiUITableViewCellSelection.lighten(byPercentage: 5.0)
})
}
override func setHighlighted(_ highlighted: Bool, animated: Bool) {
if highlighted {
self.backgroundColor = UIColor.ringUITableViewCellSelection
self.backgroundColor = UIColor.jamiUITableViewCellSelection
} else {
self.backgroundColor = UIColor.clear
}
......
/*
* Copyright (C) 2017 Savoir-faire Linux Inc.
* Copyright (C) 2017-2018 Savoir-faire Linux Inc.
*
* Author: Silbino Gonçalves Matado <silbino.gmatado@savoirfairelinux.com>
* Author: Quentin Muret <quentin.muret@gmail.com>
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
......@@ -53,6 +54,7 @@ class ContactRequestsViewController: UIViewController, StoryboardBased, ViewMode
UIApplication.shared.statusBarStyle = .default
self.setupTableView()
self.setupBindings()
self.navigationController?.navigationBar.titleTextAttributes = [NSAttributedStringKey.font: UIFont(name: "HelveticaNeue-Light", size: 25)!,NSAttributedStringKey.foregroundColor : UIColor.jamiMain]
}
func setupTableView() {
......
/*
* Copyright (C) 2017 Savoir-faire Linux Inc.
* Copyright (C) 2017-2018 Savoir-faire Linux Inc.
*
* Author: Silbino Gonçalves Matado <silbino.gmatado@savoirfairelinux.com>
* Author: Andreas Traczyk <andreas.traczyk@savoirfairelinux.com>
* Author: Quentin Muret <quentin.muret@gmail.com>
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
......@@ -142,7 +143,7 @@ class MessageCell: UITableViewCell, NibReusable {
// setup the label
self.timeLabel.text = item.timeStringShown
self.timeLabel.textColor = UIColor.ringMsgCellTimeText
self.timeLabel.textColor = UIColor.jamiMsgCellTimeText
self.timeLabel.font = UIFont.systemFont(ofSize: 12.0, weight: UIFont.Weight.medium)
// show the time
......@@ -161,15 +162,15 @@ class MessageCell: UITableViewCell, NibReusable {
var bubbleColor: UIColor
if item.isTransfer {
if item.content.containsOnlyEmoji {
bubbleColor = UIColor.ringMsgCellEmoji
bubbleColor = UIColor.jamiMsgCellEmoji
} else {
bubbleColor = type == .received ? UIColor.ringMsgCellReceived : UIColor(hex: 0xcfebf5, alpha: 1.0)
bubbleColor = type == .received ? UIColor.jamiMsgCellReceived : UIColor(hex: 0xcfebf5, alpha: 1.0)
}
} else {
if item.content.containsOnlyEmoji {
bubbleColor = UIColor.ringMsgCellEmoji
bubbleColor = UIColor.jamiMsgCellEmoji
} else {
bubbleColor = type == .received ? UIColor.ringMsgCellReceived : UIColor.ringMsgCellSent
bubbleColor = type == .received ? UIColor.jamiMsgCellReceived : UIColor.jamiMsgCellSent
}
}
......@@ -252,8 +253,8 @@ class MessageCell: UITableViewCell, NibReusable {
cellForRowAt indexPath: IndexPath) {
self.backgroundColor = UIColor.clear
self.bubbleViewMask?.backgroundColor = UIColor.ringMsgBackground
self.transferImageView.backgroundColor = UIColor.ringMsgBackground
self.bubbleViewMask?.backgroundColor = UIColor.jamiMsgBackground
self.transferImageView.backgroundColor = UIColor.jamiMsgBackground
buttonsHeightConstraint?.priority = UILayoutPriority(rawValue: 999.0)
guard let item = items?[indexPath.row] else {
return
......@@ -266,7 +267,7 @@ class MessageCell: UITableViewCell, NibReusable {
self.formatCellTimeLabel(item)
if item.bubblePosition() == .generated {
self.bubble.backgroundColor = UIColor.ringMsgCellReceived
self.bubble.backgroundColor = UIColor.jamiMsgCellReceived
self.messageLabel.setTextWithLineSpacing(withText: item.content, withLineSpacing: 10)
if indexPath.row == 0 {
self.messageLabelMarginConstraint.constant = 4
......@@ -279,7 +280,7 @@ class MessageCell: UITableViewCell, NibReusable {
} else if item.isTransfer {
self.messageLabel.lineBreakMode = .byTruncatingMiddle
let type = item.bubblePosition()
self.bubble.backgroundColor = type == .received ? UIColor.ringMsgCellReceived : UIColor(hex: 0xcfebf5, alpha: 1.0)
self.bubble.backgroundColor = type == .received ? UIColor.jamiMsgCellReceived : UIColor(hex: 0xcfebf5, alpha: 1.0)
if indexPath.row == 0 {
self.messageLabelMarginConstraint.constant = 4
self.bubbleTopConstraint.constant = 36
......@@ -290,10 +291,10 @@ class MessageCell: UITableViewCell, NibReusable {
if item.bubblePosition() == .received {
self.acceptButton?.tintColor = UIColor(hex: 0x00b20b, alpha: 1.0)
self.cancelButton.tintColor = UIColor(hex: 0xf00000, alpha: 1.0)
self.progressBar.tintColor = UIColor.ringMain
self.progressBar.tintColor = UIColor.jamiMain
} else if item.bubblePosition() == .sent {
self.cancelButton.tintColor = UIColor(hex: 0xf00000, alpha: 1.0)
self.progressBar.tintColor = UIColor.ringMain.lighten(byPercentage: 0.2)
self.progressBar.tintColor = UIColor.jamiMain.lighten(byPercentage: 0.2)
}
if item.shouldDisplayTransferedImage {
......@@ -315,9 +316,9 @@ class MessageCell: UITableViewCell, NibReusable {
if item.bubblePosition() == .sent {
// When the message contains only emoji
if item.content.containsOnlyEmoji {
self.bubble.backgroundColor = UIColor.ringMsgCellEmoji
self.bubble.backgroundColor = UIColor.jamiMsgCellEmoji
} else {